summaryrefslogtreecommitdiffhomepage
path: root/ru-ru/sql-ru.html.markdown
diff options
context:
space:
mode:
Diffstat (limited to 'ru-ru/sql-ru.html.markdown')
-rw-r--r--ru-ru/sql-ru.html.markdown103
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;
+```