
- •Операционные системы:
- •Домен — основные понятия и структура (креды, шары, ad):
- •Базовые команды ping / ipconfig (ifconfig):
- •Сетевые шары и права:
- •Виртуальные машины:
- •Web технологии
- •Критерии выбора браузера для тестирования:
- •Как узнать статистику использования браузера в разных регионах?
- •Базовые знания синтаксиса sql. Операторы Select, Update, Delete, Drop, Where, From, Like, Join: Понятие базы данных
- •Структура базы данных
- •Реляционные базы данных
- •Синтаксис sql:
- •Знание основных инструментов MsOffice:
Синтаксис sql:
SELECT
Итак, в нашей БД forum есть три таблицы: users (пользователи), topics (темы) и posts (сообщения). И мы хотим посмотреть, какие данные в них содержатся. Для этого в SQL существует оператор SELECT. Синтаксис его использования следующий:
SELECT что_выбрать FROM откуда_выбрать;
Вместо "что_выбрать" мы должны указать либо имя столбца, значения которого хотим увидеть, либо имена нескольких столбцов через запятую, либо символ звездочки (*), означающий выбор всех столбцов таблицы. Вместо "откуда_выбрать" следует указать имя таблицы.
Давайте сначала посмотрим все столбцы из таблицы users:
SELECT * FROM users;
Но предположим, что мы хотим посмотреть только столбец id_user (например, в прошлом уроке, нам надо было для заполнения таблицы topics (темы) знать, какие id_user есть в таблице users). Для этого в запросе мы укажем имя этого столбца:
SELECT id_user FROM users;
в SQL существует ключевое слово ORDER BY после которого указывается имя столбца по которому будет происходить сортировка. Синтаксис следующий:
SELECT имя_столбца FROM имя_таблицы ORDER BY имя_столбца_сортировки;
По умолчанию сортировка идет по возрастанию, но это можно изменить, добавив ключевое слово DESC
Очень часто нам не нужна вся информация из таблицы. Например, мы хотим узнать, какие темы были созданы пользователем sveta (id=4). Для этого в SQL есть ключевое слово WHERE, синтаксис у такого запроса следующий:
SELECT имя_столбца FROM имя_таблицы WHERE условие;
Для нашего примера условием является идентификатор пользователя, т.е. нам нужны только те строки, в столбце id_author которых стоит 4 (идентификатор пользователя sveta): SELECT * FROM topics WHERE id_author=4;
Оператор |
Описание |
= (равно) |
Отбираются значения равные указанному Пример: 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; |
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 'вел%'; |
NOT LIKE (не соответствие) |
Отбираются значения, не соответствующие образцу Пример: SELECT * FROM topics WHERE topic_name NOT LIKE 'вел%'; |
UPDATE
UPDATE — оператор языка SQL, позволяющий обновить значения в заданных столбцах таблицы.
UPDATE [top(x)] <объект>
SET <[присваивание1 , присваивание2, ...]>
[WHERE <условие>];
top(x) — команда выполнится только х раз
<объект> — объект, над которым выполняется действие (таблица или представление)
<присваивание> — присваивание, которое будет выполняться при каждом выполнении условия <условие>, или для каждой записи, если отсутствует раздел where
<условие> — условие выполнения команды
SET — после ключевого слова должен идти список полей таблицы, которые будут обновлены и непосредственно сами новые значения в виде имя поля="значение"
UPDATE top(10) tbl_books SET price = 0 WHERE quantity = 0;
INSERT
INSERT — оператор языка SQL, который позволяет добавить строки в таблицу, заполняя их значениями. Значения можно вставлять перечислением с помощью слова values и перечислив их в круглых скобках через запятую или оператором select.
INSERT INTO <название таблицы> ([<Имя столбца>, ...]) VALUES (<Значение>, ...)
Пример:
INSERT INTO EMPSAMP (NAME, SALARY, DEPTNO, LEVEL) VALUES (’Mary Smith’, 35000.00, 11, ’Associate’)
DELETE
Пример:
DELETE FROM users WHERE login='TestUser2'
После команды "DELETE FROM" идёт имя таблицы, в которой требуется удалить записи. Дальше описываем конструкцию "WHERE". Если запись будет соответствовать описанным условиям, то она будет удалена. Опять же обратите внимание, в зависимости от количества записей, удовлетворяющих условию после "WHERE", может удалиться любое их количество.
JOIN
Команда JOIN в SQL-запросе служит для объединения выборки из нескольких таблиц в один результирующий набор, причём в результирующей выборке находятся все поля всех таблиц, участвующих в запросе.
Существует несколько вариантов запроса JOIN, начнём мы с самого популярного, а именно INNER JOIN:
SELECT * FROM `users` INNER JOIN `subscribers` ON `users`.`email` = `subscribers`.`email`
Подобным запросом я извлёк все записи, где в выборку попадут все пользователи сайта, которые также являются подписчиками.
Особенностью INNER JOIN является то, что в результат входят все поля со всеми значениями. Количество записей ровно столько, сколько удовлетворили условиям у обеих таблиц.
Теперь давайте перейдём к следующей разновидности JOIN, а точнее к LEFT OUTER JOIN:
SELECT * FROM `users` LEFT OUTER JOIN `subscribers` ON `users`.`email` = `subscribers`.`email`
Особенностью данного запроса является то, что результат выборки содержит записи, удовлетворяющие левой таблице. Если они ещё и удовлетворяют условиям правой таблицы, то это идентично INNER JOIN, иначе вместо значений в правой таблице будет NULL.
Теперь перейдём к RIGHT OUTER JOIN:
SELECT * FROM `users` RIGHT OUTER JOIN `subscribers` ON `users`.`email` = `subscribers`.`email`
Отличие левого и правого джоина:
Возвращаются все данные из «левой» таблицы, даже если не найдено соответствий в «правой» таблице; Возвращаются все данные из «правой» таблицы, даже если не найдено соответствий в «левой» таблице;
DROP
Используя запрос DROP можно удалить таблицы (TABLE). Удаление таблицы: DROP TABLE table;