Главная страница

практическая работа. Практическая работа - для слияния. Практическая работа 1 sql создание базы данных и таблиц Цель


Скачать 3.41 Mb.
НазваниеПрактическая работа 1 sql создание базы данных и таблиц Цель
Анкорпрактическая работа
Дата14.02.2023
Размер3.41 Mb.
Формат файлаdocx
Имя файлаПрактическая работа - для слияния.docx
ТипПрактическая работа
#936408
страница5 из 18
1   2   3   4   5   6   7   8   9   ...   18

SQL - Выборка данных - оператор SELECT


Цель: научиться использовать оператор SELECT

В нашей БД forum есть три таблицы: users (пользователи), topics (темы) и posts (сообщения). И мы хотим посмотреть, какие данные в них содержатся. Для этого в SQL существует оператор SELECT. Синтаксис его использования следующий: 

SELECT что_выбрать FROM откуда_выбрать;


Вместо "что_выбрать" мы должны указать либо имя столбца, значения которого хотим увидеть, либо имена нескольких столбцов через запятую, либо символ звездочки (*), означающий выбор всех столбцов таблицы. Вместо "откуда_выбрать" следует указать имя таблицы.

Давайте сначала посмотрим все столбцы из таблицы users:

SELECT * FROM users; 



Вот и все наши данные, которые мы вносили в эту таблицу. Но предположим, что мы хотим посмотреть только столбец id_user (например, в прошлом уроке, нам надо было для заполнения таблицы topics (темы) знать, какие id_user есть в таблице users). Для этого в запросе мы укажем имя этого столбца:

SELECT id_user FROM users; 



Ну, а если мы захотим посмотреть, например, имена и e-mail наших пользователей, то мы перечислим интересующие столбцы через запятую: 

SELECT name, email FROM users; 



Аналогично, вы можете посмотреть, какие данные содержат и другие наши таблицы. Давайте посмотрим, какие у нас существуют темы: 

SELECT * FROM topics; 



Сейчас у нас всего 4 темы, а если их будет 100? Хотелось бы, чтобы они выводились, например, по алфавиту. Для этого в SQL существует ключевое слово ORDER BY после которого указывается имя столбца по которому будет происходить сортировка. Синтаксис следующий: 

SELECT имя_столбца FROM имя_таблицы ORDER BY имя_столбца_сортировки;



По умолчанию сортировка идет по возрастанию, но это можно изменить, добавив ключевое слово DESC 



Теперь наши данные отсортированы в порядке по убыванию. 

Сортировку можно производить сразу по нескольким столбцам. Например, следующий запрос отсортирует данные по столбцу topic_name, и если в этом столбце будет несколько одинаковых строк, то в столбце id_author будет осуществлена сортировка по убыванию:

Сравните результат с результатом предыдущего запроса.

Очень часто нам не нужна вся информация из таблицы. Например, мы хотим узнать, какие темы были созданы пользователем sveta (id=4). Для этого в SQL есть ключевое слово WHERE, синтаксис у такого запроса следующий:

SELECT имя_столбца FROM имя_таблицы WHERE условие;


Для нашего примера условием является идентификатор пользователя, т.е. нам нужны только те строки, в столбце id_author которых стоит 4 (идентификатор пользователя sveta):

SELECT * FROM topics WHERE id_author=4; 


Или мы хотим узнать, кто создал тему "велосипеды": 


Конечно, было бы удобнее, чтобы вместо id автора, выводилось его имя, но имена хранятся в другой таблице. В последующих уроках мы узнаем, как выбирать данные из нескольких таблиц. А пока узнаем, какие условия можно задавать, используя ключевое слово WHERE. 


Оператор

Описание

= (равно)

Отбираются значения равные указанному

Пример:

SELECT * FROM topics WHERE id_author=4;

Результат:


> (больше)

Отбираются значения больше указанного

Пример:

SELECT * FROM topics WHERE id_author>2;

Результат:


< (меньше)

Отбираются значения меньше указанного

Пример:

SELECT * FROM topics WHERE id_author<3;

Результат:



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

Отбираются значения большие и равные указанному

Пример:

SELECT * FROM topics WHERE id_author>=2;

Результат:



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

Отбираются значения меньшие и равные указанному

Пример:

SELECT * FROM topics WHERE id_author<=3;

Результат:



!= (не равно)

Отбираются значения не равные указанному

Пример:

SELECT * FROM topics WHERE id_author!=1;

Результат:



IS NOT NULL

Отбираются строки, имеющие значения в указанном поле

Пример:

SELECT * FROM topics WHERE id_author IS NOT NULL;

Результат:



IS NULL

Отбираются строки, не имеющие значения в указанном поле

Пример:

SELECT * FROM topics WHERE id_author IS NULL;

Результат:

Empty set - нет таких строк.

BETWEEN (между)

Отбираются значения, находящиеся между указанными

Пример:
SELECT * FROM topics WHERE id_author BETWEEN 1 AND 3;

Результат:



IN (значение содержится)

Отбираются значения, соответствующие указанным

Пример:

SELECT * FROM topics WHERE id_author IN (1, 4);

Результат:



NOT IN (значение не содержится)

Отбираются значения, кроме указанных

Пример:

SELECT * FROM topics WHERE id_author NOT IN (1, 4);

Результат:



LIKE (соответствие)

Отбираются значения, соответствующие образцу

Пример:

SELECT * FROM topics WHERE topic_name LIKE 'вел%';

Результат:
Возможные метасимволы оператора LIKE будут рассмотрены ниже.

NOT LIKE (не соответствие)

Отбираются значения, не соответствующие образцу

Пример:

SELECT * FROM topics WHERE topic_name NOT LIKE 'вел%';

Результат:


1   2   3   4   5   6   7   8   9   ...   18


написать администратору сайта