Команды управления БД.
CREATE DATABASE
Оператор, который создает новую базу данных, имеет следующий формат:
create database имя_базы_данных;
Пример:
create database user;
Максимальная длина имени БД составляет 64 знака и может включать буквы, цифры, символ "_" и символ "$". Имя может начинаться с цифры, но не должно полностью состоять из цифр. Любой запрос к БД заканчивается точкой с запятой (этот символ называется разделителем). Получив запрос, сервер выполняет его и в случае успеха выдает сообщение "Query OK..."
USE
Оператор, который позволяет выбрать существующую базу данных, имеет формат:
use имя_базы_данных;
Пример:
use user;
CREATE TABLE
Оператор, который создает новую таблицу в выбранной базе данных, имеет формат:
create table имя_табл (имя_первого_столбца тип, имя_последнего_столбца тип);
Пример:
create table age(user_id int, user_name text, user_age int);
Требования к именам таблиц и столбцов такие же, как и для имен БД. К каждому столбцу привязан определенный тип данных, который ограничивает характер информации, которую можно хранить в столбце (например, предотвращает ввод букв в числовое поле). MySQL поддерживает несколько типов данных: числовые, строковые, календарные и специальный тип NULL, обозначающий отсутствие информации.
SHOW DATABASES
Оператор показывает все имеющиеся базы данных.
SHOW TABLES
Оператор показавает список таблиц текущей БД (предварительно ее надо выбрать с помощью оператора use).
DESCRIBE
Оператор показавает описание столбцов указанной таблицы, имеет формат:
describe имя_таблицы;
Пример:
describe age;
DROP
Оператор позволяет удалять таблицы и БД, имеет формат:
drop table имя_таблицы;
Пример:
drop age;
INSERT
Оператор позволяющий добавлять данные в таблицу, имеет формат:
INSERT INTO имя_таблицы VALUES ('значение_первого_столбца','значение_второго_столбца',..., 'значение_последнего_столбца')
Или же для того чтобы вставить в определенные поля в таблице используется:
INSERT INTO имя_таблицы ('имя_столбца', 'имя_столбца') VALUES ('значение_первого_столбца','значение_второго_столбца');
Если бы у нас были поля с типом NULL, т.е. необязательные для заполнения, мы бы тоже могли их проигнорировать. А вот если попытаться оставить пустым поле со значением NOT NULL, то сервер выдаст сообщение об ошибке и не выполнит запрос. Кроме того, при внесении данных сервер проверяет связи между таблицами. Поэтому вам не удастся внести в поле, являющееся внешним ключом, значение, отсутствующее в связанной таблице. В этом вы убедитесь, внося данные в оставшиеся две таблицы.
Пример:
INSERT INTO info (login, sex, pass) VALUES ('Alex','man', '123');
SELECT
Оператор позволяет извлечь или показать данные из таблицы, имеет формат:
SELECT что_выбрать FROM откуда_выбрать;
Вместо "что_выбрать" мы должны указать либо имя столбца, значения которого хотим увидеть, либо имена нескольких столбцов через запятую, либо символ звездочки (*), означающий выбор всех столбцов таблицы. Вместо "откуда_выбрать" следует указать имя таблицы.
Пример:
SELECT * FROM info;
Для того чтобы отсортировать данные в таблице, можно воспользоваться ключем ORDER BY, который применятся так:
SELECT имя_столбца FROM имя_таблицы ORDER BY имя_столбца_сортировки;
Пример:
SELECT * FROM info ORDER BY sex;
По умолчанию сортировка идет по возрастанию, но это можно изменить, добавив ключевое слово DESC.
Пример:
SELECT * FROM info ORDER BY sex DESC;
Очень часто нам не нужна вся информация из таблицы. Например, мы хотим узнать, сколько имеется в базе пользователей с именем «Alex». Для этого нам потребуется ключ WHERE, который имеет формат:
SELECT имя_столбца FROM имя_таблицы WHERE условие;
Пример:
SELECT * FROM info WHERE login=’Alex’;
Условные операторы.
Оператор | Описание |
= (равно) | Отбираются значения равные указанному Пример: SELECT * FROM info WHERE id_preson=1; |
> (больше) | Отбираются значения больше указанного Пример: SELECT * FROM info WHERE id_preson>1; |
< (меньше) | Отбираются значения меньше указанного Пример: SELECT * FROM info WHERE id_preson<1; |
>= (больше или равно) | Отбираются значения большие и равные указанному Пример: SELECT * FROM info WHERE id_preson>=1; |
<= (меньше или равно) | Отбираются значения меньшие и равные указанному Пример: SELECT * FROM info WHERE id_preson<=1; |
!= (не равно) | Отбираются значения не равные указанному Пример: SELECT * FROM info WHERE id_preson!=1; |
IS NOT NULL | Отбираются строки, имеющие значения в указанном поле Пример: SELECT * FROM info WHERE id_preson IS NOT NULL; |
IS NULL | Отбираются строки, не имеющие значения в указанном поле Пример: SELECT * FROM info WHERE id_preson IS NULL; |
BETWEEN (между) | Отбираются значения, находящиеся между указанными Пример: SELECT * FROM info WHERE id_preson BETWEEN 1 AND 3; |
IN (значение содержится) | Отбираются значения, соответствующие указанным Пример: SELECT * FROM info WHERE id_preson IN (1, 4); |
NOT IN (значение не содержится) | Отбираются значения, кроме указанных Пример: SELECT * FROM info WHERE id_preson NOT IN (1, 4); |
LIKE (соответствие) | Отбираются значения, соответствующие образцу Пример: SELECT * FROM info WHERE id_preson LIKE 'Al%'; |
NOT LIKE (не соответствие) | Отбираются значения, не соответствующие образцу Пример: SELECT * FROM info WHERE id_preson NOT LIKE 'Al%'; |
Метасимволы оператора LIKE
Но может возникнуть проблема, т.к. не всегда удобно в условии писать точное имя, число или другое значение. Поэтому для поиска используются специальные метасимволы.
Поиск с использованием метасимволов может осуществляться только в текстовых полях.
Самый распространенный метасимвол - %. Он означает любые символы. Например, если нам надо найти слова, начинающиеся с букв "Al", то мы напишем LIKE 'Al%', а если мы хотим найти слова, которые содержат символы "Alex", то мы напишем LIKE '%Alex%.
Пример:
SELECT * FROM info WHERE login LIKE 'Al%';
Вложенные запросы
Приведенные выше примеры обращались только к 1 таблице, на практике же уже практические не встречаются запросы исключительно к одной из таблиц БД, поэтому применяют вложенные запросы.
Допустим, что нам необходимо получить возраст пользователей из таблицы «age» пол которых соответствует параметру «man». Формат вложенного запроса находится ниже:
SELECT имя_столбца FROM имя_таблицы WHERE часть условия IN
(SELECT имя_столбца FROM имя_таблицы WHERE часть условия IN
(SELECT имя_столбца FROM имя_таблицы WHERE условие)
);
Разберёмся на примере:
SELECT user_age FROM age WHERE user_id IN
(
SELECT id_person FROM info WHERE sex=’man’
);
Редактирование данных