Выборка данных из таблиц




SELECT * FROM "таблица"; - выбрать все из таблицы

SELECT 'name', 'bio' FROM "таблица" - выборка по name и bio

SELECT id,name FROM people WHERE id > 2 AND id < 5;

WHERE

>= больше или равно

<= меньше или равно

> больше

< меньше

<> не равно

SELECT * FROM `people` WHERE id <> 5 AND id <> 6;

AND - опертор и

Операторов AND может быть сколько угодно

SELECT * FROM `people` WHERE id > 3 AND id < 7 AND bio IS NULL;

IS NULL проверка на пустое значение, IS NOT NULL на непустое значение

SELECT * FROM `people` WHERE id > 2 AND id < 7 AND bio IS NOT NULL;

OR - оператор или

SELECT * FROM `people` WHERE name = 'Иван' OR id = 4;

SELECT DISTINCT bio FROM people;

DISTINCT выбрать все неповторяющиеся значения

SELECT * FROM people LIMIT 3;

LIMIT выбрать лишь 3 записи

SELECT * FROM people LIMIT 2, 3;

пропускаем 2 элемента и выводим 3 следующих

Сортировка

ORDER BY

SELECT * FROM people ORDER BY id LIMIT 2, 3 только в такой последовательности

(SELECT * FROM people WHERE ORDER BY id LIMIT 2, 3) пример

сортировка по id пропуская первые 2 элемента и выводя 3 следующих

SELECT * FROM people ORDER BY id LIMIT 2, 3

SELECT * FROM `people` ORDER BY id DESC LIMIT 2, 3; DESC - сортировка по убываню

SELECT * FROM "название таблицы" WHERE id BETWEEN значение1 AND значение2;

BETWEEN - диапазон значений

Пример

SELECT * FROM `people` WHERE id BETWEEN 2 AND 6;

SELECT * FROM `people` WHERE id BETWEEN 2 AND 6 AND id <> 4 ORDER BY id DESC LIMIT 6;

SELECT * FROM people WHERE id IN (значение1, значение2...);

IN - какие записи показывать

SELECT * FROM people WHERE id IN (4,5,2,1) ORDER BY id DESC LIMIT 6;

LIKE - оператор

SELECT * FROM "таблица" WHERE "поле" LIKE 'символ или часть слова%';

SELECT * FROM people WHERE name LIKE 'И%';

поск по name всех значений начинающихся на И и не важно что идет после И

SELECT * FROM `people` WHERE name LIKE '%р%';

поиск всех записей в поле name имеющих 'р'

 

SELECT * FROM `people` WHERE email LIKE '%v%' '%@%';

поиск всех записей с почтой из поля email где есть символ v и @

Индексы

Индексы - доп характеристики к полям в табличке. Для более быстрого поиска.

Пользователю индексы не видны

CREATE INDEX "название индекса" ON "название таблицы"("поле");

Пример: полю name сделаем индекс

CREATE INDEX nameIndex ON people(name);

в обзоре таблицы ничего не изменилось, но если зайти в структуру,то у name появился ключик:

Удаление индекса

DROP INDEX "название индекса" ON "таблица";

ПОЛЯ-ссылки

Создать две таблицы с полями ссылками

У нас есть таблица people с полем id

Создаем таблицу shop с своим полем id

Создаем таблицу orders с полем shopID которое будет ссылаться на id таблицы shop

и полем personID которое будет ссылаться на id таблицы people

Команда

FOREIGN KEY (shopID) REFERENCES shop(id),

Пример

CREATE TABLE orders(

id INT NOT NULL AUTO_INCREMENT,

orderNumber INT,

shopID INT,

personID INT,

date_time DATETIME DEFAULT CURRENT_TIMESTAMP,

PRIMARY KEY (id),

FOREIGN KEY (shopID) REFERENCES shop(id),

FOREIGN KEY (personID) REFERENCES people(id)

);

Теперь можно объединять данные из нескольких табличек.

Пример:

Добавим значения в таблицу shop:

INSERT INTO `shop`(`title`, `price`)

VALUES ('RTX3090',200000),

('RTX3090',200000),

('RTX3080',150000),

('RTX3070',100000),

('RTX3060',70000);

 

Добавим значения в таблицу orders:

INSERT INTO `orders`(`orderNumber`, `shopID`, `personID`)

VALUES (0001,1,3),

(0002,2,3),

(0003,3,3),

(0004,1,3),

(0005,5,3);



Поделиться:




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

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


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