Терминология SQL-команд. Что мы можем сделать с самого начала?. Дружим с SELECT
Терминология SQL-команд
Оператор – это отдельная команда, которая производит какое-то действие.
Ключевое слово – зарегистрированные слова SQL (их немного)
ID
| Name
| Age
| RegDate
|
| Петр
|
| 28. 06. 2014
|
| Василий
|
| 13. 06. 2014
|
| Григорий
|
| 18. 06. 2014
|
| Валентина
|
| 02. 03. 2014
|
| Елена
|
| 19. 03. 2014
|
SELECT [1] Name, Age, RegDate FROM Clients WHERE Name = 'Петр';
Name
| Age
| RegDate
|
Петр
|
| 28. 06. 2014
|
Что мы можем сделать с самого начала?
mysql> SHOW databases;
Database
|
information_schema
|
mysql
|
performance_schema
|
subs_db
|
test
|
mysql> SELECT название_аргументов FROM название таблицы;
mysql> CREATE DATABASE new;
| //СОЗДАНИЕ БАЗЫ ДАННЫХ
|
mysql> DROP DATABASE new;
| //УДАЛЕНИЕ БАЗЫ ДАННЫХ
|
mysql> CREATE DATABASE clients;
| //СОЗДАЕМ БД clients
|
mysql> USE clients;
| //Database changed - После этого, все действия, которые мы здесь делаем будут относиться к БД, которую мы выбрали.
|
mysql> CREATE TABLE people
(
id INT,
fname VARCHAR(30),
lname VARCHAR(30),
email VARCHAR(30)
);
| //В нашей БД создана первая таблица
|
mysql> DROP TABLE people;
| //УДАЛЕНИЕ ТАБЛИЦЫ
|
mysql> CREATE TABLE subscribers
(
id INT,
fname VARCHAR(30),
lname VARCHAR(30),
email VARCHAR(30)
);
|
|
mysql> DESC subscribers;
| //Если я хочу посмотреть структуру моей таблицы, то вы можете написать такую команду
|
Field
| Type
| Null
| Key
| Default
| Extra
|
id
| INT(11)
| YES
|
| NULL
|
|
fname
| VARCHAR(30)
| YES
|
| NULL
|
|
lname
| VARCHAR(30)
| YES
|
| NULL
|
|
email
| VARCHAR(30)
| YES
|
| NULL
|
|
mysql> INSERT INTO subscribers VALUES(1, 'Petr', 'Radko', 'test@mail. ru');
| //ЗАНЕСЕМ ИНФОРМАЦИЮ В ТАБЛИЦУ
OK, добавлена одна запись
|
mysql> INSERT INTO subscribers(email, fname) VALUES('newnew@inbox. ru', 'Roger');
| Можно добавлять инфу еще вот так
|
mysql> SELECT * FROM subscribers;
| //Выбрать все записи в таблице, где «*» - означает «все записи»
|
id
| fname
| lname
| email
|
| Petr
| Radko
| test@mail. ru
|
NULL
| Roger
| NULL
| newnew@inbox. ru
|
mysql> SELECT fname, email FROM subscribers;
|
|
fname
| email
|
Petr
| test@mail. ru
|
Roger
| newnew@inbox. ru
|
Дружим с SELECT
В этом уроке мы с вами постепенно изучим достаточно широкий диапазон различных применений SELECT. Позже вы поймете, насколько это сложный оператор.
mysql> SHOW databases;
| //Показать все базы данных
|
mysql> USE shop_db;
| //используем выбранную БД
|
mysql> SELECT * FROM products;
| //Извлекаем все записи из таблицы products из БД shop_db
|
name
| shop_name
| price
| rate
|
Apples
| Dicsi
|
|
|
Pie
| Perecrestok
|
|
|
Coca-Cola
| Dicsi
|
|
|
Tomatoes
| Dicsi
|
|
|
Milk
| Perecrestok
|
|
|
Melon
| Dicsi
|
|
|
Diary
| Dicsi
|
|
|
Bread
| Perecrestok
|
|
|
Cheese
| Perecrestok
|
|
|
mysql> SELECT name, price FROM products;
| //Давайте попробуем выделить только имена и цену из этой таблички
|
name
| price
|
Apples
|
|
Pie
|
|
Coca-Cola
|
|
Tomatoes
|
|
Milk
|
|
Melon
|
|
Diary
|
|
Bread
|
|
Cheese
|
|
mysql> SELECT name, price FROM products
WHERE rate = 7;
| //Нам нужно найти все товары у которых популярность равна 7.
Есть знаки: =, <, < =, > =, >, < >
|
name
| price
|
Apples
|
|
Tomatoes
|
|
Diary
|
|
mysql> SELECT name, price FROM products
WHERE rate > = 7;
| //Такая же команда, но только с рейтингом товаров больше 7.
|
name
| price
|
Apples
|
|
Pie
|
|
Coca-Cola
|
|
Tomatoes
|
|
Milk
|
|
Melon
|
|
Diary
|
|
Bread
|
|
mysql> SELECT name FROM products
WHERE shop_name = 'Dicsi';
| //
|
name
|
Apples
|
Coca-Cola
|
Tomatoes
|
Melon
|
Diary
|
mysql> SELECT name FROM products
WHERE shop_name = 'Dicsi' AND rate = 7;
| //Теперь давайте усложним наш запрос: Мы можем добавить команды AND или OR.
Я хочу узнать, какие товары с рейтингом 7 я могу приобрести в магазине Dicsi?
|
name
| price
|
Apples
|
|
Tomatoes
|
|
Diary
|
|
mysql> SELECT name FROM products
WHERE shop_name = 'Dicsi' OR rate > 8;
| //Теперь давайте усложним наш запрос: Мы можем добавить команды AND или OR.
Я хочу узнать, какие товары я могу приобрести в магазине Dicsi ИЛИ с рейтингом больше 8?
Кстати, совсем неважно сколько AND или OR у меня будет.
|
name
| price
|
Apples
|
|
Pie
|
|
Coca-Cola
|
|
Tomatoes
|
|
Melon
|
|
Diary
|
|
Bread
|
|
А мы идем дальше, и переходим к изучению ключевого слова LIKE. Это достаточно интересная конструкция, которая помогает вам проверять значения самих полей.
Предположим, нам нужно вывести только те записи у которых предположим какое-то количество букв есть до буквы 'c' и какое-то количество букв после нее. Проверим это на примере:
mysql> SELECT name FROM products
WHERE shop_name LIKE '%ok';
| //Давайте попробуем выделить только имена и цену из этой таблички
И дальше мы вводим какие-то критерии. Для нас критично, чтобы последние две буквы заканчивались на ok.
|
mysql> SELECT name FROM products
WHERE shop_name LIKE '%re%';
| В этот раз давайте возьмем в середине:
%re% - т. е. мы взяли последовательность ‘re’ и любое количество букв до и после.
|
mysql> SELECT name FROM products
WHERE shop_name LIKE 'Dics_';
| Также помимо ‘%’, у нас есть символ нижнего подчеркивания ‘_’. Этот оператор тоже достаточно простой. Он подразумевает только 1 символ. Давайте посмотрим, как это выглядит.
|
name
|
Apples
|
Coca-Cola
|
Tomatoes
|
Melon
|
Diary
|
mysql> SELECT name FROM products
WHERE shop_name LIKE '_ere%' AND rate < 7;
| А можно сделать так.
|
Следующий на очереди оператор – это оператор IN. Это тоже достаточно интересная вещь. Давайте представим себе ситуацию, что нам нужно в одном поле выделить большое количество значений, т. е. у нас есть поле, у нас есть записи и для каждой записи в этом поле есть свое значение и нам нужно выделить достаточно большое их количество. Чтобы мы сделали? Мы бы написали « Выделить что-то, где в поле содержится что-то AND какое-то поле содержит то-то и т. д. ». И так бы мы повторяли конструкцию AND очень много раз. Например:
mysql> SELECT name, rate FROM products
WHERE rate = 7 AND rate = 8 AND rate = 9;
| mysql> SELECT name, rate FROM products
WHERE rate IN(7, 8, 9);
|
name
| rate
|
Apples
|
|
Pie
|
|
Tomatoes
|
|
Milk
|
|
Melon
|
|
Diary
|
|
Bread
|
|
Переходим к ключевому слову BETWEEN.
mysql> SELECT name, price FROM products WHERE price BETWEEN 50 AND 100;
| А можно сделать так.
|
name
| price
|
Pie
|
|
Tomatoes
|
|
Cheese
|
|
Мы подходим к концу урока, и изучим еще ключевое слово «NOT». Оно меняет результат в обратную сторону.
mysql> SELECT name, price FROM products WHERE NOT price BETWEEN 50 AND 100;
| Таким образом, он выдаст нам все запросы, которые не соответствуют данному предложению
|
name
| price
|
Apples
|
|
Coca-Cola
|
|
Milk
|
|
Melon
|
|
Diary
|
|
Bread
|
|
Давайте попробуем проделать то же самое с IN. NOT можно ставить и спереди, и сзади.
mysql> SELECT name FROM products WHERE NOT rate > 8;
| mysql> SELECT name FROM products WHERE rate NOT > 8;
|
Воспользуйтесь поиском по сайту: