learnxinyminutes-docs/ru-ru/sql-ru.html.markdown
2019-02-21 22:18:12 +04:00

6.7 KiB
Raw Blame History

language filename contributors translators lang
SQL learnsql.sql
Bob DuCharme
http://bobdc.com/
Shaltaev
https://github.com/shaltaev
ru-ru

Язык структурированных запросов (SQL) - это стандартный язык ISO для создания и работы с базами данных, хранящимися в наборе таблиц. Реализации обычно добавляют свои собственные расширения к языку; Сравнение различных реализаций SQL хороший справочник по различиям в продуктах.

Реализации обычно предоставляют приглашение командной строки, где вы можете вводить команды (описанные ниже) в интерактивном режиме, также есть способ выполнить серию этих команд, сохраненных в файле сценария. (Результат того, что вы сделали с помощью интерактивного режима, является хорошим примером того, что не стандартизировано - большинство реализаций SQL поддерживают ключевые слова QUIT, EXIT или оба.)

Некоторый команды ниже предполагают использование демонстрационный образец базы данных сотрудников от MySQL доступный на github следовательно для повторения команд в локальном окружении он должен быть загружен. Файлы и скрипты на github, схожи с командами ниже, которые манипулируют базами, таблицами и данными. Синтаксис для запуска этих сценариев будет зависеть от используемой вами реализации SQL. Способ запуска из командной строки обычный для вашей операционной системе.

-- Комментарии начинаются с двух дефисов. Завершите каждую команду
-- точкой с запятой.

-- SQL не учитывает регистр ключевых слов. Образцы команд здесь
-- следуйте соглашению о написании их в верхнем регистре, потому что
-- это позволяет легче их отличить от имен баз, таблиц и колонок.

-- Создание и удаление базы данных. Имена базы и таблицы чувствительны
-- к регистру.
CREATE DATABASE someDatabase;
DROP DATABASE someDatabase;

-- Список доступных баз.
SHOW DATABASES;

-- Выбор базы для работы.
USE employees;

-- Выбрать все колонки и строки из таблицы текущей базы.
-- В интерактивном режиме обычно результат будет выведен на экран.
SELECT * FROM departments;

-- Тот же запрос что и вышеБ но выбор только колонок dept_no и dept_name.
-- Разбиение команд на несколько строк допустимо.
SELECT dept_no,
       dept_name FROM departments;

-- В данном случае будут выбраны только первые 5 результатов.
SELECT * FROM departments LIMIT 5;

-- Выбор имен депортаментов где имена содержат в себе 'en'.
SELECT dept_name FROM departments WHERE dept_name LIKE '%en%';

-- Выбор всех колонок где имена начинаются 'S' и 4 любых символа после.
SELECT * FROM departments WHERE dept_name LIKE 'S____';

-- Выбор всех должностей, но без повторений.
SELECT DISTINCT title FROM titles;

-- В дополнение к предыдущему запросу результат будет отсортирован
-- в алфавитном порядке (С учетом регистра).
SELECT DISTINCT title FROM titles ORDER BY title;

-- Вычислить количество строк в таблице депортамента.
SELECT COUNT(*) FROM departments;

-- Вычислить количество строк где имя депортамента содержит 'en'
-- в любой части имени.
SELECT COUNT(*) FROM departments WHERE dept_name LIKE '%en%';

-- ОБЪЕДИНЕНИЕ информации из нескольких таблиц: должность, когда ее занимал,
-- имя и фамилия сотрудника, объединить по идентификатору сотрудника
-- вывести только 10 строк.

SELECT employees.first_name, employees.last_name,
       titles.title, titles.from_date, titles.to_date
FROM titles INNER JOIN employees ON
       employees.emp_no = titles.emp_no LIMIT 10;

-- Список всех таблиц во всех базах. Реализации обычно предоставляют
-- их собственные сокращения чтобы сделать это для текущей базы.
SELECT * FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_TYPE='BASE TABLE';

-- Создать таблицу с именем tablename1, с двумя колонками, для колонок
-- доступно множество опций вроде типа и других, конкретнее уточняйте для
-- своей реализации.
CREATE TABLE tablename1 (fname VARCHAR(20), lname VARCHAR(20));

-- Вставляем строку в таблице созданную в предыдущем запросе .
INSERT INTO tablename1 VALUES('Richard','Mutt');

-- В tablename1, изменить значение fname на 'John'
-- для каждой строки где lname имеет значение 'Mutt'.
UPDATE tablename1 SET fname='John' WHERE lname='Mutt';

-- Удалить строки из таблицы tablename1
-- где lname начинается с 'M'.
DELETE FROM tablename1 WHERE lname like 'M%';

-- Удалить все строки из таблицы tablename1, в итоге получим пустую таблицу.
DELETE FROM tablename1;

-- Удалить таблицу tablename1.
DROP TABLE tablename1;