diff options
Diffstat (limited to 'ru-ru/sql-ru.html.markdown')
-rw-r--r-- | ru-ru/sql-ru.html.markdown | 103 |
1 files changed, 103 insertions, 0 deletions
diff --git a/ru-ru/sql-ru.html.markdown b/ru-ru/sql-ru.html.markdown new file mode 100644 index 00000000..64b7ab71 --- /dev/null +++ b/ru-ru/sql-ru.html.markdown @@ -0,0 +1,103 @@ +--- +language: SQL +filename: learnsql-ru.sql +contributors: + - ["Bob DuCharme", "http://bobdc.com/"] +translators: + - ["Shaltaev", "https://github.com/shaltaev"] +lang: ru-ru +--- + +Язык структурированных запросов (SQL) - это стандартный язык ISO для создания и работы с базами данных, хранящимися в наборе таблиц. Реализации обычно добавляют свои собственные расширения к языку; [Сравнение различных реализаций SQL](http://troels.arvin.dk/db/rdbms/) хороший справочник по различиям в продуктах. + +Реализации обычно предоставляют приглашение командной строки, где вы можете вводить команды (описанные ниже) в интерактивном режиме, также есть способ выполнить серию этих команд, сохраненных в файле сценария. (Результат того, что вы сделали с помощью интерактивного режима, является хорошим примером того, что не стандартизировано - большинство реализаций SQL поддерживают ключевые слова QUIT, EXIT или оба.) + +Некоторый команды ниже предполагают использование [демонстрационный образец базы данных сотрудников от MySQL](https://dev.mysql.com/doc/employee/en/) доступный на [github](https://github.com/datacharmer/test_db) следовательно для повторения команд в локальном окружении он должен быть загружен. Файлы и скрипты на github, схожи с командами ниже, которые манипулируют базами, таблицами и данными. Синтаксис для запуска этих сценариев будет зависеть от используемой вами реализации SQL. Способ запуска из командной строки обычный для вашей операционной системе. + +```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; +``` |