- •Лекция: Введение в MySql Содержание
- •Концепции баз данных Системы управления файлами
- •Иерархические базы данных
- •Сетевые базы данных
- •Реляционные базы данных
- •Объектно-ориентированные базы данных
- •Объектно-реляционные базы данных
- •2. Лекция: Подготовка к работе с MySql Содержание
- •Инсталляция вручную
- •Компиляция программы
- •Предоставление привилегий
- •Лекция: Создание базы данных, основы работы с таблицами
- •Создание базы данных в Windows
- •Создание базы данных в Linux
- •Команда create database
- •Работа с таблицами
- •Использование базы данных
- •Создание таблицы
- •Синтаксис команды create table
- •Удаление таблиц
- •Синтаксис команды drop table
- •Лекция: Типы данных столбцов
- •Числовые типы данных
- •Типы данных даты и времени
- •Типы данных datetime, date и timestamp
- •Тип данных time
- •Тип данных year
- •Лекция: Работа с таблицами. Внесение, извлечение, поиск и удаление данных
- •Запись данных в таблицы
- •Задания
- •Возможные решения
- •Выборка данных с помощью условий
- •Операторы больше и меньше
- •Задания
- •Возможные решения
- •Предложение having
- •Задание
- •Возможное решение
- •Удаление записей из таблицы
- •Лекция: Логические операторы
- •Задания
- •Возможные решения
- •8. Лекция: Математические функции
- •9. Лекция: Работа с датой и временем
- •Особенности типа данных Date
- •Операции с датами
- •10. Лекция: Работа со строками
- •Строковые функции
- •Ascii(строка) ord(строка)
- •Concat(строка1, строка2, ...)
- •Concat_ws(разделитель, строка1, строка2, ...)
- •Conv(n, основание_начальное, основание_конечное)
- •Elt(n, строка1, строка2, строкаЗ, ...)
- •Field(строка, строка1, строка2, строка3, ...)
- •Find_in_set(строка, список_строк)
- •Substring_index(строка, разделитель, количество)
- •Trim([[both | leading | trailing] [удаляемая_строка] from] строка)
- •Uncompress(строка_для_распаковки)
- •Unhex(строка)
- •Upper(строка) ucase(строка)
- •11. Лекция: Дополнительные функции MySql
- •Битовые функции
- •Побитовое или ( | )
- •Побитовое и ( & )
- •Функции шифрования
- •Aes_encrypt(строка, строка_ключа) aes_decrypt(зашифрованная_строка, строка_ключа)
- •Decode(зашифрованная_строка, строка_пароля)
- •Encode(строка, строка_пароля)
- •Des_decrypt(зашифрованная_строка [, строка_ключа])
- •Информационные функции benchmark(количество, выражение)
- •Charset(строка)
- •Coercibility(строка)
- •Collation(строка)
- •Прочие функции
- •Get_lock(строка, таймаут)
- •Inet_aton(выражение)
- •Inet_ntoa(выражение)
- •Is_free_lock(строка)
- •Master_pos_wait(имя_журнала, позиция_в_журнале [, таймаут])
- •Release_lock(строка)
Concat(строка1, строка2, ...)
Возвращает строку, которая состоит из сцепленных аргументов. Возвращает NULL, если любой из аргументов равенNULL. Принимает один или более аргументов. Числовой аргумент преобразуется в эквивалентную строковую форму.
mysql> SELECT CONCAT('My', 'S', 'QL');
-> 'MySQL'
mysql> SELECT CONCAT('My', NULL, 'QL');
-> NULL
mysql> SELECT CONCAT(14.3);
-> '14.3'
Concat_ws(разделитель, строка1, строка2, ...)
CONCAT_WS означает "Concat With Separator" ("CONCAT с разделителем") и представляет собой особую формуCONCAT() . Первый аргумент - это разделитель для остальных аргументов. Разделитель добавляется между соединяемыми строками. Разделитель может быть строкой, как и остальные аргументы. Если разделитель равенNULL, результат тоже равен NULL. Функция пропускает любые аргументы NULL после разделителя.
mysql> SELECT CONCAT_WS( ',', 'First name', 'Second name' , 'Last Name');
-> 'First name,Second name,Last Name'
Conv(n, основание_начальное, основание_конечное)
Конвертирует числа между разными системами счисления. Возвращает строковое представление числа N, преобразованное из системы счисления с основанием основание_начальное в систему счисления с основаниемоснование_конечное. Возвращает NULL, если любой из аргументов равен NULL. Аргумент N интерпретируется как целое, но может указываться и как целое, и как строка. Минимальное основание системы счисления - 2, максимальное - 36. Если значение основание_конечное отрицательное, N рассматривается как целое со знаком. В противном случае N считается беззнаковым целым. CONV() работает с 64-разрядной точностью.
mysql> SELECT CONV('а',16,2);
-> '1010'
mysql> SELECT CONV('6E',18,8);
-> '172'
mysql> SELECT CONV(-17,10,-18);
-> '-H'
mysql> SELECT CONV(10+'10'+'10'+0xa,10,10);
-> '40'
Elt(n, строка1, строка2, строкаЗ, ...)
Возвращает строка1, если N = 1, строка2, если N = 2, и так далее. Возвращает NULL, если N меньше 1 или больше количества аргументов. ELT() - это дополнение FIELD().
mysql> SELECT ELT(1, 'ej', 'Heja', 'hej', 'foo');
-> 'ej'
mysql> SELECT ELT(3, 'ej', 'Heja', 'hej', 'foo');
-> 'hej'
Field(строка, строка1, строка2, строка3, ...)
Возвращает позицию вхождения аргумента строка в список строка1, строка2, строка3, ... Возвращает 0, если вхождение не найдено.
FIELD() - это дополнение ELT().
mysql> SELECT FIELD('еj', 'Hej', 'ej', 'Heja', 'hej1', 'foo');
- > 2
Find_in_set(строка, список_строк)
Возвращает значение от 1 до N, если строка находится в списке строк список_строк, состоящего из N подстрок. Список строк - это строка, состоящая из подстрок, разделенных символом ',' . Возвращает 0, если строка не входит в список строк, или если список_строк — пустая строка.
mysql> SELECT FIND_IN_SET('b','a,b,c,d');
-> 2
HEX(Ч_или_С)
Если Ч_или_С - число, возвращает строковое представление шестнадцатеричного значения N, где N - длинное целое (BIGINT). Это эквивалентно CONV(N,10,16).
Если Ч_или_С - строка, то возвращается шестнадцатеричная строка Ч_или_С, в которой каждый символ преобразован в два шестнадцатеричных разряда.
mysql> SELECT HEX(255);
-> 'FF'
mysql> SELECT HEX('abc');
-> '616263'
INSERT(строка, позиция, длина, новая_строка)
Возвращает строку строка, в которой подстрока длиной длина, начинающаяся с позиции позиция, заменяется строкой новая_строка.
mysql> SELECT INSERT('Quadratic', 3, 4, 'What');
-> 'QuWhattic'
INSTR(строка, подстрока)
Возвращает позицию первого вхождения подстроки подстрока в строку строка. Это то же самое, что двухаргументная форма LOCATE(), только аргументы переставлены местами.
mysql> SELECT INSTR('foobarbar', 'bar');
-> 4
mysql> SELECT INSTR('xbar', 'foobar');
-> 0
LEFT(строка, длина)
Возвращает первые длина символов строки строка.
mysql> SELECT LEFT('foobarbar', 5);
-> 'fooba'
LENGTH(строка)
Возвращает длину строки строка в байтах.
mysql> SELECT LENGTH('text');
-> 4
LOAD_FILE(имя_файла)
Читает файл и возвращает его содержимое в виде строки. Файл должен находиться на сервере и к нему должен указываться полный путь. Кроме того, необходимо иметь привилегию FILE. Файл должен быть доступен по чтению всем, и иметь размер менее max_allowed_packet байт.
Если файл не существует или не может быть прочитан, функция возвращает NULL.
LOCATE(подстрока, строка)
LOCATE(подстрока, строка, позиция)
POSITION(подстрока IN строка)
Первый синтаксис возвращает позицию первого вхождения подстроки подстрока в строку строка. Второй синтаксис возвращает позицию первого вхождения подстроки подстрока в строку строка, начиная с позиции позиция. Если подстрока не входит в строку, возвращается 0.
mysql> SELECT LOCATE('bar', 'foobarbar');
-> 4
mysql> SELECT LOCATE('xbar', 'foobar');
-> 0
mysql> SELECT LOCATE('bar', 'foobarbar',5);
-> 7
LOWER(строка)
LCASE(строка)
Возвращает строку строка, в которой все символы приведены к нижнему регистру в соответствии с текущим набором символов.
mysql> SELECT LOWER('QUADRATICALLY');
-> 'quadratically'
LPAD(строка, длина, строка-заполнитель).
Возвращает строку строка, добавив слева строкой строка-заполнитель до длины длина. Если строка длиннее, чем указано в аргументе длина, возвращается значение, усеченное до длина символов.
mysql> SELECT LPAD('hi',4,'*');
-> '**hi'
mysql> SELECT LPAD('hi',1,'*');
-> 'h'
LTRIM(строка)
Возвращает строку строка с удаленными ведущими пробелами.
mysql> SELECT LTRIM(' barbar');
-> 'barbar'
OCT(N)
Возвращает строковое представление восьмеричного значения N, где N - длинное целое.
Это эквивалент CONV(N,10,8).
Возвращает NULL, если N равно NULL.
mysql> SELECT ОСТ(12);
-> '14'
QUOTE(строка)
Заключает строку в кавычки, чтобы результат можно было использовать как допустимое значение в SQL-операторах. Строка окружается одинарными кавычками, а все вхождения в нее одинарной кавычки - обратной косой чертой ("\").
mysql> SELECT QUOTE("Don't");
-> 'Don\'t'
REPEAT(строка, количество)
Возвращает строку, состоящую из аргумента строка, повторенного количество раз.
mysql> SELECT REPEAT('MySQL', 3);
-> 'MySQLMySQLMySQL'
REPLACE(строка, строка_2, строка_3)
Возвращает строку строка, в которой все вхождения строка_2 заменены на строка_3.
mysql> SELECT REPLACE('www.mysql.com', 'w', 'Ww');
-> 'WwWwWw.mysql.com'
REVERSE(строка)
Возвращает строку строка с обратным порядком символов.
mysql> SELECT REVERSE('abc');
-> 'cba'
RIGHT(строка, длина)
Возвращает длина правых символов строки строка.
mysql> SELECT RIGHT('foobarbar', 4);
-> 'rbar'
RPAD(строка, длина, строка-заполнитель)
Возвращает строку строка, дополненную справа строкой строка-заполнитель до длины длина. Если строка длиннее, чем длина, возвращается значение, усеченное до длина символов.
mysql> SELECT RPAD('hi',5,'?');
-> 'hi???'
mysql> SELECT RPAD('hi',1,'?');
-> 'h'
RTRIM(строка)
Возвращает строку строка с удаленными завершающими пробелами.
mysql> SELECT RTRIM('barbar ');
-> 'barbar'
SOUNDEX(строка)
Возвращает строку, описывающую звучание (soundex) строки строка. Две строки, которые произносятся почти одинаково, должны иметь идентичные строки звучания.
mysql> SELECT SOUNDEX('Hello');
-> 'H400'
mysql> SELECT SOUNDEX('Quadratically' );
-> 'Q36324'
SPACE(N)
Возвращает строку, состоящую из N пробелов.
mysql> SELECT SPACE(6);
-> ' '
SUBSTRING(строка, позиция)
SUBSTRING(строка FROM позиция)
SUBSTRING(строка, позиция, длина)
SUBSTRING(строка FROM позиция FOR длина)
Формы без аргумента длина возвращают подстроку строки строка, начиная с позиции позиция. Формы с аргументомдлина возвращают подстроку строки строка длиной длина символов, начиная с позиции позиция. Формы, использующие FROM, представляют стандартный синтаксис SQL.
mysql> SELECT SUBSTRING('Quadratically',5);
-> 'ratically'
mysql> SELECT SUBSTRING('foobarbar' FROM 4);
-> 'barbar'
mysql> SELECT SUBSTRING('Quadratically',5,6);
-> 'ratica'