В этом учебном пособии вы узнаете, как использовать оператор ALTER TABLE в SQL Server (Transact-SQL) для добавления столбца, изменения столбца, удаления столбца, переименования столбца или переименования таблицы с синтаксисом и примерами.
Описание
Оператор ALTER TABLE SQL Server (Transact-SQL) используется для добавления, изменения или удаления столбцов в таблице.
Добавить столбец в таблицу.
Вы можете использовать оператор ALTER TABLE в SQL Server, чтобы добавить столбец в таблицу.
Синтаксис
Синтаксис добавления столбца в таблицу в SQL Server (Transact-SQL):
ALTER TABLE table_name
ADD column_name column-definition;
Пример
Рассмотрим пример, который показывает, как добавить столбец в таблицу SQL Server с помощью оператора ALTER TABLE.
Например:
ALTER TABLE employees ADD last_name VARCHAR(50); |
Этот пример SQL Server ALTER TABLE добавит столбец в таблицу employees, с наименованием last_name.
Добавить несколько столбцов в таблицу
Вы можете использовать оператор ALTER TABLE в SQL Server для добавления нескольких столбцов в таблицу.
Синтаксис
Синтаксис добавления нескольких столбцов в существующую таблицу в SQL Server (Transact-SQL):
ALTER TABLE table_name
ADD column_1 column-definition,
column_2 column-definition,
…
column_n column_definition;
Пример
Рассмотрим пример, который показывает, как добавить несколько столбцов в таблицу в SQL Server с помощью оператора ALTER TABLE.
Например:
ALTER TABLE employees ADD last_name VARCHAR(50), first_name VARCHAR(40); |
Этот пример SQL Server ALTER TABLE добавит в таблицу employees два столбца, поле last_name как VARCHAR (50) и поле first_name как VARCHAR (40).
Изменить столбец в таблице
Вы можете использовать оператор ALTER TABLE в SQL Server для изменения столбца в таблице.
Синтаксис
Синтаксис изменения столбца в существующей таблице в SQL Server (Transact-SQL):
ALTER TABLE table_name
ALTER COLUMN column_name column_type;
Пример
Рассмотрим пример, который показывает, как изменить столбец в таблице SQL Server с помощью оператора ALTER TABLE.
Например:
ALTER TABLE employees ALTER COLUMN last_name VARCHAR(75) NOT NULL; |
Этот пример SQL Server ALTER TABLE изменит столбец с именем last_name как тип данных VARCHAR (75) и принудит столбец не допускать нулевые значения.
Удалить столбец из таблицы
Вы можете использовать оператор ALTER TABLE в SQL Server для удаления столбца из таблицы.
Синтаксис
Синтаксис удаления столбца в существующей таблице в SQL Server (Transact-SQL):
ALTER TABLE table_name
DROP COLUMN column_name;
Пример
Рассмотрим пример, показывающий, как удалить столбец из таблицы на SQL Server с помощью оператора ALTER TABLE.
Например:
ALTER TABLE employees DROP COLUMN last_name; |
Этот пример SQL Server ALTER TABLE удалит столбец с именем last_name из таблицы, называемой employee.
Переименовать столбец в таблице
Вы не можете использовать оператор ALTER TABLE в SQL Server для переименования столбца в таблице. Тем не менее, вы можете использовать sp_rename, хотя Microsoft рекомендует удалять и воссоздавать таблицу, чтобы скрипты и хранимые процедуры не были нарушены.
Синтаксис
Синтаксис переименования столбца в существующей таблице в SQL Server (Transact-SQL):
sp_rename ‘table_name.old_column_name’, ‘new_column_name’, ‘COLUMN’;
Пример
Рассмотрим пример, который показывает, как переименовать столбец в таблице на SQL Server, используя sp_rename.
Например:
sp_rename ’employees.last_name’, ‘lname’, ‘COLUMN’; |
Этот пример SQL Server будет использовать sp_rename для переименования столбца в таблице employee из last_name в lname.
Переименовать таблицу
Вы не можете использовать оператор ALTER TABLE в SQL Server для переименования таблицы. Тем не менее, вы можете использовать sp_rename, хотя Microsoft рекомендует удалять и воссоздавать таблицу, чтобы скрипты и хранимые процедуры не были нарушены.
Синтаксис
Синтаксис переименования таблицы в SQL Server (Transact-SQL):
sp_rename ‘old_table_name’, ‘new_table_name’;
Пример
Рассмотрим пример, который показывает, как переименовать таблицу в SQL Server с помощью sp_rename.
Например:
sp_rename ’employees’, ’emps’; |
Этот пример SQL Server будет использовать sp_rename для переименования таблицы employee в emps.
Узнайте как использовать оператор ALTER TABLE в распространенных БД:
- ALTER TABLE Oracle PL/SQL
- ALTER TABLE MySQL
- ALTER TABLE PostgreSQL
- ALTER TABLE MariaDB
- ALTER TABLE SQLite
I have two tables with one identical column name, but different data. I want to join the tables, but access both columns (row[«price»], row[«other_price»]): How can I rename/alias one of them in the select statement? (I do not want to rename them in the DB)
Dead account
19.4k13 gold badges52 silver badges81 bronze badges
asked Mar 5, 2009 at 10:24
SELECT table1.price, table2.price AS 'other_price' ...
Younes
4447 silver badges15 bronze badges
answered Mar 5, 2009 at 10:27
MrTellyMrTelly
14.6k1 gold badge47 silver badges80 bronze badges
3
select t1.Column as Price, t2.Column as Other_Price
from table1 as t1 INNER JOIN table2 as t2
ON t1.Key = t2.Key
like this ?
answered Mar 5, 2009 at 10:28
MattMatt
4,2421 gold badge27 silver badges29 bronze badges
us the AS keyword
select a.Price as PriceOne, b.price as PriceTwo
from tablea a, tableb b
answered Mar 5, 2009 at 10:27
Dead accountDead account
19.4k13 gold badges52 silver badges81 bronze badges
If, like me, you are doing this for a column which then goes through COALESCE / array_to_json / ARRAY_AGG / row_to_json (PostgreSQL) and want to keep the capitals in the column name, double quote the column name, like so:
SELECT a.price AS "myFirstPrice", b.price AS "mySecondPrice"
Without the quotes (and when using those functions), my column names in camelCase would lose the capital letters.
answered Oct 9, 2018 at 17:57
Lucio MollinedoLucio Mollinedo
2,1151 gold badge28 silver badges27 bronze badges
if you are using sql server, use brackets or single quotes around alias name in a query you have in code.
answered Mar 5, 2009 at 10:41
Kunal SKunal S
975 silver badges11 bronze badges
Also you may omit the AS keyword.
SELECT row1 Price, row2 'Other Price' FROM exampleDB.table1;
in this option readability is a bit degraded but you have desired result.
answered Nov 10, 2016 at 16:07
There is no need to use AS
, just use:
SELECT table1.price Table1 Price, table2.price Table2 Price, .....
answered Mar 22, 2017 at 3:02
Another option you can choose:
select price = table1.price , other_price = table2.price from .....
Reference:
In case you are curious about the performance or otherwise of aliasing a column using “=” versus “as”.
answered Sep 5, 2019 at 10:27
劉鎮瑲劉鎮瑲
4898 silver badges20 bronze badges
Microsoft SQL Server позволяет переименовывать столбцы в таблицах уже после создания этих таблиц, что в некоторых случаях бывает очень полезно, так как Вам не нужно пересоздавать всю таблицу целиком. В этой небольшой статье я расскажу Вам, как переименовать столбец в таблице в SQL севере на языке T-SQL.
В прошлой статье, посвящённой Microsoft SQL Server, а конкретно – «Изменение таблиц в Microsoft SQL Server или как добавить, удалить, изменить столбец в таблице?» я рассказывал, как на T-SQL изменить тип данных столбца, как добавить новый столбец или удалить существующий, но в той статье я упустил один очень важный момент, я не рассказал, как переименовать столбец в таблице. Поэтому продолжаем тему изменения таблиц в Microsoft SQL Server, и сегодня я расскажу, как переименовываются столбцы в таблицах.
Заметка! Начинающим рекомендую посмотреть мой видеокурс по T-SQL.
Содержание
- Переименование столбца таблицы в Microsoft SQL Server
- Системная хранимая процедура sp_rename
- Синтаксис sp_rename
- Пример переименования столбца в таблице с помощью процедуры sp_rename
- Видео-инструкция — Переименование столбца таблицы в Microsoft SQL Server
Переименовать столбец таблицы в Microsoft SQL Server можно как в графическом конструкторе SSMS, так и на языке T-SQL. Способ с использованием конструктора, я думаю, понятен, т.е. нужно просто открыть конструктор, указать новое имя столбца и сохранить изменения. Если Вы не знаете, как работать с конструктором, то прочитайте вышеупомянутую статью про изменение таблиц и принцип станет понятен. А вот способ с использованием языка T-SQL не так очевиден, ведь столбцы в таблицах переименовываются с помощью системной хранимой процедуры sp_rename.
Системная хранимая процедура sp_rename
sp_rename — системная хранимая процедура, которая позволяет изменять имя пользовательского объекта базы данных. Таким объектом может выступать таблица, индекс, столбец таблицы или псевдоним типа данных.
Синтаксис sp_rename
sp_rename @objname, @newname, @objtype
где
- @objname – Текущее имя объекта. В случае со столбцом это имя указывается в формате «таблица.столбец»;
- @newname – Новое имя объекта;
- @objtype – Тип объекта. В случае переименования таблиц параметр указывать не требуется. Может принимать следующие значения:
- COLUMN – переименование столбцов;
- INDEX – переименование индексов;
- USERDATATYPE — переименование пользовательских типов данных;
- DATABASE — переименование базы данных.
Примечание!
Следует отметить, что изменить имя объекта можно только в текущей базе данных, в которой запущена процедура, изменять имена объектов, которые расположены в других базах, нельзя.
Также переименование таблицы или столбца не приведет к автоматическому переименованию ссылок на эту таблицу или столбец, т.е. необходимо вручную изменить любые объекты, которые ссылаются на переименованный объект.
Кроме того, для переименования объектов, конечно же, требуются соответствующие разрешения на изменения.
Заметка! Если Вас интересует SQL и T-SQL, рекомендую посмотреть мои видеокурсы по T-SQL, с помощью которых Вы «с нуля» научитесь работать с SQL и программировать с использованием языка T-SQL в Microsoft SQL Server.
Пример переименования столбца в таблице с помощью процедуры sp_rename
Для примера давайте переименуем столбец Price таблицы Goods на ProductPrice. Таблица расположена в базе данных TestDB. В качестве SQL сервера у меня выступает — Microsoft SQL Server 2017 Express.
USE TestDB; GO SELECT * FROM Goods; GO EXEC sp_rename 'Goods.Price', 'ProductPrice', 'COLUMN'; GO SELECT * FROM Goods;
Как видите, столбец успешно переименован.
Видео-инструкция — Переименование столбца таблицы в Microsoft SQL Server
У меня на этом все, удачи Вам, пока!
На чтение 4 мин Просмотров 2.5к. Опубликовано 29.11.2021
MySQL — популярная система управления базами данных, которая составляет основу огромной части современного Интернета. MySQL — это СУБД с открытым исходным кодом (система управления реляционными базами данных), разработанная и поддерживаемая Oracle, с моделью клиент-сервер. Он предлагает безопасное хранилище базы данных, высокую производительность и мощные функции.
В этом руководстве будет показано, как переименовать столбец в MySQL.
Содержание
- Переименование столбца в MySQL
- Базовая структура
- Переименование столбца таблицы
- Переименование таблиц
- Переименование нескольких таблиц
- Заключение
Переименование столбца в MySQL
В MySQL база данных обычно состоит из нескольких таблиц, содержащих строки и столбцы, содержащие различные данные. Для демонстрации мы переименуем имя столбца конкретной таблицы.
Для демонстрации я буду использовать этот образец базы данных. Это очень большая база данных, которой должно хватить практически для любой тестовой ситуации. Для удобства я буду использовать phpMyAdmin для доступа к базе данных и выполнения запросов. Узнайте больше об установке и настройке phpMyAdmin и MySQL.
Базовая структура
Чтобы переименовать столбец, структура запроса будет выглядеть следующим образом.
$ ALTER TABLE <table_name> CHANGE <old_column_name> <new_column_name> <data_type>
Если нужно переименовать несколько столбцов, мы также можем сделать это в одном запросе. В таком случае структура запроса будет выглядеть так.
$ ALTER TABLE <table_name> CHANGE <old_column_name_1> <new_column_name_1> <data_type_1>, CHANGE <old_column_name_2> <new_column_name_2> <data_type_2>
В качестве альтернативы, если вы хотите переименовать таблицу, структура запроса будет выглядеть так.
$ RENAME TABLE <old_table_name> TO <new_table_name>
Вы также можете переименовать несколько таблиц за один раз.
$ RENAME TABLE <old_table_1> TO <new_table_name_1>, <old_table_name_2> TO <new_table_name_2>
MySQL также позволяет использовать RENAME между несколькими базами данных.
$ RENAME TABLE <current_database>.<table_name> TO <other_database>.<table_name>
Переименование столбца таблицы
Давайте посмотрим на пример таблицы базы данных стран.
$ SELECT * from countries;
Из этой таблицы давайте переименуем country_name (varchar (40)) в country_label (varchar (40)). Запрос будет выглядеть примерно так.
$ ALTER TABLE countries CHANGE country_name country_label varchar(40);
Проверьте изменение.
$ SHOW COLUMNS FROM countries;
Переименование нескольких столбцов
В следующем примере мы будем переименовывать несколько столбцов в таблице стран. Изменение Давайте country_id к COUNTRY_CODE, country_label к COUNTRY_NAME и region_id в регионе-_code.
ALTER TABLE countries
CHANGE country_id country_code char(2),
CHANGE country_label country_name varchar(40),
CHANGE region_id region_code int;
Проверьте изменения.
$ SHOW COLUMNS FROM countries;
Переименование таблиц
Теперь попробуем переименовать таблицу. Мы переименуем таблицу » страны» в » независимые_регионы». Во-первых, обратите внимание на текущие имена таблиц.
Выполните следующий запрос, чтобы переименовать целевую таблицу.
$ RENAME TABLE countries TO independent_regions;
Проверьте изменение.
Переименование нескольких таблиц
Теперь давайте попробуем изменить имена нескольких таблиц одновременно. Запишите все текущие таблицы.
Затем выполните следующий запрос.
RENAME TABLE
countries TO independent_regions,
jobs TO assigned_tasks,
departments TO sections;
Проверьте изменения.
Заключение
Поздравляю! Вы успешно переименовали существующий столбец в MySQL. В этом руководстве также показано переименование существующей таблицы. Как для переименования столбцов, так и для таблиц вам необходимо понимать основы оператора ALTER TABLE.
Каждая таблица MySQL основана на ключевом дизайне. В терминологии MySQL это называется схемой. Он содержит необходимые данные о схеме размещения данных в таблице.
Вы создали свою базу данных и свои таблицы, и после всей этой работы вы заметили, что вам нужно добавить или переименовать столбец. Что ж, вы можете использовать для этого оператор ALTER TABLE.
Просто имейте в виду, что при этом нужно быть очень осторожным. Если в вашей таблице много строк, это может вызвать проблемы с производительностью вашей базы данных.
Примечание. Если приведенный здесь синтаксис не работает, обратитесь к документации по своей СУБД. Большинство вещей работает одинаково, но есть некоторые различия для различных СУБД.
Как добавить новую колонку с помощью ALTER TABLE
Чтобы добавить новый столбец, вам сначала нужно выбрать таблицу с помощью ALTER TABLE имя_таблицы, а затем написать имя нового столбца и его тип данны вместе с операторомо ADD. В совокупности код выглядит так:
ALTER TABLE table_name
ADD column_name datatype;
Например у нас есть база данных пользователей, как показано ниже:
id | name | age | state | |
---|---|---|---|---|
1 | Paul | 24 | Michigan | paul@example.com |
2 | Molly | 22 | New Jersey | molly@example.com |
3 | Robert | 19 | New York | robert@example.com |
Настал момент, когда нам нужно сохранить номера документов, удостоверяющих личность наших пользователей, поэтому нам нужно добавить для этого новый столбец.
Чтобы добавить новый столбец в нашу таблицу пользователей, нам нужно выбрать таблицу с ALTER TABLE users, а затем указать имя нового столбца и его тип данных с помощью оператора ADD id_number TEXT. Все вместе выглядит так:
ALTER TABLE users
ADD id_number TEXT;
Таблица с новым столбцом будет выглядеть следующим образом:
id | name | age | state | id_number | |
---|---|---|---|---|---|
1 | Paul | 24 | Michigan | paul@example.com | NULL |
2 | Molly | 22 | New Jersey | molly@example.com | NULL |
3 | Robert | 19 | New York | robert@example.com | NULL |
Вам нужно будет использовать оператор UPDATE, чтобы добавить недостающую информацию для уже существующих пользователей, как только она будет предоставлена.
Как создать новый столбец со значением по умолчанию вместо NULL
Вы также можете создать столбец со значением по умолчанию, используя ключевое слово default, за которым следует используемое значение. Тогда пользователи увидят это значение по умолчанию вместо того, чтобы пропущенные значения были заполнены NULL.
Предположим, что скоро у нас появятся международные пользователи, и мы хотим добавить столбец country. Все наши существующие пользователи из США, поэтому мы можем использовать это значение по умолчанию.
ALTER TABLE users
ADD country TEXT default "United States";
Наша таблица будет выглядеть так:
id | name | age | state | id_number | country | |
---|---|---|---|---|---|---|
1 | Paul | 24 | Michigan | paul@example.com | NULL | United States |
2 | Molly | 22 | New Jersey | molly@example.com | NULL | United States |
3 | Robert | 19 | New York | robert@example.com | NULL | United States |
Будьте осторожны при добавлении новых столбцов в таблицы.
Если в вашей таблице уже много строк — например, если у вас уже много пользователей или много хранимых данных, — добавление нового столбца может потребовать значительных ресурсов. Поэтому обращайтесь с этой операцией осторожно.
Как переименовать столбец с помощью ALTER TABLE
Вы можете переименовать столбец с помощью приведенного ниже кода. Вы выбираете таблицу с помощью ALTER TABLE имя_таблицы, а затем указываете, какой столбец переименовать и во что переименовать, с помощью RENAME COLUMN old_name TO new_name.
ALTER TABLE table_name
RENAME COLUMN old_name TO new_name;
Давайте посмотрим на ту же таблицу, которую мы использовали в предыдущем примере:
id | name | age | state | id_number | country | |
---|---|---|---|---|---|---|
1 | Paul | 24 | Michigan | paul@example.com | NULL | United States |
2 | Molly | 22 | New Jersey | molly@example.com | NULL | United States |
3 | Robert | 19 | New York | robert@example.com | NULL | United States |
Чтобы избежать путаницы между столбцами id и id_number, давайте переименуем первый в user_id.
Сначала мы укажем таблицу с помощью ALTER TABLE users, а затем объявим имя столбца, чтобы оно изменилось на то, что мы хотим изменить, с помощью RENAME COLUMN id TO user_id.
ALTER TABLE users
RENAME COLUMN id TO user_id;
После выполения запроса таблица будет выглядеть так:
user_id | name | age | state | id_number | country | |
---|---|---|---|---|---|---|
1 | Paul | 24 | Michigan | paul@example.com | NULL | United States |
2 | Molly | 22 | New Jersey | molly@example.com | NULL | United States |
3 | Robert | 19 | New York | robert@example.com | NULL | United States |
Будьте осторожны при переименовании столбца в таблице.
Когда вы переименовываете столбцы с помощью ALTER TABLE, вы рискуете нарушить зависимости базы данных.
Если вы используете инструмент рефакторинга базы данных для изменения имени столбца вместо использования ALTER TABLE, он будет управлять всеми зависимостями и обновлять их с новым именем столбца.
Если у вас небольшая база данных, возможно, вам не о чем беспокоиться, но об этом важно помнить.
На уроке будет рассмотрена тема sql переименование столбца (полей) при помощи служебного слова AS; также рассмотрена тема агрегатные функции в sql. Будут разобраны конкретные примеры запросов
Содержание:
- Переименование полей AS
- Агрегатные функции в SQL
- Предложение GROUP BY в SQL
- Оператор Having SQL
Переименование полей AS
Имена столбцов в запросах можно переименовывать. Это придает результатам более читабельный вид.
В языке SQL переименование полей связано с использованием ключевого слова AS, которое и используется для переименования имен полей в результирующих наборах
Синтаксис:
SELECT <имя поля> AS <псевдоним> FROM …
Рассмотрим пример переименования в SQL:
Пример БД «Институт»: Вывести фамилии учителей и их зарплаты, для тех преподавателей, у которых зарплата ниже 15000, переименовать поле zarplata
на «низкая_зарплата»
✍ Решение:
1 2 3 |
SELECT name, zarplata AS низкая_зарплата FROM teachers WHERE zarplata<15000; |
Результат:
SQL As 2_1. БД Компьютерный магазин. Вывести данные о компьютерах. Переименовать столбец Скорость в «Мб», а столбец HD в «Гб»
Переименование столбцов в SQL часто необходимо при вычислении значений, связанных с несколькими полями таблицы. Рассмотрим пример:
Пример БД «Институт»: Из таблицы teachers
вывести поле name
и вычислить сумму зарплаты и премии, назвав поле «зарплата_премия»
✍ Решение:
1 2 |
SELECT name, (zarplata+premia) AS zarplata_premia FROM teachers; |
Результат:
SQL As 2_1. БД Институт. Вывести фамилии учителей и разницу между их зарплатой и премией. Назвать вывод «зарплата_минус_премия»
Задание 2_1. БД «Компьютерные курсы». Из таблицы Личные данные
вывести значения полей Код студента
, Word
, Excel
, Access
и вычислить среднее значение по полям Word
, Excel
, Access
, назвав поле «Среднее»
SQL As 2_2. БД Компьютерный магазин. Вывести объем оперативной памяти в Килобайтах (из Мб получить Кб). Выводить и исходное и получившееся значение
Задание 2_2. БД «Компьютерные курсы». Вывести номера телефонов
и оценки по Word
студентов, успеваемость по курсу Word которых ниже 4 баллов, переименовать поле Word
на Низкая успеваемость
Для получения итоговых значений и вычисления выражений используются агрегатные функции в sql:
Функция | Описание |
---|---|
COUNT (*) |
Возвращает количество строк таблицы. |
COUNT (имя поля) |
Возвращает количество значений в указанном столбце. |
SUM (имя поля) |
Возвращает сумму значений в указанном столбце. |
AVG (имя поля) |
Возвращает среднее значение в указанном столбце. |
MIN (имя поля) |
Возвращает минимальное значение в указанном столбце. |
MAX (имя поля) |
Возвращает максимальное значение в указанном столбце. |
Все агрегатные функции возвращают единственное значение.
Функции COUNT
, MIN
и MAX
применимы к любым типам данных.
Функции
SUM
иAVG
используются только для числовых полей.
Между функциямиCOUNT(*)
иCOUNT(<имя поля>)
есть разница: вторая при подсчете не учитываетNULL
-значения.
Важно: при работе с агрегатными функциями в SQL используется служебное слово AS
Пример БД «Институт»: Получить значение самой большой зарплаты среди учителей, вывести итог как «макс_зп»
✍ Решение:
SELECT MAX(zarplata) AS макс_зп FROM teachers;
Результаты:
Рассмотрим более сложный пример использования агрегатных функций в sql.
Пример: БД Компьютерный магазин. Найти имеющееся в наличии количество компьютеров, выпущенных производителем Америка
✍ Решение:
1 2 3 4 5 6 7 8 |
SELECT COUNT( * ) FROM `pc` WHERE `Номер` IN ( SELECT `Номер` FROM product WHERE Производитель = "Америка" ) |
SQL As 2_3. БД Компьютерный магазин. Вывести общее количество продуктов, странами-производителями которых является Россия
Agr func 2_2. БД Институт. Вывести минимальную и максимальную зарплату учителей
Agr func 2_3. БД Институт. Выберите название курса, уроки по которому не проводились и не запланированы проводиться. Дополните код:
1 2 3 4 5 6 |
SELECT `title` FROM `courses` WHERE `title` NOT IN ( ... ) |
Agr func 2_4. БД Институт. Измените предыдущее задание: Посчитайте количество тех курсов, уроки по которым не проводились и не запланированы проводиться. Выводите результат с именем «нет_уроков»
Предложение GROUP BY в SQL
Оператор group by
в sql обычно используется совместно с агрегатными функциями.
Агрегатные функции выполняются над всеми результирующими строками запроса. Если запрос содержит оператор GROUP BY
, каждый набор строк, заданных в предложении GROUP BY, составляет группу, и агрегатные функции выполняются для каждой группы отдельно.
Рассмотрим пример с таблицей lessons
:
Пример:
- Выдавать количество проведенных уроков учителем Иванов из таблицы
lessons
(порядковый номер Иванова1
(tid
)). - Выдавать количество проведенных уроков учителем Иванов по разным курсам из таблицы
lessons
SELECT COUNT(tid) AS Иванов FROM lessons WHERE tid=1
Результат:
SELECT course, COUNT( tid ) AS Иванов FROM lessons WHERE tid =1 GROUP BY course
Результат:
Важно: Таким образом, в результате использования GROUP BY
все выходные строки запроса разделяются на группы, характеризуемые одинаковыми комбинациями значений в этих столбцах (т.е. агрегатные функции выполняются для каждой группы отдельно).
При этом стоит учесть, что при группировке по полю, содержащему NULL
-значения, все такие записи попадут в одну группу.
SQL group by 2_5. БД Компьютерный магазин. Для различных типов принтеров определить их среднюю стоимость и количество (т.е. отдельно по лазерным, струйным и матричным). Использовать агрегатные функции AVG(поле) и COUNT(поле). Результат должен выглядеть так:
SQL group by 2_5. БД Институт. Посчитать количество уроков, проведенных одним и тем же учителем. Результат должен выглядеть так:
Задание 2_5. БД «Компьютерные курсы». Вывести количество человек в
каждой
группе и количество человек на
каждом
курсе из таблицы Список
. Назвать вычисляемые поля «кол_во_в_гр» и «кол_во_на_курс»
Оператор Having SQL
Предложение HAVING
в SQL необходимо для проверки значений, которые получены с помощью агрегатной функции после группировки (после использования GROUP BY
). Такая проверка не может содержаться в предложении WHERE.
Пример: БД Компьютерный магазин. Посчитать среднюю цену компьютеров с одинаковой скоростью процессора. Выполнить подсчет только для тех групп, средняя цена которых меньше 30000.
✍ Решение:
SELECT AVG(`Цена`) ,`Скорость` FROM `pc` GROUP BY `Скорость` HAVING AVG(`Цена`) <30000
Результат:
Важно: В операторе Having
нельзя использовать псевдоним (например, сред_цена), используемый для именования значений агрегатной функции.
Having SQL 2_6. БД Компьютерный магазин. Для различных типов принтеров определить их среднюю стоимость (т.е. отдельно по лазерным, струйным и матричным). Вести подсчет только если средняя стоимость <10000.
Результат:
Having SQL 2_6. БД Институт
Посчитать количество уроков, проведенных одним и тем же учителем. Выдавать значение только для тех учителей, у которых уроков больше двух.
Задание 2_6. БД «Компьютерные курсы». Получить количество учеников каждой группы при условии, что курс не меньше 3-го
It may often happen that, we see a requirement to change the name of the column in the database to serve their purpose. With the help of SQL or Structured Query Language, the Database Administrators store, update, manipulate and retrieve data in relational databases. So, in this article let us understand how to rename a column name in SQL.
The following topics will be covered in this article:
-
- What is SQL?
- What is RENAME command in SQL?
- Rename column name in MySQL, MariaDB, Oracle and PostgreSQL
- Rename column name in MS SQL Server
- Rename table name MySQL, MariaDB, Oracle
So let us get started then,
What is SQL?
SQL or most commonly known as SEQUEL is a Structured Query Language used for managing and accessing the databases. It is based on the English language and is designed in a way to easily retrieve, manipulate and access the data. If you wish to know more about the basics of SQL in-depth, you can refer to the article on SQL Basics. In SQL, there are various statements/ commands used to manipulate data. One such manipulation, which is quite popular in databases is renaming the column name in SQL.
So, let us understand how to use the RENAME command in SQL.
What is RENAME command in SQL?
This command is used to change the name of a column to a new column name. It is also used to change the table to a new table name. Let us understand how to use this command in different databases. But, before that, let us consider the following table to understand all the examples:
BID | BName | Genre | Price |
1 |
Trick Mirror |
Psychology |
200 |
2 |
Daisy Jones |
Mystery |
350 |
3 |
Lady in the lake |
Mystery |
250 |
4 |
Miracle Creek |
Thriller |
450 |
5 |
Disappearing Earth |
Drama |
300 |
How to Rename column name in SQL?
Rename column name in MySQL, MariaDB, Oracle, and PostgreSQL
To rename a column name in MySQL, MariaDB, Oracle, and PostgreSQL, you can follow the below syntax:
Syntax
ALTER TABLE TableName RENAME COLUMN OldColumnName TO NewColumnName;
Example:
Write a query to rename the column name “BID” to “BooksID”.
ALTER TABLE Books; RENAME COLUMN BID TO BooksID;
On executing the above query, you will see the following output:
Output:
BooksID | BName | Genre | Price |
1 |
Trick Mirror |
Psychology |
200 |
2 |
Daisy Jones |
Mystery |
350 |
3 |
Lady in the lake |
Mystery |
250 |
4 |
Miracle Creek |
Thriller |
450 |
5 |
Disappearing Earth |
Drama |
300 |
You can also use the CHANGE keyword to rename a column name as follows:
Syntax
ALTER TABLE TableName CHANGE COLUMN OldColumnName NewColumnName Data Type;
Example:
Write a query to rename the column name “BID” to “BooksID”.
ALTER TABLE Books; CHANGE COLUMN BID BooksID INT;
On executing this query, you will see the output the same as the above output.
Rename column name in MS SQL Server
The process of renaming column name is MS SQL Server is different when compared to the other databases. In MS SQL Server, you have to use the stored procedure called sp_rename.
Syntax
sp_rename 'TableName.OldColumnName', 'New ColumnName', 'COLUMN';
Example:
Write a query to rename the column name “BID” to “BooksID”.
sp_rename 'Books.BID', 'BooksID', 'COLUMN';
The resulting output will be the same as that for the above queries. Now, that you have understood how to rename a column name in various databases, let us see how you can rename a table name.
Rename table name MySQL, MariaDB, Oracle
To rename a table name, you can use the RENAME command in SQL, in the following manner:
Syntax:
ALTER TABLE OldTableName RENAME TO NewTableName;
Example:
ALTER TABLE Books RENAME TO ListOfBooks;
Now, if you execute the below query to see the details in the table ListOfBooks, you will see the following output:
Query:
SELECT * FROM ListOfBooks;
BooksID | BName | Genre | Price |
1 |
Tricky Mirror |
Psychology |
200 |
2 |
Daisy Jones |
Mystery |
350 |
3 |
Lady in the lake |
Mystery |
250 |
4 |
Miracle Creek |
Thriller |
450 |
5 |
Disappearing Earth |
Drama |
300 |
With that, we come to an end to this article on Rename column name in SQL. I hope you found this article informative. I hope you understood how to use the above commands. If you wish to learn more about MySQL and get to know this open-source relational database, then check out our MySQL DBA Certification Training which comes with instructor-led live training and real-life project experience. This training will help you understand MySQL in-depth and help you achieve mastery over the subject.
Got a question for us? Please mention it in the comments section of this article on “Rename column name in SQL” and I will get back to you.