//Если я хочу посмотреть структуру моей таблицы, то вы можете написать такую команду
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.
name
Pie
Bread
Cheese
mysql> SELECT name FROM products
WHERE shop_name LIKE '%re%';
В этот раз давайте возьмем в середине:
%re% - т. е. мы взяли последовательность ‘re’ и любое количество букв до и после.
name
Pie
Bread
Cheese
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;
А можно сделать так.
name
Cheese
Следующий на очереди оператор – это оператор 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;