Модификация структуры таблиц




Добавление нового столбца в конец таблицы

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;




Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-02-13 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: