Учебник по языку sql (ddl, dml) на примере диалекта ms sql server. часть первая

Transact-SQL справочник для начинающих — описание справочника

Данный справочник будет выглядеть следующим образом, сначала я приведу небольшое оглавление с навигацией, затем начнется сам справочник, по каждому пункту будут комментарии, пояснения и примеры. Также, если мы уже подробно рассматривали или использовали где-либо в материалах на нашем сайте тот или иной объект или действие, я, конечно же, буду ставить ссылки, для того чтобы Вы могли посмотреть подробные примеры или как использовать то или иное действие на практике.

Так как охватить абсолютно все просто невозможно, поэтому не удивляйтесь, если Вы что-то здесь не обнаружили. Еще раз повторю, что данный справочник создан для начинающих программистов на Transact-SQL, а также для простых админов, которым периодически требуется выгружать какие-то данные с SQL сервера.

Системные представления

В СУБД MS SQL Server есть таки системные объекты, которые могут предоставить иногда достаточно полезную информацию, например системные представления. Сейчас мы разберем парочку таких представлений. Обращаться к ним можно также как и к обычным представлениям (например, select * from название представление)

  • sys.all_objects – содержит все объекты базы данных, включая такие параметры как: название, тип, дата создания и другие.
  • sys.all_columns – возвращает все колонки таблиц с подробными их характеристиками.
  • sys.all_views – возвращает все представления базы данных.
  • sys.tables – все таблицы базы данных.
  • sys.triggers – все триггеры базы данных.
  • sys.databases – все базы данных на сервере.
  • sys.sysprocesses – активные процессы, сессии в базе данных.

Их на самом деле очень много, поэтому все разобрать, не получиться. Если Вы хотите посмотреть, как их можно использовать на практике, то это мы уже делали, например, в материалах Как узнать активные сеансы пользователей в MS Sql 2008

SQL Справочник

SQL Ключевые слова
ADD
ADD CONSTRAINT
ALTER
ALTER COLUMN
ALTER TABLE
ALL
AND
ANY
AS
ASC
BACKUP DATABASE
BETWEEN
CASE
CHECK
COLUMN
CONSTRAINT
CREATE
CREATE DATABASE
CREATE INDEX
CREATE OR REPLACE VIEW
CREATE TABLE
CREATE PROCEDURE
CREATE UNIQUE INDEX
CREATE VIEW
DATABASE
DEFAULT
DELETE
DESC
DISTINCT
DROP
DROP COLUMN
DROP CONSTRAINT
DROP DATABASE
DROP DEFAULT
DROP INDEX
DROP TABLE
DROP VIEW
EXEC
EXISTS
FOREIGN KEY
FROM
FULL OUTER JOIN
GROUP BY
HAVING
IN
INDEX
INNER JOIN
INSERT INTO
INSERT INTO SELECT
IS NULL
IS NOT NULL
JOIN
LEFT JOIN
LIKE
LIMIT
NOT
NOT NULL
OR
ORDER BY
OUTER JOIN
PRIMARY KEY
PROCEDURE
RIGHT JOIN
ROWNUM
SELECT
SELECT DISTINCT
SELECT INTO
SELECT TOP
SET
TABLE
TOP
TRUNCATE TABLE
UNION
UNION ALL
UNIQUE
UPDATE
VALUES
VIEW
WHERE

MySQL Функции
Функции строк
ASCII
CHAR_LENGTH
CHARACTER_LENGTH
CONCAT
CONCAT_WS
FIELD
FIND_IN_SET
FORMAT
INSERT
INSTR
LCASE
LEFT
LENGTH
LOCATE
LOWER
LPAD
LTRIM
MID
POSITION
REPEAT
REPLACE
REVERSE
RIGHT
RPAD
RTRIM
SPACE
STRCMP
SUBSTR
SUBSTRING
SUBSTRING_INDEX
TRIM
UCASE
UPPER
Функции чисел
ABS
ACOS
ASIN
ATAN
ATAN2
AVG
CEIL
CEILING
COS
COT
COUNT
DEGREES
DIV
EXP
FLOOR
GREATEST
LEAST
LN
LOG
LOG10
LOG2
MAX
MIN
MOD
PI
POW
POWER
RADIANS
RAND
ROUND
SIGN
SIN
SQRT
SUM
TAN
TRUNCATE
Функции дат
ADDDATE
ADDTIME
CURDATE
CURRENT_DATE
CURRENT_TIME
CURRENT_TIMESTAMP
CURTIME
DATE
DATEDIFF
DATE_ADD
DATE_FORMAT
DATE_SUB
DAY
DAYNAME
DAYOFMONTH
DAYOFWEEK
DAYOFYEAR
EXTRACT
FROM_DAYS
HOUR
LAST_DAY
LOCALTIME
LOCALTIMESTAMP
MAKEDATE
MAKETIME
MICROSECOND
MINUTE
MONTH
MONTHNAME
NOW
PERIOD_ADD
PERIOD_DIFF
QUARTER
SECOND
SEC_TO_TIME
STR_TO_DATE
SUBDATE
SUBTIME
SYSDATE
TIME
TIME_FORMAT
TIME_TO_SEC
TIMEDIFF
TIMESTAMP
TO_DAYS
WEEK
WEEKDAY
WEEKOFYEAR
YEAR
YEARWEEK
Функции расширений
BIN
BINARY
CASE
CAST
COALESCE
CONNECTION_ID
CONV
CONVERT
CURRENT_USER
DATABASE
IF
IFNULL
ISNULL
LAST_INSERT_ID
NULLIF
SESSION_USER
SYSTEM_USER
USER
VERSION

SQL Server функции
Функции строк
ASCII
CHAR
CHARINDEX
CONCAT
Concat with +
CONCAT_WS
DATALENGTH
DIFFERENCE
FORMAT
LEFT
LEN
LOWER
LTRIM
NCHAR
PATINDEX
QUOTENAME
REPLACE
REPLICATE
REVERSE
RIGHT
RTRIM
SOUNDEX
SPACE
STR
STUFF
SUBSTRING
TRANSLATE
TRIM
UNICODE
UPPER
Функции чисел
ABS
ACOS
ASIN
ATAN
ATN2
AVG
CEILING
COUNT
COS
COT
DEGREES
EXP
FLOOR
LOG
LOG10
MAX
MIN
PI
POWER
RADIANS
RAND
ROUND
SIGN
SIN
SQRT
SQUARE
SUM
TAN
Функции дат
CURRENT_TIMESTAMP
DATEADD
DATEDIFF
DATEFROMPARTS
DATENAME
DATEPART
DAY
GETDATE
GETUTCDATE
ISDATE
MONTH
SYSDATETIME
YEAR
Функции расширений
CAST
COALESCE
CONVERT
CURRENT_USER
IIF
ISNULL
ISNUMERIC
NULLIF
SESSION_USER
SESSIONPROPERTY
SYSTEM_USER
USER_NAME

MS Access функции
Функции строк
Asc
Chr
Concat with &
CurDir
Format
InStr
InstrRev
LCase
Left
Len
LTrim
Mid
Replace
Right
RTrim
Space
Split
Str
StrComp
StrConv
StrReverse
Trim
UCase
Функции чисел
Abs
Atn
Avg
Cos
Count
Exp
Fix
Format
Int
Max
Min
Randomize
Rnd
Round
Sgn
Sqr
Sum
Val
Функции дат
Date
DateAdd
DateDiff
DatePart
DateSerial
DateValue
Day
Format
Hour
Minute
Month
MonthName
Now
Second
Time
TimeSerial
TimeValue
Weekday
WeekdayName
Year
Другие функции
CurrentUser
Environ
IsDate
IsNull
IsNumeric

SQL ОператорыSQL Типы данныхSQL Краткий справочник

Классификация баз данных

Базы данных можно разделить по 4 признакам:

1. Применяемый язык программирования. Открытые базы опираются на один из универсальных языков. В замкнутых базах используются собственный язык программирования.

2. Выполняемые функции. Информационные базы данных предназначены для хранения и доступа к информации. Операционные позволяют проводить сложные обработки информации.

3. Сфера применения. Различают универсальные БД и специализированные, предназначенные для решения конкретных задач.

4. По «мощности» все БД делятся на корпоративные и настольные. Вторые имеют низкую стоимость, рассчитаны на единичного пользователя, имеют низкие требования к техническим средствам.

Корпоративные БД предназначены для работы в распределенной среде, поддерживают одновременную работу многих пользователей, предлагают широкие возможности по проектированию и администрированию базы.

5. По ориентации на целевую аудиторию. Существуют системы, заточенные на разработчиков и конечных пользователей. В первом случае СУБД должна обладать широкими возможностями отладки проектируемой базы данных, иметь возможность создавать не привязанное к СУБД приложение, в нее должны входить средства по созданию сложных и эффективных конечных продуктов.

БД для конечных пользователей должны быть просты, интуитивно понятны, должны иметь программную защиту от непреднамеренной порчи данных со стороны пользователя.

Как использовать SQL

Хотя дополнение будет запрограммировано на языкеPython, PHP или Ruby, базы не настроены с целью понимания языков. Исторически базы понимают только SQL (хотя в последние годы оно существенно изменилось). Из-за чего изучение является почти обязательным, если вы собираетесь работать вобласти веб-разработкиили разработки дополнений.

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

Помимо разметки, еще очередной уникальной особенностью программирования баз получается концепция таблиц. База способна находиться в виде нескольких таблиц. Каждая таблица имеет свое собственное число столбцов и строк и представляет собой набор элементов.

Представьте себе библиотеку. Мы могли бы создать базу, каковая хранит инфу о книгах в библиотеке.

В подобном случае нам понадобится только единственная таблица.

Предоставленная таблица позволит нам хранить необходимую информацию.

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

  • CREATE DATABASE — создать базу
  • CREATE TABLE — создание таблиц
  • SELECT — поиска / извлечения некоторых пунктов из базы
  • Обновление – внесение корректировок и редактирование
  • Удалить – удаления некоторых пунктов

Это лишь самые распространенные команды. Чем сложнее база, тем больше команд вам, как программисту, придется использовать.

Команды применяются при написании запросов, каковые позволяют оперировать сведениями в базах. Другими словами, когда вы вводите эти команды в систему баз, система интерпретирует команды и обрабатывает их. Результатом в силах стать, например, очередную запись в базе или создание свежей базы.

Вот несколько быстрых примеров:

CREATE DATABASEname_of_a_database — создание базы;

Создать таблицуname_of_a_table(

column1 data_type,

column2 data_type,

columnX data_type );

Первый запрос отвечает за создание новоиспеченной базы. Например, дополнение, типа Facebook, в силах содержать базы для каждого из следующих объектов:

  • Пользователи – база станет хранить информацию о профилях пользователей
  • Интересы – база станет содержать различные интересы, некоторые способны быть использованы ради отслеживания увлечений пользователей
  • Географическое расположение – база станет содержать все города по всему миру, в каких живут пользователи Facebook

Второй отвечает за создание очередной таблицы внутри конкретной базы.

Оператор update: обновление информации в БД

При добавлении записи очень легко совершить ошибку: сделать опечатку, не указать значение для одного из полей, и так далее.
Естественно, язык SQL предлагает возможности для редактирования уже созданных записей.

Предположим, что при добавлении погодной записи пользователь ошибся и ввёл неверную дату. Чтобы исправить эту ошибку, нужно использовать оператор обновления — .
Запрос с этим оператором позволяет обновить значение одного или нескольких полей в существующей записи. Выглядит он так:

Но чтобы правильно составить запрос, необходимо определить условие для поиска записи, которую предлагается обновить. В противном случае, если не указать это условие, то будут обновлены абсолютно все записи в таблице.
В качестве такого условия лучше всего использовать первичный идентификатор записи. Поэтому, прежде чем выполнять запрос обновления, нужно выполнить запрос на чтение информации из таблицы, чтобы узнать, под каким идентификатором сохранилась ошибочная запись.
Допустим, этот идентификатор — единица, а правильная дата — пятое сентября 2017 года.

Запрос на обновление:

Возвращаемся к таблицам Employees и Departments

Запрос
Резюме

По сути данный запрос вернет только сотрудников, у которых указано значение DepartmentID.
Т.е. мы можем использовать данное соединение, в случае, когда нам нужны данные по сотрудникам числящихся за каким-нибудь отделом (без учета внештаткиков).

Вернет всех сотрудников

Для тех сотрудников у которых не указан DepartmentID, поля «dep.ID» и «dep.Name» будут содержать NULL.
Вспоминайте, что NULL значения в случае необходимости можно обработать, например, при помощи ISNULL(dep.Name,’вне штата’).
Этот вид соединения можно использовать, когда нам важно получить данные по всем сотрудникам, например, чтобы получить список для начисления ЗП.

Здесь мы получили дырки слева, т.е. отдел есть, но сотрудников в этом отделе нет.
Такое соединение можно использовать, например, когда нужно выяснить, какие отделы и кем у нас заняты, а какие еще не сформированы

Эту информацию можно использовать для поиска и приема новых работников из которых будет формироваться отдел.

Этот запрос важен, когда нам нужно получить все данные по сотрудникам и все данные по имеющимся отделам. Соответственно получаем дырки (NULL-значения) либо по сотрудникам, либо по отделам (внештатники).
Данный запрос, например, может использоваться в целях проверки, все ли сотрудники сидят в правильных отделах, т.к. может у некоторых сотрудников, которые числятся как внештатники, просто забыли указать отдел.

В таком виде даже сложно придумать где это можно применить, поэтому пример с CROSS JOIN я покажу ниже.

ID Name ID Name
1 Администрация 1000 Иванов И.И.
2 Бухгалтерия 1002 Сидоров С.С.
3 ИТ 1001 Петров П.П.
3 ИТ 1003 Андреев А.А.
3 ИТ 1004 Николаев Н.Н.
4 Маркетинг и реклама NULL NULL
5 Логистика NULL NULL
ID Name ID Name
1 Администрация 1000 Иванов И.И.
2 Бухгалтерия 1002 Сидоров С.С.
3 ИТ 1004 Николаев Н.Н.
4 Маркетинг и реклама NULL NULL
5 Логистика NULL NULL
MaxEmployeeID
1005
1000
1002
1004

И это только начало

Существует гораздо больше эффективных методов создания кода, чем те, которые мы рассмотрели

В этой статье основное внимание уделено общим вопросам, связанным с форматированием кода, которые являются общими для широкого спектра операторов TSQL

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

Пожалуйста, оставьте свои комментарии по текущей теме материала. Мы очень благодарим вас за ваши комментарии, лайки, отклики, дизлайки, подписки!

SQL Учебник

SQL ГлавнаяSQL ВведениеSQL СинтаксисSQL SELECTSQL SELECT DISTINCTSQL WHERESQL AND, OR, NOTSQL ORDER BYSQL INSERT INTOSQL Значение NullSQL Инструкция UPDATESQL Инструкция DELETESQL SELECT TOPSQL MIN() и MAX()SQL COUNT(), AVG() и …SQL Оператор LIKESQL ПодстановочныйSQL Оператор INSQL Оператор BETWEENSQL ПсевдонимыSQL JOINSQL JOIN ВнутриSQL JOIN СлеваSQL JOIN СправаSQL JOIN ПолноеSQL JOIN СамSQL Оператор UNIONSQL GROUP BYSQL HAVINGSQL Оператор ExistsSQL Операторы Any, AllSQL SELECT INTOSQL INSERT INTO SELECTSQL Инструкция CASESQL Функции NULLSQL ХранимаяSQL Комментарии

SELECT – оператор выборки данных

ID Name Birthday Email PositionID DepartmentID HireDate ManagerID
1000 Иванов И.И. 1955-02-19 i.ivanov@test.tt 2 1 2015-04-08 NULL
1001 Петров П.П. 1983-12-03 p.petrov@test.tt 3 3 2015-04-08 1003
1002 Сидоров С.С. 1976-06-07 s.sidorov@test.tt 1 2 2015-04-08 1000
1003 Андреев А.А. 1982-04-17 a.andreev@test.tt 4 3 2015-04-08 1000
(No column name) (No column name) (No column name)
825 2015-04-11 12:12:36.0406743 1
  • Целое / Целое = Целое (т.е. в данном случае происходит целочисленное деление)
  • Вещественное / Целое = Вещественное
  • Целое / Вещественное = Вещественное
ID (No column name) (No column name) (No column name) (No column name)
1000 10 10 10 10.000000
1001 10 10.01 10.01 10.010000
1002 10 10.02 10.02 10.020000
1003 10 10.03 10.03 10.030000
ID Name
1003 Андреев А.А.
1000 Иванов И.И.
1001 Петров П.П.
1002 Сидоров С.С.

«Системы баз данных» Гектор Гарсиа-Молина, Джеффри Ульман, Дженнифер Уидом

Книга Джеффри Ульмана и его коллег по Стэнфордскому университету написана в форме учебного справочного пособия по проектированию и сопровождению современных систем баз данных.

В понятном и наглядном виде в книге в первой ее части собран проработанный материал по современным технологиям баз данных по стандартам SQL-99, SQL/PSM, JDBC, ODL, XML, SQL/CLI.

Во второй части книги рассмотрены задачи и различные подходы к их решению на практике.

По сравнению с аналогичными изданиями книгу отличает глубокое и широкое освещение проблематики SQL.

Книга вышла в 2017 году в издательстве «Вильямс».

Допустим, что вы дошли до этого момента

  • Выбирать детальные данные по условию WHERE из одной таблицы
  • Умеете пользоваться агрегатными функциями и группировкой из одной таблицы
ID Name Birthday Salary BonusPercent DepartmentName PositionName
1000 Иванов И.И. 19.02.1955 5000 50 Администрация Директор
1001 Петров П.П. 03.12.1983 1500 15 ИТ Программист
1002 Сидоров С.С. 07.06.1976 2500 NULL Бухгалтерия Бухгалтер
1003 Андреев А.А. 17.04.1982 2000 30 ИТ Старший программист
1004 Николаев Н.Н. NULL 1500 NULL ИТ Программист
1005 Александров А.А. NULL 2000 NULL NULL NULL
ID Name Birthday Salary BonusPercent DepartmentName PositionName
1000 Иванов И.И. 19.02.1955 5000 50 Администрация Директор
1001 Петров П.П. 03.12.1983 1500 15 ИТ Программист
1002 Сидоров С.С. 07.06.1976 2500 NULL Бухгалтерия Бухгалтер
1003 Андреев А.А. 17.04.1982 2000 30 ИТ Старший программист
1004 Николаев Н.Н. NULL 1500 NULL ИТ Программист
1005 Александров А.А. NULL 2000 NULL NULL NULL
DepartmentName PositionCount EmplCount SalaryAmount SalaryAvg
NULL 1 2000 2000
Администрация 1 1 5000 5000
Бухгалтерия 1 1 2500 2500
ИТ 2 3 5000 1666.66666666667
ID Name Salary
1005 Александров А.А. 2000
1003 Андреев А.А. 2000
1000 Иванов И.И. 5000
1004 Николаев Н.Н. 1500
1001 Петров П.П. 1500
1002 Сидоров С.С. 2500

Классификация Structured Query Language

SQL запросы можно разделить на следующие виды:

DDL

Язык определения данных – DDL (аббревиатура Data Definition Language). Основная задача – формирование БД и представление ее структуры. Они диктуют правила (вид) размещения данных в БД.

К DDL относятся SQL Queries:

  • ALTER – применяется для добавления, удаления, изменения столбцов в ранее созданной таблице (ALTER TABLE);
  • COLLATE – используется, чтобы определить, по каким параметрам будет сортироваться БД, столбцы либо операции приведения условий сортировки, если используется выражение строки символов;
  • CREATE – позволяет создать новую БД;
  • DROP – позволяет удалять любые данные (в том числе и таблицы) из БД. Добавляется приставкой к нужному элементу (DROP TABLE – удалить таблицу);
  • DISABLE TRIGGER – выполняет функции отключения триггеров;
  • ENABLE TRIGGER – выполняет включение триггеров DML, DDL или logon;
  • RENAME – используется для переименования таблицы, которая создана пользователем;
  • UPDATE STATISTICS – выполняет функции обновления статистики оптимизации запросов как для таблиц, так и для индексированных представлений;
  • TRUNCATE – удаляет все значения из таблицы, но ее саму оставляет.

DML

Язык манипулирования данными – DML (сокращенное от Data Manipulation Language). К нему относятся команды, при использовании которых осуществляются определенные манипуляции с данными.

Основная часть MS SQL запросов относится именно к DML. В их число входят:

  • BULK INSERT – импортирует файл с данными в таблицу либо представляет БД в том формате, который указал пользователь;
  • SELECT – выводит нужные данные из определенной таблицы;
  • DELETE – выполняет удаление указанной строки (с помощью оператора WHERE) из определенной таблицы в БД,
  • UPDATE – позволяет вносить правки или добавлять новую информацию в сделанные ранее записи. Включает: таблицу с полем, в котором необходимо внести изменения, запись нового значения, для обозначения места в выбранной таблице применяется WHERE;
  • INSERT – в имеющуюся БД добавляет новые записи;
  • UPDATETEXT – выполняет обновление (изменение) существующих полей типа text, ntext или image;
  • MERGE – в целевой таблице выполняет операции вставок, обновлений либо удалений, основанные на результатах соединения с данными исходной;
  • WRITETEXT – выполняет обновление существующих столбцов, имеющих тип text, ntext или image, в режиме онлайн, с минимальным использованием журнала. Данная инструкция перезаписывает в столбцах, для которых используется, любые данные. Но ее нельзя применять в представлениях для столбцов вышеуказанных типов;
  • READTEXT – производит считывание значений text, ntext или image из соответствующих столбцов. Процесс запускается с указанных позиций и длится для обозначенного числа байтов.

Без них не обойтись, когда необходимо:

  • внести изменения в ранее занесенные данные;
  • получить данные из сформированной ранее БД;
  • сохранить, обновить, удалить данные из БД.

DCL

Языком управления данными является DCL (расшифровывается – Data Control Language). В нем объединены запросы вместе с командами, которые касаются прав, разрешений и прочих настроек систем управления БД.

К их числу относятся:

  • GRANT – применяется для распределения пользователям привилегий;
  • REVOKE – выполняет функции отмены привилегий,
  • DENY – применяется для запрещения разрешений участникам. Наделен приоритетом над иными разрешениями, однако не может использоваться к владельцам либо членам с правами sysadmin.

TCL

Языком управления транзакциями является TCL (аббревиатура от Transaction Control Language). TCL-конструкции используются для управления изменениями, происходящими благодаря применению DML-команд. Они дают возможность объединять в наборы транзакций запросы DML.

К ним относятся:

  • BEGIN – позволяет выполнять инструкции T-SQL;
  • COMMIT – выполняет фиксацию транзакции;
  • ROLLBACK – выполняет откат транзакции.

«MySQL по максимуму» Бэрон Шварц, Вадим Ткаченко, Петр Зайцев

Один из бестселлеров издательства O’Reilly, который подойдет тем читателям, которые уже знакомы с теорией баз данных, имеют опыт работы и переходят непосредственно к объяснению практических примеров. Однако в книге есть теоретические моменты, например, глава, посвященная описанию архитектуры MySQL.

Слоган этой серии книг «написано экспертами для экспертов», то есть в ней объясняются сложные кейсы, даются продвинутые способы оптимизации параметров настройки сервера, репликации, резервного копирования и восстановления. Отдельная глава издания посвещена проблемам применения MySQL в облаке.

Самостоятельная работа для закрепления материала

LCode LDescr
1 L-1
2 L-2a
2 L-2b
3 L-3
5 L-5
RCode RDescr
2 B-2a
2 B-2b
3 B-3
4 B-4
LCode LDescr RCode RDescr
2 L-2a 2 B-2a
2 L-2a 2 B-2b
2 L-2b 2 B-2a
2 L-2b 2 B-2b
3 L-3 3 B-3
LCode LDescr RCode RDescr
1 L-1 NULL NULL
2 L-2a 2 B-2a
2 L-2a 2 B-2b
2 L-2b 2 B-2a
2 L-2b 2 B-2b
3 L-3 3 B-3
5 L-5 NULL NULL
LCode LDescr RCode RDescr
2 L-2a 2 B-2a
2 L-2b 2 B-2a
2 L-2a 2 B-2b
2 L-2b 2 B-2b
3 L-3 3 B-3
NULL NULL 4 B-4
LCode LDescr RCode RDescr
1 L-1 NULL NULL
2 L-2a 2 B-2a
2 L-2a 2 B-2b
2 L-2b 2 B-2a
2 L-2b 2 B-2b
3 L-3 3 B-3
5 L-5 NULL NULL
NULL NULL 4 B-4
LCode LDescr RCode RDescr
1 L-1 2 B-2a
2 L-2a 2 B-2a
2 L-2b 2 B-2a
3 L-3 2 B-2a
5 L-5 2 B-2a
1 L-1 2 B-2b
2 L-2a 2 B-2b
2 L-2b 2 B-2b
3 L-3 2 B-2b
5 L-5 2 B-2b
1 L-1 3 B-3
2 L-2a 3 B-3
2 L-2b 3 B-3
3 L-3 3 B-3
5 L-5 3 B-3
1 L-1 4 B-4
2 L-2a 4 B-4
2 L-2b 4 B-4
3 L-3 4 B-4
5 L-5 4 B-4

Что нужно, для того чтобы создать базу данных в Microsoft SQL Server?

В данном разделе я представлю своего рода этапы создания базы данных в Microsoft SQL Server, т.е. это как раз то, что Вы должны знать и что у Вас должно быть, для того чтобы создать базу данных:

  1. У Вас должна быть установлена СУБД Microsoft SQL Server. Для обучения идеально подходит бесплатная редакция Microsoft SQL Server Express. Если Вы еще не установили SQL сервер, то вот подробная видео-инструкция, там я показываю, как установить Microsoft SQL Server 2017 в редакции Express;
  2. У Вас должна быть установлена среда SQL Server Management Studio (SSMS). SSMS – это основной инструмент, с помощью которого осуществляется разработка баз данных в Microsoft SQL Server. Эта среда бесплатная, если ее у Вас нет, то в вышеупомянутой видео-инструкции я также показываю и установку этой среды;
  3. Спроектировать базу данных. Перед тем как переходить к созданию базы данных, Вы должны ее спроектировать, т.е. определить все сущности, которые Вы будете хранить, определить характеристики, которыми они будут обладать, а также определить все правила и ограничения, применяемые к данным, в процессе их добавления, хранения и изменения. Иными словами, Вы должны определиться со структурой БД, какие таблицы она будет содержать, какие отношения будут между таблицами, какие столбцы будет содержать каждая из таблиц. В нашем случае, т.е. при обучении, этот этап будет скорей формальным, так как правильно спроектировать БД начинающий не сможет. Но начинающий должен знать, что переходить к созданию базы данных без предварительного проектирования нельзя, так как реализовать БД, не имея четкого представления, как эта БД должна выглядеть в конечном итоге, скорей всего не получится;
  4. Создать пустую базу данных. В среде SQL Server Management Studio создать базу данных можно двумя способами: первый — с помощью графического интерфейса, второй — с помощью языка T-SQL;
  5. Создать таблицы в базе данных. К этому этапу у Вас уже будет база данных, но она будет пустая, так как в ней еще нет никаких таблиц. На этом этапе Вам нужно будет создать таблицы и соответствующие ограничения;
  6. Наполнить БД данными. В базе данных уже есть таблицы, но они пусты, поэтому сейчас уже можно переходить к добавлению данных в таблицы;
  7. Создать другие объекты базы данных. У Вас уже есть и база данных, и таблицы, и данные, поэтому можно разрабатывать другие объекты БД, такие как: представления, функции, процедуры, триггеры, с помощью которых реализуется бизнес-правила и логика приложения.

Вот это общий план создания базы данных, который Вы должны знать, перед тем как начинать свое знакомство с Microsoft SQL Server и языком T-SQL.

В этой статье мы рассмотрим этап 4, это создание пустой базы данных, будут рассмотрены оба способа создания базы данных: и с помощью графического интерфейса, и с помощью языка T-SQL. Первые три этапа Вы должны уже сделать, т.е. у Вас уже есть установленный SQL Server и среда Management Studio, и примерная структура базы данных, которую Вы хотите реализовать, как я уже сказал, на этапе обучения этот пункт можно пропустить, а в следующих материалах я покажу, как создавать таблицы в Microsoft SQL Server пусть с простой, но с более-менее реальной структурой.

Создание базы данных на T-SQL (CREATE DATABASE)

Процесс создания базы данных на языке T-SQL, наверное, еще проще, так как для того чтобы создать БД с настройками по умолчанию (как мы это сделали чуть выше), необходимо написать всего три слова в редакторе SQL запросов – инструкцию CREATE DATABASE и название БД.

Сначала открываем редактор SQL запросов, для этого щелкаем на кнопку «Создать запрос» на панели инструментов.

Затем вводим следующую инструкцию, и запускаем ее на выполнение, кнопка «Выполнить».

   
   CREATE DATABASE TestDB;

Где CREATE – это команда языка T-SQL для создания объектов на SQL сервере, командой DATABASE мы указываем, что хотим создать базу данных, а TestDB — это имя новой базы данных.

Конечно же, на данном этапе многие не знают ни Microsoft SQL Server, ни языка T-SQL, многие, наверное, как раз и создают базу данных для того, чтобы начать знакомиться с этой СУБД и начать изучать язык SQL. Поэтому чтобы Вам легче было это делать, советую почитать книгу «SQL код» – это самоучитель по языку SQL для начинающих программистов, которую написал я, и в которой я подробно, и в то же время простым языком, рассказываю о языке SQL.

С помощью инструкции CREATE DATABASE можно задать абсолютно все параметры, которые отображались у нас в графическом интерфейсе SSMS. Например, если бы мы заменили вышеуказанную инструкцию следующей, то у нас база данных создалась бы в каталоге DataBases на диске D.

   
   --Создание БД TestDB
   CREATE DATABASE TestDB
   ON  PRIMARY --Первичный файл
   (
         NAME = N'TestDB', --Логическое имя файла БД
         FILENAME = N'D:\DataBases\TestDB.mdf' --Имя и местоположение файла БД
   )
   LOG ON --Явно указываем файлы журналов
   (
        NAME = N'TestDB_log', --Логическое имя файла журнала
        FILENAME = N'D:\DataBases\TestDB_log.ldf' --Имя и местоположение файла журнала
   )
   GO

«PostgreSQL. Основы языка SQL» Евгений Моргунов

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

Сам автор Евгений Павлович Моргунов к.т.н и доцент кафедры Сибирского государственного университета науки и технологий советует изучать его пособие на практике. После небольшого теоретического экскурса идет большое количество практических примеров, показывающих основные возможности SQL.

В книгу включены не только классический SQL-92, но и новшества PostgreSQL (до версии 9.6).

Подходит как для самостоятельного изучения, так и под руководством преподавателя.

Выводы

Мы с вами рассмотрели несколько вариантов простых и сложных SQL запросов. Конечно эту статью не стоит рассматривать ни как учебное пособие, ни как исчерпывающий перечень возможностей запросов в T-SQL, и других диалектах. Скорее ее можно считать примером SQL запросов для начинающих. Однако она может послужить для Вас отправной точкой.

Существует намного большее количество различных SQL запросов. Это и запросы с циклическими конструкциями, и рекурсивные, и различная работа с переменными, и другие виды запросов и подзапросов. Если Вы хотите изучить этот очень важный специфический язык составления запросов к БД – вы можете пройти соответствующие курсы на нашем портале ITVDN.com, выбрав подходящий Вам диалект:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector