Добавление нового столбца в конец таблицы
Mysql> ALTER TABLE имя_таблицы ADD COLUMN имя_столбца тип;
Добавление нового столбца в таблицe после названного поля
Mysql> ALTER TABLE имя_таблицы ADD COLUMN имя_нового _столбца тип AFTER имя_поля,_после_которого_идёт_добавление;
Изменение типа данных и свойств поля
Mysql> ALTER TABLE имя_таблицы CHANGE COLUMN имя_поля имя_нового_поля тип описания;
Удаление поля со всем его содержимым
Mysql> ALTER TABLE имя_таблицы DROP COLUMN имя_поля;
Добавление индекса для указанного поля
Mysql> ALTER TABLE имя_таблицы ADD INDEX имя_индекса(имя_поля);
Удаляет существующий индекс
Mysql> ALTER TABLE имя_таблицы DROP INDEX имя_индекса;
Переименовать таблицу
Mysql> ALTER TABLE имя_таблицы RENAME AS новое_имя_таблицы;
Задание 10.
10.1 Переименуйте таблицу Konsultant в Sotrudniki.
10.2 В таблице Sotrudniki для поля Tovar добавьте индекс.
10.3 Из таблицы Tovar удалите поле Garant.
10.4 В таблицу Sotrudniki добавьте поле Гарантия после поля tovar, установите для него свойства.
10.5 В таблице Tovar переименуйте поле Kol_V_Mag в KOL_VO и установиет атрибут NOT NULL.
10.6 Просмотрите структуру таблиц Sotrudniki и Tovar.
Выполнение
10.1 Mysql> ALTER TABLE Konsultant RENAME AS Sotrudniki;
10.2 Mysql> ALTER TABLE Sotrudniki ADD INDEX tovar(tovar);
10.3 Mysql> ALTER TABLE Tovar DROP COLUMN Garant;
10.4 Mysql> ALTER TABLE Sotrudniki ADD COLUMN Garant FLOAT(3,1) AFTER tovar;
10.5 Mysql> ALTER TABLE Tovar CHANGE COLUMN Kol_V_Mag KOL_VO INT(4)
NOT NULL;
10.6 Mysql>DESCRIBESotrudniki;
Mysql > DESCRIBE Tovar;
ФУНКЦИИ MYSQL
Функции для работы с текстом
LENGTH(имя_колонки) – возвращает длину строки, хранящейся в колонке;
LEFT(имя_колонки,x) – возвращает х левых символов из колонки;
RIGHT(имя_колонки,x) - возвращает х правых символов из колонки;
TRIM(имя_колонки) – исключает лишние пробелы из начала и конца хранимой строки;
UPPER(имя_колонки) – переводит символы строки в верхний регистр;
|
LOWER(имя_колонки) - переводит символы строки в нижний регистр;
CONCAT(имя_колонки1, имя_колонки2) – объединение колонки1 и2.
CONCAT_WS(разделитель, имя_колонки1, имя_колонки2) – объединение строк с добавлением разделителя между значениями.
Конкатенация – объединение строк.
При конкатенации создаётся новое значение, то необходим способ для ссылки на него. Для этого используются псевдонимы.
Псевдоним – дополнительное имя, которому предшествует слово AS.
Синтаксис псевдонимов
SELECT имя_колонки AS псевдоним FROM имя_таблицы;
SELECT CONCAT(имя_колонки1, имя_колонки2) AS псевдоним FROM имя_таблицы;
Задание 11.
1. Подсчитать длину записей в названиях товаров.
2. Исключить лишние пробелы из имени консультантов.
3. Переведите символы названий товаров в верхний регистр, выведите названия товаров и их цену.
4. Из таблицы Сотрудники выведите Ф.И.О., год рождения и заработную плату.
5. Из таблицы Сотрудники выведите Ф.И.О., год рождения, меньше 1980 и заработную плату.
6. Найдите самое длинное название товара.
7. Из таблицы Сотрудники выведите Ф.И.О. месяц рождения с января до июня.
8. Из таблицы Сотрудники выведите Ф.И.О., название товаров в одной колонке. Измените запрос так, чтобы между значениями стоял разделитель.
Измените запрос так, чтобы объединенным колонкам было присвоено имя K_T.
9. Выведите Ф.И.О., товары и их цены в одной колонке с именем T_C.
Выполнение
1. Mysql> select LENGTH (id_tovar), id_tovar from Tovar;
2. Mysql > select TRIM(id_fio) from sotrudniki;
3. Mysql > select UPPER(id_tovar), cena from Tovar;
4. Mysql > select id_fio, LEFT(DR,4), zp from Sotrudniki;
5. Mysql > select id_fio, LEFT(DR,4), zp from Sotrudniki WHERE LEFT(DR,4)<1980;
|
6. Mysql> select id_tovar, LENGTH (id_tovar), cena from Tovar ORDER BY LENGTH (id_tovar) DESC;
7. Mysql > select id_fio, SUBSTRING(DR,6,2), zp from Sotrudniki WHERE SUBSTRING(DR,6,2)< =06;
8. Mysql > select concat(id_fio, Tovar) from sotrudniki;
Mysql > select concat_ws(‘- ‘,id_fio, Tovar) from sotrudniki;
Mysql > select concat_ws(‘- ‘,id_fio, Tovar) AS K_T from sotrudniki;
9. Mysql > select id_fio, concat_ws(‘- ‘,Tovar,cena) AS T_C from sotrudniki, Tovar where Tovar.id_tovar=sotrudniki.tovar;
Агрегатные функции
GROUP BY – группировка строк
SELECT * FROM имя_таблицы GROUP BY имя_поля;
MIN(имя_колонки) – возвращает наименьшее значение в колонке;
MAX(имя_колонки) – возвращает наибольшее значение в колонке;
SUM(имя_колонки) – возвращает сумму всех значений в колонке;
COUNT(имя_колонки) – подсчитывает число строк.
Чтобы применить функцию к каждой колонке в таблице следует записать
Имя_функции(*)
Задание 12.
1. Найдите сумму заработной платы всех сотрудников.
2. Найдите сумму цен для каждой группы товаров.
3. Определите со сколькими видами товаров работает каждый сотрудник.
Выполнение
1. Mysql > Select sum(zp) from sotrudniki;
2. Mysql > SELECT id_Tovar, sum(cena) FROM tovar GROUP BY id_tovar;
3. Mysql > Select id_fio, count(tovar) from sotrudniki GROUP BY tovar;