Как изменить имя таблицы в SQL?
Вы можете переименовать таблицу и большинство других объектов базы данных непосредственно из области навигации.
- В области навигации щелкните правой кнопкой мыши таблицу, которую вы хотите переименовать, и выберите в меню пункт «Переименовать». …
- Введите новое имя и нажмите ввод.
Как переименовать таблицу в SQL Oracle?
Чтобы переименовать столбцы таблицы, используйте предложение RENAME COLUMN инструкции ALTER TABLE . Чтобы переименовать любое существующее ограничение для таблицы, используйте предложение RENAME CONSTRAINT инструкции ALTER TABLE .
Как поменять название таблицы mysql?
Переименование таблиц базы данных с помощью phpMyAdmin.
- Выберите базу данных, где находится таблица.
- Затем кликните на таблицу, которую вы хотите переименовать.
- Перейдите на вкладку «Операции».
- Под разделом «Параметры таблицы» в разделе «Переименовать таблицу в» введите новое имя для таблицы и нажмите «Перейти».
Как переименовать названия столбцов в Excel?
- В редакторе запросов дважды щелкните столбец и введите новое имя.
- В редакторе запросов также можно щелкните правой кнопкой мыши столбец, который вы хотите переименовать, и выбрать Переименовать в появившемся меню.
Как изменить название столбца в SQL?
Переименование столбца в конструкторе таблиц
- В обозревателе объектов щелкните правой кнопкой мыши таблицу, в которой нужно переименовать столбцы, и выберите пункт Конструирование.
- В разделе Имя столбца выберите имя, которое нужно изменить, и введите новое.
- В меню Файл выберите команду Сохранить имя_таблицы.
Как переименовать базу данных?
В обозревателе объектов разверните узел Базы данных, щелкните правой кнопкой мыши базу данных, которую необходимо переименовать, а затем выберите пункт Переименовать. Введите новое имя базы данных и нажмите кнопку ОК.
Как внести изменения в таблицу Access?
Изменение элементов в списке
Откройте форму, таблицу или набор результатов запроса, которые содержат список. Выполните одно из следующих действий: Щелкните правой кнопкой мыши на списке, который требуется изменить, а затем нажмите кнопку Изменить элементы списка.
Как можно добавить новое поле в таблицу?
Добавление столбца в режиме конструктора
- В области навигации щелкните правой кнопкой мыши таблицу, которую вы хотите изменить, и в контекстном меню выберите пункт Конструктор. …
- В столбце Имя поля выберите пустую строку и введите имя нового поля.
Как очистить таблицу в Oracle?
Оператор TRUNCATE TABLE используется для удаления всех записей из таблицы в Oracle. Он выполняет ту же функцию что и DELETE, только без условий WHERE.
Как удалить столбец в таблице Oracle?
Столбец можно удалить из таблицы, используя инструкцию ALTER TABLE с предложением DROP COLUMN . В столбце могут быть или не быть данные. Используя инструкцию ALTER TABLE DROP COLUMN , можно удалить за раз только один столбец. После изменения в таблице должен остаться хотя бы один столбец.
Как переименовать базу данных в PHPMyAdmin?
Как переименовать базу данных в phpMyAdmin?
- Войдите в cPanel.
- Кликните на Базы данных MySQL:
- Прокрутите страницу вниз до раздела Текущие базы данных.
- Найдите базу данных, которую вы хотите переименовать и кликните на кнопку Переименовать. …
- В новом окне введите имя новой базы данных и кликните Продолжить:
Как изменить таблицу в PHPMyAdmin?
Управление таблицами в PHPMyAdmin
- Зайти на главную страницу PHPMyAdmin.
- Выбрать из выпадающего списка имя базы данных, в которую Вы хотите добавить таблицу.
- Ввести имя новой таблицы, указать количество полей (столбцов) и нажать на кнопку «Пошёл».
Как добавить столбец в таблицу postgresql?
Добавление столбца Добавить столбец вы можете так: ALTER TABLE products ADD COLUMN description text; Новый столбец заполняется заданным для него значением по умолчанию (или значением NULL, если вы не добавите указание DEFAULT ).
Похожие публикации:
Как добавить колонку к таблице MySQL?
Синтаксис добавления колонки в таблицу:
ALTER TABLE table_name ADD column_name data_type attributes;
1 | ALTERTABLEtable_nameADDcolumn_namedata_typeattributes; |
Для примера добавим к таблице books колонку с именем discount, в которой будет хранится процент скидки на книги и amount для хранения количества книг.
Можно добавлять, удалять и модифицировать сразу несколько колонок за раз.
ALTER TABLE books ADD discount TINYINT UNSIGNED, ADD amount SMALLINT UNSIGNED;
1 | ALTERTABLEbooksADDdiscountTINYINTUNSIGNED,ADDamountSMALLINTUNSIGNED; |
Каждая новая колонка добавляется в конец таблицы. Если вы хотите добавить новую колонку после определенной колонки, то используйте команду .
Добавим колонку shelf_position сразу после колонки price.
ALTER TABLE books ADD shelf_position VARCHAR(20) AFTER Price;
1 | ALTERTABLEbooksADDshelf_positionVARCHAR(20)AFTERPrice; |
Modify column in table
Syntax
To modify a column in an existing table, the SQL ALTER TABLE syntax is:
For Oracle, MySQL, MariaDB:
ALTER TABLE table_name MODIFY column_name column_type;
For SQL Server:
ALTER TABLE table_name ALTER COLUMN column_name column_type;
For PostgreSQL:
ALTER TABLE table_name ALTER COLUMN column_name TYPE column_definition;
Example
Let’s look at an example of how to modify a column called supplier_name using the ALTER TABLE statement. Note that most databases have a slightly different syntax.
For Oracle:
ALTER TABLE supplier MODIFY supplier_name char(100) NOT NULL;
For MySQL and MariaDB:
ALTER TABLE supplier MODIFY supplier_name VARCHAR(100) NOT NULL;
For SQL Server:
ALTER TABLE supplier ALTER COLUMN supplier_name VARCHAR(100) NOT NULL;
For PostgreSQL:
Как изменить значение по умолчанию в колонке таблицы MySQL?
С помощью команды также можно изменить значение по умолчанию для любой колонки, даже если оно не было установлено при создании таблицы.
Синтаксис установки значения по умолчанию для колонки:
ALTER TABLE table_name ALTER column_name SET DEFAULT value;
1 | ALTERTABLEtable_nameALTERcolumn_nameSETDEFAULTvalue; |
Установим для колонки discount значение по умолчанию:
ALTER TABLE books ALTER discount SET DEFAULT 0;
1 | ALTERTABLEbooksALTERdiscountSETDEFAULT0; |
Чтобы удалить значение по умолчанию, используйте синтаксис:
ALTER TABLE table_name ALTER column_name DROP DEFAULT;
1 | ALTERTABLEtable_nameALTERcolumn_nameDROPDEFAULT; |
Удалим созданное значение по умолчанию для колонки discount:
ALTER TABLE books ALTER dicount DROP DEFAULT;
1 | ALTERTABLEbooksALTERdicountDROPDEFAULT; |
Практическое упражнение №4:
На основании таблицы employees ниже, модифицируйте тип данных столбца employee_name в varchar2 (80).
Oracle PL/SQL
CREATE TABLE employees
( employee_number number(10) not null,
employee_name >varchar2(50) not null,
department_id number(10),
CONSTRAINT employees_pk PRIMARY KEY (employee_number)
);
1 |
CREATETABLEemployees employee_name>varchar2(50)notnull, department_idnumber(10), CONSTRAINTemployees_pkPRIMARYKEY(employee_number) |
Решение для практического упражнения №4:
Следующий оператор Oracle/PLSQL ALTER TABLE модифицирует тип данных для столбца employee_name в varchar2 (80):
Oracle PL/SQL
ALTER TABLE employees
MODIFY employee_name varchar2(80);
1 |
ALTERTABLEemployees MODIFYemployee_namevarchar2(80); |
Практическое упражнение № 1
На основании приведенной ниже таблицы departments переименуйте таблицу departments в depts.
PgSQL
CREATE TABLE departments
( department_id int NOT NULL,
department_name char(50) NOT NULL,
CONSTRAINT departments_pk PRIMARY KEY (department_id)
);
1 |
CREATETABLEdepartments department_namechar(50)NOT NULL, CONSTRAINTdepartments_pkPRIMARYKEY(department_id) |
Решение для упражнения № 1
Следующий SQL оператор ALTER TABLE переименует таблицу departments в depts.
PgSQL
ALTER TABLE departments
RENAME TO depts;
1 |
ALTERTABLEdepartments RENAMETOdepts; |
Часто задаваемые вопросы
Вопрос: Я создал базу данных клиентов. Я знаю, что вы используете Oracle оператор INSERT для вставки информации в базу данных, но как я могу убедиться, что не ввел ту же информацию о клиенте снова?
Ответ: Вы можете убедиться, что не вставить повторяющуюся информацию, используя условие EXISTS.
Например, если у вас была таблица с названием clients с первичным ключом client_id, вы можете использовать следующий INSERT:
Oracle PL/SQL
INSERT INTO clients
(client_id, client_name, client_type)
SELECT supplier_id, supplier_name, ‘advertising’
FROM suppliers
WHERE NOT EXISTS (SELECT *
FROM clients
WHERE clients.client_id = suppliers.supplier_id);
1 |
INSERTINTOclients SELECTsupplier_id,supplier_name,’advertising’ FROMsuppliers WHERENOTEXISTS(SELECT* FROMclients WHEREclients.client_id=suppliers.supplier_id); |
Это Oracle предложение INSERT вставляет несколько записей с подзапросом.
Если вы хотите вставить одну запись, вы можете использовать следующее Oracle предложение INSERT:
Oracle PL/SQL
INSERT INTO clients
(client_id, client_name, client_type)
SELECT 10345,
‘IBM’,
‘advertising’
FROM dual
WHERE NOT EXISTS (SELECT *
FROM clients
WHERE clients.client_id = 10345);
1 |
INSERTINTOclients SELECT10345, ‘IBM’, ‘advertising’ FROMdual WHERENOTEXISTS(SELECT* FROMclients WHEREclients.client_id=10345); |
Использование таблицы dual позволяет ввести значения в операторе select, даже если значения не хранятся в настоящее время в таблице.
Вопрос: Как я могу вставить несколько строк явных данных в одном предложении INSERT в Oracle?
Ответ: Ниже приведен пример того, как можно вставить 3 строки в таблицу suppliers в Oracle, используя оператор INSERT:
Oracle PL/SQL
INSERT ALL
INTO suppliers (supplier_id, supplier_name) VALUES (1000, ‘IBM’)
INTO suppliers (supplier_id, supplier_name) VALUES (2000, ‘Microsoft’)
INTO suppliers (supplier_id, supplier_name) VALUES (3000, ‘Google’)
SELECT * FROM dual;
1 |
INSERTALL INTOsuppliers(supplier_id,supplier_name)VALUES(1000,’IBM’) INTOsuppliers(supplier_id,supplier_name)VALUES(2000,’Microsoft’) INTOsuppliers(supplier_id,supplier_name)VALUES(3000,’Google’) SELECT*FROMdual; |
SQL Пример ALTER TABLE
Посмотрите на таблицу «Persons»:
ID | LastName | FirstName | Address | City |
---|---|---|---|---|
1 | Hansen | Ola | Timoteivn 10 | Sandnes |
2 | Svendson | Tove | Borgvn 23 | Sandnes |
3 | Pettersen | Kari | Storgt 20 | Stavanger |
Теперь мы хотим добавить столбец с именем «DateOfBirth» в таблицу «Persons».
Мы используем следующую инструкцию SQL:
ALTER TABLE Persons
ADD DateOfBirth date;
Обратите внимание, что новый столбец «DateOfBirth» имеет тип date и будет содержать дату.
Тип данных указывает, какой тип данных может содержать столбец.
Для получения полного описания всех типов данных, доступных в MS Access, MySQL и SQL Server,
перейдите к нашему полному Справочнику типов данных. Таблица «Persons» теперь будет выглядеть так:
Таблица «Persons» теперь будет выглядеть так:
ID | LastName | FirstName | Address | City | DateOfBirth |
---|---|---|---|---|---|
1 | Hansen | Ola | Timoteivn 10 | Sandnes | |
2 | Svendson | Tove | Borgvn 23 | Sandnes | |
3 | Pettersen | Kari | Storgt 20 | Stavanger |
Практическое упражнение № 2:
На основании таблицы contacts и customers, вставить в таблицу contacts всех customers, которые проживают в штате Nevada.
Oracle PL/SQL
—создаем contacts
CREATE TABLE contacts
( contact_id number(10) not null,
last_name varchar2(50) not null,
first_name varchar2(50) not null,
address varchar2(50),
city varchar2(50),
state varchar2(20),
zip_code varchar2(10),
CONSTRAINT contacts_pk PRIMARY KEY (contact_id)
);
—создаем customers
CREATE TABLE customers
( customer_id number(10) not null,
last_name varchar2(50) not null,
first_name varchar2(50) not null,
address varchar2(50),
city varchar2(50),
state varchar2(20),
zip_code varchar2(10),
CONSTRAINT customers_pk PRIMARY KEY (customer_id)
);
1 |
—создаем contacts CREATETABLEcontacts last_namevarchar2(50)notnull, first_namevarchar2(50)notnull, addressvarchar2(50), cityvarchar2(50), statevarchar2(20), zip_codevarchar2(10), CONSTRAINTcontacts_pkPRIMARYKEY(contact_id) CREATETABLEcustomers last_namevarchar2(50)notnull, first_namevarchar2(50)notnull, addressvarchar2(50), cityvarchar2(50), statevarchar2(20), zip_codevarchar2(10), CONSTRAINTcustomers_pkPRIMARYKEY(customer_id) |
Решение для практического упражнения № 2:
Следующий оператор Oracle INSERT вставит запись в таблицу customers:
Oracle PL/SQL
INSERT INTO contacts
(contact_id, last_name, first_name, address, city, state, zip_code)
SELECT customer_id,
last_name,
first_name,
address,
city,
state,
zip_code
FROM customers
WHERE state = ‘Nevada’;
1 |
INSERTINTOcontacts SELECTcustomer_id, last_name, first_name, address, city, state, zip_code FROMcustomers WHEREstate=’Nevada’; |
Так как количество полей в таблицах contacts и customers одинаковы и поля перечислены в том же порядке, то вы могли бы записать решение следующим образом (хотя это, как правило, лучшая практика, перечислить весь список имен столбцов в случае изменения определения таблицы):
Oracle PL/SQL
INSERT INTO contacts
SELECT *
FROM customers
WHERE state = ‘Nevada’;
1 |
INSERTINTOcontacts SELECT* FROMcustomers WHEREstate=’Nevada’; |
Переименование полей AS
Имена столбцов в запросах можно переименовывать. Это придает результатам более читабельный вид.
Рассмотрим пример переименования в SQL:
Пример БД «Институт»: Вывести фамилии учителей и их зарплаты, для тех преподавателей, у которых зарплата ниже 15000, переименовать поле на «низкая_зарплата»
Решение:
1 2 3 |
SELECT name, zarplata AS низкая_зарплата FROM teachers WHERE zarplata<15000; |
Результат:
SQL As 2_1. . Вывести данные о компьютерах. Переименовать столбец Скорость в «Мб», а столбец HD в «Гб»
Переименование столбцов в SQL часто необходимо при вычислении значений, связанных с несколькими полями таблицы. Рассмотрим пример:
Пример БД «Институт»: Из таблицы вывести поле и вычислить сумму зарплаты и премии, назвав поле «зарплата_премия»
Решение:
1 2 |
SELECT name, (zarplata+premia) AS zarplata_premia FROM teachers; |
Результат:
SQL As 2_1. . Вывести фамилии учителей и разницу между их зарплатой и премией. Назвать вывод «зарплата_минус_премия»
Задание 2_1. . Из таблицы вывести значения полей , , , и вычислить среднее значение по полям , , , назвав поле «Среднее»
SQL As 2_2. . Вывести объем оперативной памяти в Килобайтах (из Мб получить Кб). Выводить и исходное и получившееся значение
Задание 2_2. . Вывести и оценки по студентов, успеваемость по курсу Word которых ниже 4 баллов, переименовать поле на Низкая успеваемость
Практическое упражнение № 2
На основе приведенной ниже таблицы employees добавьте столбец с именем salary, который имеет тип данных int.
PgSQL
CREATE TABLE employees
( employee_number int NOT NULL,
employee_name char(50) NOT NULL,
department_id int,
CONSTRAINT employees_pk PRIMARY KEY (employee_number)
);
1 |
CREATETABLEemployees employee_namechar(50)NOT NULL, department_idint, CONSTRAINTemployees_pkPRIMARYKEY(employee_number) |
Решение для упражнения № 2
Следующий SQL оператор ALTER TABLE добавит столбец salary в таблицу employees.
PgSQL
ALTER TABLE employees
ADD salary int;
1 |
ALTERTABLEemployees ADDsalaryint; |
Изменить столбец в таблице
Вы не можете использовать оператор ALTER TABLE для изменения столбца в SQLite. Вместо этого вам нужно будет переименовать таблицу, создать новую таблицу и скопировать данные в новую таблицу.
Синтаксис
Синтаксис для изменения столбца в таблице в SQLite:
PRAGMA foreign_keys=off;
BEGIN TRANSACTION;
ALTER TABLE table1 RENAME TO _table1_old;
CREATE TABLE table1 (
( column1 datatype ,
column2 datatype ,
…
);
INSERT INTO table1 (column1, column2, … column_n)
SELECT column1, column2, … column_n
FROM _table1_old;
COMMIT;
PRAGMA foreign_keys=on;
Пример
Давайте рассмотрим пример, который показывает, как изменить столбец в таблице SQLite.
Например, если у нас была таблица employees, в которой был столбец с именем last_name, который был определен как тип данных CHAR:
PgSQL
CREATE TABLE employees
( employee_id INTEGER PRIMARY KEY AUTOINCREMENT,
last_name CHAR NOT NULL,
first_name VARCHAR,
hire_date DATE
);
1 |
CREATETABLEemployees last_nameCHARNOT NULL, first_nameVARCHAR, hire_dateDATE ); |
И мы хотели изменить тип данных поля last_name на VARCHAR, мы могли бы сделать следующее:
PgSQL
PRAGMA foreign_keys=off;
BEGIN TRANSACTION;
ALTER TABLE employees RENAME TO _employees_old;
CREATE TABLE employees
( employee_id INTEGER PRIMARY KEY AUTOINCREMENT,
last_name VARCHAR NOT NULL,
first_name VARCHAR,
hire_date DATE
);
INSERT INTO employees (employee_id, last_name, first_name, hire_date)
SELECT employee_id,
last_name,
first_name,
hire_date
FROM _employees_old;
COMMIT;
PRAGMA foreign_keys=on;
1 |
PRAGMAforeign_keys=off; BEGINTRANSACTION; ALTERTABLEemployeesRENAMETO_employees_old; CREATETABLEemployees last_nameVARCHARNOT NULL, first_nameVARCHAR, hire_dateDATE ); INSERTINTOemployees(employee_id,last_name,first_name,hire_date) SELECTemployee_id, last_name, first_name, hire_date FROM_employees_old; COMMIT; |
Этот пример переименует нашу существующую таблицу employees в _employees_old. Затем он создаст новую таблицу employees с полем last_name, определенным как тип данных VARCHAR. Затем он вставит все данные из таблицы _employees_old в таблицу employees.
Практическое упражнение №2:
На основании таблицы employees ниже, добавьте столбец с наименованием bonus, и типом данных number (6).
Oracle PL/SQL
CREATE TABLE employees
( employee_number number(10) not null,
employee_name varchar2(50) not null,
department_id number(10),
CONSTRAINT employees_pk PRIMARY KEY (employee_number)
);
1 |
CREATETABLEemployees employee_namevarchar2(50)notnull, department_idnumber(10), CONSTRAINTemployees_pkPRIMARYKEY(employee_number) |
Решение для практического упражнения №2:
Следующий оператор Oracle/PLSQL ALTER TABLE добавит столбец bonus к таблице employees:
Oracle PL/SQL
ALTER TABLE employees
ADD bonus number(6);
1 |
ALTERTABLEemployees ADDbonusnumber(6); |
SQL Справочник
SQL Ключевые слова
ADD
ADD CONSTRAINT
ALTER
ALTER COLUMN
ALTER TABLE
ALL
AND
ANY
AS
ASC
BACKUP DATABASE
BETWEEN
CASE
CHECK
COLUMN
CONSTRAINT
CREATE
CREATE DATABASE
CREATE INDEX
CREATE OR REPLACE VIEW
CREATE TABLE
CREATE PROCEDURE
CREATE UNIQUE INDEX
CREATE VIEW
DATABASE
DEFAULT
DELETE
DESC
DISTINCT
DROP
DROP COLUMN
DROP CONSTRAINT
DROP DATABASE
DROP DEFAULT
DROP INDEX
DROP TABLE
DROP VIEW
EXEC
EXISTS
FOREIGN KEY
FROM
FULL OUTER JOIN
GROUP BY
HAVING
IN
INDEX
INNER JOIN
INSERT INTO
INSERT INTO SELECT
IS NULL
IS NOT NULL
JOIN
LEFT JOIN
LIKE
LIMIT
NOT
NOT NULL
OR
ORDER BY
OUTER JOIN
PRIMARY KEY
PROCEDURE
RIGHT JOIN
ROWNUM
SELECT
SELECT DISTINCT
SELECT INTO
SELECT TOP
SET
TABLE
TOP
TRUNCATE TABLE
UNION
UNION ALL
UNIQUE
UPDATE
VALUES
VIEW
WHERE
MySQL Функции
Функции строк
ASCII
CHAR_LENGTH
CHARACTER_LENGTH
CONCAT
CONCAT_WS
FIELD
FIND_IN_SET
FORMAT
INSERT
INSTR
LCASE
LEFT
LENGTH
LOCATE
LOWER
LPAD
LTRIM
MID
POSITION
REPEAT
REPLACE
REVERSE
RIGHT
RPAD
RTRIM
SPACE
STRCMP
SUBSTR
SUBSTRING
SUBSTRING_INDEX
TRIM
UCASE
UPPER
Функции чисел
ABS
ACOS
ASIN
ATAN
ATAN2
AVG
CEIL
CEILING
COS
COT
COUNT
DEGREES
DIV
EXP
FLOOR
GREATEST
LEAST
LN
LOG
LOG10
LOG2
MAX
MIN
MOD
PI
POW
POWER
RADIANS
RAND
ROUND
SIGN
SIN
SQRT
SUM
TAN
TRUNCATE
Функции дат
ADDDATE
ADDTIME
CURDATE
CURRENT_DATE
CURRENT_TIME
CURRENT_TIMESTAMP
CURTIME
DATE
DATEDIFF
DATE_ADD
DATE_FORMAT
DATE_SUB
DAY
DAYNAME
DAYOFMONTH
DAYOFWEEK
DAYOFYEAR
EXTRACT
FROM_DAYS
HOUR
LAST_DAY
LOCALTIME
LOCALTIMESTAMP
MAKEDATE
MAKETIME
MICROSECOND
MINUTE
MONTH
MONTHNAME
NOW
PERIOD_ADD
PERIOD_DIFF
QUARTER
SECOND
SEC_TO_TIME
STR_TO_DATE
SUBDATE
SUBTIME
SYSDATE
TIME
TIME_FORMAT
TIME_TO_SEC
TIMEDIFF
TIMESTAMP
TO_DAYS
WEEK
WEEKDAY
WEEKOFYEAR
YEAR
YEARWEEK
Функции расширений
BIN
BINARY
CASE
CAST
COALESCE
CONNECTION_ID
CONV
CONVERT
CURRENT_USER
DATABASE
IF
IFNULL
ISNULL
LAST_INSERT_ID
NULLIF
SESSION_USER
SYSTEM_USER
USER
VERSION
SQL Server функции
Функции строк
ASCII
CHAR
CHARINDEX
CONCAT
Concat with +
CONCAT_WS
DATALENGTH
DIFFERENCE
FORMAT
LEFT
LEN
LOWER
LTRIM
NCHAR
PATINDEX
QUOTENAME
REPLACE
REPLICATE
REVERSE
RIGHT
RTRIM
SOUNDEX
SPACE
STR
STUFF
SUBSTRING
TRANSLATE
TRIM
UNICODE
UPPER
Функции чисел
ABS
ACOS
ASIN
ATAN
ATN2
AVG
CEILING
COUNT
COS
COT
DEGREES
EXP
FLOOR
LOG
LOG10
MAX
MIN
PI
POWER
RADIANS
RAND
ROUND
SIGN
SIN
SQRT
SQUARE
SUM
TAN
Функции дат
CURRENT_TIMESTAMP
DATEADD
DATEDIFF
DATEFROMPARTS
DATENAME
DATEPART
DAY
GETDATE
GETUTCDATE
ISDATE
MONTH
SYSDATETIME
YEAR
Функции расширений
CAST
COALESCE
CONVERT
CURRENT_USER
IIF
ISNULL
ISNUMERIC
NULLIF
SESSION_USER
SESSIONPROPERTY
SYSTEM_USER
USER_NAME
MS Access функции
Функции строк
Asc
Chr
Concat with &
CurDir
Format
InStr
InstrRev
LCase
Left
Len
LTrim
Mid
Replace
Right
RTrim
Space
Split
Str
StrComp
StrConv
StrReverse
Trim
UCase
Функции чисел
Abs
Atn
Avg
Cos
Count
Exp
Fix
Format
Int
Max
Min
Randomize
Rnd
Round
Sgn
Sqr
Sum
Val
Функции дат
Date
DateAdd
DateDiff
DatePart
DateSerial
DateValue
Day
Format
Hour
Minute
Month
MonthName
Now
Second
Time
TimeSerial
TimeValue
Weekday
WeekdayName
Year
Другие функции
CurrentUser
Environ
IsDate
IsNull
IsNumeric
SQL ОператорыSQL Типы данныхSQL Краткий справочник
MySQL make column FIRST
Let us see in this section how to make the column student_ssn_no the first column of the table student_enroll_data. Observe the below query for the same.
ALTER TABLE student_enroll_data MODIFY COLUMN student_ssn_no BIGINT FIRST ;
Action Output Message :-
18:33:15 ALTER TABLE student_enroll_data MODIFY COLUMN student_ssn_no BIGINT FIRST 0 row(s) affected Records: 0 Duplicates: 0 Warnings: 0 0.015 sec
Let us verify if the position of student_ssn_no got changed by executing:
SELECT * FROM student_enroll_data;
Output:-
image_3
Output in image_3 shows that the column student_ssn_no is the first column of the table. Also, the data is not lost.
Агрегатные функции в SQL
Для получения итоговых значений и вычисления выражений используются агрегатные функции в sql:
Функция | Описание |
---|---|
(*) | Возвращает количество строк таблицы. |
(имя поля) | Возвращает количество значений в указанном столбце. |
(имя поля) | Возвращает сумму значений в указанном столбце. |
(имя поля) | Возвращает среднее значение в указанном столбце. |
(имя поля) | Возвращает минимальное значение в указанном столбце. |
(имя поля) | Возвращает максимальное значение в указанном столбце. |
Все агрегатные функции возвращают единственное значение.
Функции , и применимы к любым типам данных.
Важно: при работе с агрегатными функциями в 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. . Вывести общее количество продуктов, странами-производителями которых является Россия
SQL As 2_4. . Вывести среднюю цену на ноутбуки
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. . Измените предыдущее задание: Посчитайте количество тех курсов, уроки по которым не проводились и не запланированы проводиться. Выводите результат с именем «нет_уроков»
Задание 2_3. . Вывести год рождения самого младшего студента, назвать поле «Младший»
Задание 2_4. . Посчитать количество всех студентов группы 101. Назвать поле «Группа101»
Предложение GROUP BY в SQL
Оператор в sql обычно используется совместно с агрегатными функциями.
Агрегатные функции выполняются над всеми результирующими строками запроса. Если запрос содержит оператор , каждый набор строк, заданных в предложении GROUP BY, составляет группу, и агрегатные функции выполняются для каждой группы отдельно.
Рассмотрим пример с таблицей :
Пример:
- Выдавать количество проведенных уроков учителем Иванов из таблицы (порядковый номер Иванова ()).
SELECT COUNT(tid) AS Иванов FROM lessons WHERE tid=1 |
Результат:
Выдавать количество проведенных уроков учителем Иванов по разным курсам из таблицы
SELECT course, COUNT( tid ) AS Иванов FROM lessons WHERE tid =1 GROUP BY course |
Результат:
Важно: Таким образом, в результате использования все выходные строки запроса разделяются на группы, характеризуемые одинаковыми комбинациями значений в этих столбцах (т.е. агрегатные функции выполняются для каждой группы отдельно)
При этом стоит учесть, что при группировке по полю, содержащему -значения, все такие записи попадут в одну группу.
SQL group by 2_5. . Для различных типов принтеров определить их среднюю стоимость и количество (т.е. отдельно по лазерным, струйным и матричным). Использовать агрегатные функции . Результат должен выглядеть так:
SQL group by 2_5. . Посчитать количество уроков, проведенных одним и тем же учителем. Результат должен выглядеть так:
Задание 2_5. . Вывести количество человек в каждой группе и количество человек на каждом курсе из таблицы . Назвать вычисляемые поля «кол_во_в_гр» и «кол_во_на_курс»
Оператор Having SQL
Предложение в SQL необходимо для проверки значений, которые получены с помощью агрегатной функции после группировки (после использования ). Такая проверка не может содержаться в предложении WHERE.
Пример: БД Компьютерный магазин. Посчитать среднюю цену компьютеров с одинаковой скоростью процессора. Выполнить подсчет только для тех групп, средняя цена которых меньше 30000.
Решение:
SELECT AVG(`Цена`) ,`Скорость` FROM `pc` GROUP BY `Скорость` HAVING AVG(`Цена`) <30000 |
Результат:
Важно: В операторе нельзя использовать псевдоним (например, сред_цена), используемый для именования значений агрегатной функции.
Having SQL 2_6
Для различных типов принтеров определить их среднюю стоимость (т.е. отдельно по лазерным, струйным и матричным). Вести подсчет только если средняя стоимость
Having SQL 2_6.
Посчитать количество уроков, проведенных одним и тем же учителем. Выдавать значение только для тех учителей, у которых уроков больше двух.
Задание 2_6. . Получить количество учеников каждой группы при условии, что курс не меньше 3-го
Далее
Syntax for MySQL change column order
Observe the below syntax to change column order.
ALTER TABLE tableName MODIFY columnName column_definition
- Here we are using the ALTER statement along with MODIFY Clause.
- tableName: is the name of your working table.
- columnName: is the name of the column for which you need to change the order.
- column_definition: is the datatype and size of the column whose order we are changing.
- : is optional.
- : FIRST or AFTER can be used to change a column’s order. FIRST is used if we want to make our column the first column of a table; AFTER keyword is used if we’re going to place our column after a specific column (col_name).
Let us forge ahead into other sections to view the examples for a better understanding.
Предикаты (часть 2)
Предикат LIKE
Синтаксис LIKE::=
<Выражение для вычисления значения строки>
LIKE
<Выражение для вычисления значения строки>
Предикат LIKE сравнивает строку, указанную в первом выражении для вычисления значения строки,
называемого проверяемым значением, с шаблоном, который определен во втором выражении для
вычисления значения строки. В образце разрешается использовать два трафаретных символа:
- Символ подчеркивания (_), который можно использовать вместо любого единичного символа в
проверяемом значении. - Символ процента (%), который заменяет набор любых символов (число символов в наборе
может быть от 0 и более) в проверяемом значении.
Шаблон | Описание |
‘abc%’ | Любые строки, которые начинаются с букв «abc». |
‘abc_’ | Строки длиной строго 4 символа, причем первыми символами строки должны быть «abc». |
‘%z’ | Любая последовательность символов, которая обязательно заканчивается символом «z». |
‘%Rostov%’ | Любая последовательность символов, содержащая слово «Rostov» в любом месте строки. |
Пример. Найти все корабли, имена классов которых заканчиваются на букву ‘о’:
SELECT * FROM Ships WHERE class LIKE ‘%o’; |
name | class | launched |
Haruna | Kongo | 1916 |
Hiei | Kongo | 1914 |
Kirishima | Kongo | 1915 |
Kongo | Kongo | 1913 |
Musashi | Yamato | 1942 |
Yamato | Yamato | 1941 |
Пример. Найти все корабли, имена классов которых заканчиваются на букву ‘о’, но не на ‘go’:
SELECT * FROM Ships WHERE class NOT LIKE ‘%go’ AND class LIKE ‘%o’; |
name | class | launched |
Musashi | Yamato | 1942 |
Yamato | Yamato | 1941 |
Если искомая строка содержит трафаретный символ, то следует задать управляющий символ в
предложении ESCAPE. Этот управляющий символ должен использоваться в шаблоне перед
трафаретным символом, сообщая о том, что трафаретный символ следует трактовать как обычный
символ. Например, если в некотором поле следует отыскать все значения, содержащие символ «_»,
то шаблон ‘%_%’ приведет к тому, что будут возвращены все записи из таблицы. В данном случае
шаблон следует записать следующим образом:
‘%#_%’ ESCAPE ‘#’
Для проверки значения на соответствие строке «25%» можно воспользоваться таким предикатом:
LIKE ’25|%’ ESCAPE ‘|’
Истинностное значение предиката LIKE присваивается в соответствии со следующими правилами:
- Если либо проверяемое значение, либо образец, либо управляющий символ равен NULL,
истинностное значение равно UNKNOWN. - В противном случае, если проверяемое значение и образец имеют нулевую длину,
истинностное значение равно TRUE. - В противном случае, если проверяемое значение соответствует шаблону, то предикат LIKE
равен TRUE. - Если не соблюдается ни одно из перечисленных выше условий, предикат LIKE равен FALSE.
Предикат
IS NULL
позволяет проверить отсутствие (наличие) значения в полях таблицы. Использование в этих случаях
обычных предикатов сравнения может привести к неверным результатам, т.к. сравнение со
значением NULL дает результат UNKNOWN (неизвестно).
Так, если требуется найти записи в таблице Pc, для которых в поле price отсутствует
значение (поиск ошибок ввода), можно воспользоваться следующим оператором:
SELECT * FROM Pc WHERE price IS NULL; |
Рекомендуемые упражнения:
.
SQL Учебник
SQL ГлавнаяSQL ВведениеSQL СинтаксисSQL SELECTSQL SELECT DISTINCTSQL WHERESQL AND, OR, NOTSQL ORDER BYSQL INSERT INTOSQL Значение NullSQL Инструкция UPDATESQL Инструкция DELETESQL SELECT TOPSQL MIN() и MAX()SQL COUNT(), AVG() и …SQL Оператор LIKESQL ПодстановочныйSQL Оператор INSQL Оператор BETWEENSQL ПсевдонимыSQL JOINSQL JOIN ВнутриSQL JOIN СлеваSQL JOIN СправаSQL JOIN ПолноеSQL JOIN СамSQL Оператор UNIONSQL GROUP BYSQL HAVINGSQL Оператор ExistsSQL Операторы Any, AllSQL SELECT INTOSQL INSERT INTO SELECTSQL Инструкция CASESQL Функции NULLSQL ХранимаяSQL Комментарии
Using CHANGE clause to change column order of a table in MysQL
Alternatively, we can also use the CHANGE keyword instead of MODIFY to change a column’s MySQL position both FIRST and AFTER can be used with CHANGE.
Syntax:–
ALTER TABLE tableName CHANGE oldColumnName newColumnName column_definition
- Generally, CHANGE is used when we want to rename the column and change the column definition simultaneously.
- tableName: is the name of your working table.
- oldColumnName: is the name of the column for which you need to change the order.
- newColumnName: is used in case you want to rename the column as well. READ MORE: How to rename a column in MySQL
- column_definition: is the datatype and size of the column whose order we are changing.
- : is optional.
- : FIRST or AFTER can be used to change a column’s order. FIRST is used if we want to make our column the first column of a table, AFTER keyword is used if we’re going to place our column after a specific column (col_name).
Observe the below query and its output to make student_ssn_no the first column of the table student_enroll_data.
ALTER TABLE student_enroll_data CHANGE COLUMN student_ssn_no student_ssn_no BIGINT FIRST;
Output:-
image_4
Observe the below query and its output to make student_ssn_no as the second column of the table.
ALTER TABLE student_enroll_data CHANGE COLUMN student_ssn_no student_ssn_no BIGINT AFTER student_id;
Output:-
image_5
In both cases, the order of data is changed while preserving the data of the column.
We hope this article helped you in changing the order of the column in a MySQL table. Good Luck!!!
Advertisements