atesting.ru Новости Or (transact-sql)or (transact-sql)

Or (transact-sql)or (transact-sql)

Примеры простых запросов SQL к базам данных.

Рассмотрим основные запросы SQL.

SELECT

1) Выведем все имеющиеся у нас БД:

SELECT name, database_id, create_date FROM sys.databases;

2) Выведем все таблицы в созданной нами ранее БД «b_library»:

SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE=’BASE TABLE’

3) Выводим еще раз имеющиеся у нас записи по авторам книг из созданной выше «tAuthors»:

SELECT * FROM tAuthors;

4) Выведем информацию о том, сколько у нас имеется записей строк в «tAuthors»:

SELECT count(*) FROM tAuthors;

5) Выведем из «tAuthors» две записи, начиная с четвертой. Используя ключевое слово OFFSET, пропустим первые три записи, а благодаря использованию ключевого слова FETCH – обозначим выборку только следующих 2 строк (ONLY):

SELECT * FROM tAuthors ORDER BY AuthorId OFFSET 3 ROWS     FETCH NEXT 2 ROWS ONLY;

6) Выведем из «tAuthors» все записи с сортировкой в алфавитном порядке по первой букве имени автора:

SELECT * FROM tAuthors ORDER BY AuthorFirstName;

7) Выведем из «tAuthors данные, предварительно по AuthorId отсортировав их по убыванию:

SELECT * FROM tAuthors ORDER BY AuthorId DESC;

8) Выберем записи из «tAuthors», значение AuthorFirstName у которых соответствует имени «Александр»:

SELECT * FROM tAuthors WHERE AuthorFirstName=’Александр’;

9) Выберем из «tAuthors» записи, где имя автора AuthorFirstName начинается с «се»:

SELECT * FROM tAuthors WHERE AuthorFirstName LIKE ‘се%’;

10) Выберем из «tAuthors» записи, в которых имя автора (AuthorFirstName) заканчивается на «ат»:

SELECT * FROM tAuthors WHERE AuthorFirstName LIKE ‘%ат’ ORDER BY AuthorId;

11) Сделаем выборку всех строк из «tAuthors», значение AuthorId в которых равняется 2 или 4:

SELECT * FROM tAuthors WHERE AuthorId IN (2,4);

12) Выберем в «tAuthors» такую запись AuthorAge, значение которой — наибольшее:

SELECT max(AuthorAge) FROM tAuthors;

13) Проведем выборку из «tAuthors» по столбцам AuthorFirstName и AuthorLastName:

SELECT AuthorFirstName, AuthorLastName FROM tAuthors;

14) Получим из «tAuthors» все строки, у которых AuthorId не равняется трем:

SELECT AuthorId, AuthorFirstName, AuthorLastName  FROM tAuthors WHERE AuthorId!=’3′;

INSERT

INSERT – это вид запроса SQL, при применении которого СУБД выполняет добавление новых записей в БД. Добавим в «tAuthors» нового автора – Уильяма Шекспира, 51 год. Соответственно в поле AuthorFirstName добавится Уильям, в AuthorLastName добавится Шекспир, в AuthorAge – 51. В AuthorId, в нашем случае, автоматически добавится значение, инкрементированное от предыдущего на 1.

INSERT INTO tAuthors VALUES (‘Уильям’, ‘Шекспир’, ’51’);

Проверим:

SELECT * FROM tAuthors;

UPDATE

UPDATE – SQL запрос, позволяющий внести изменения или дописывать новую информацию в те записи, которые уже существуют.

Внесем корректировки в шестую запись (AuthorId = 6). Значения изменим для полей имени, фамилии и возраста автора.

UPDATE tAuthors SET AuthorFirstName = ‘Лев’, AuthorLastName=’Толстой’, AuthorAge = ’82’ WHERE AuthorId = ‘6’;

Затем, обратимся к БД, чтобы вывести все имеющиеся записи:

SELECT * FROM tAuthors;

Мы видим изменения информации в записи автора под номером 6.

DELETE

DELETE – SQL запрос, выполняя который в СУБД производится операция удаления определенной строки из таблицы в БД.

Обратимся к «tAuthors» с командой на удаление строки, где AuthorId = 5:

DELETE FROM tAuthors WHERE AuthorId = ‘5’;

Чтобы увидеть изменения, снова обратимся к базе для вывода всех записей:

SELECT * FROM tAuthors;

Мы видим, что запись автора под номером 5 теперь отсутствует в «tAuthors» и, соответственно, не выводится с другими записями.

DROP

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

После рассмотрения ряда простых запросов к БД мы можем полностью удалить нашу таблицу «tAuthors целиком, выполнив простой SQL запрос:

DROP TABLE tAuthors;    

Далее рассмотрим сложные запросы SQL.

SQL Server функции строк

Функция Описание
ASCII Возвращает значение ASCII для конкретного символа
CHAR Возвращает символ, основанный на коде ASCII
CHARINDEX Возвращает положение подстроки в строке
CONCAT Добавляет две или более строк вместе
Concat with + Добавляет две или более строк вместе
CONCAT_WS Добавляет две или более строк вместе с разделителем
DATALENGTH Возвращает количество байтов, используемых для представления выражения
DIFFERENCE Сравнивает два значения SOUNDEX и возвращает целое значение
FORMAT Форматирует значение с указанным форматом
LEFT Извлекает ряд символов из строки (начиная слева)
LEN Возвращает длину строки
LOWER Преобразует строку в нижний регистр
LTRIM Удаляет начальные пробелы из строки
NCHAR Возвращает символ Unicode, основанный на числовом коде
PATINDEX Возвращает положение шаблона в строке
QUOTENAME Возвращает строку Unicode с добавленными разделителями, чтобы сделать строку допустимым идентификатором с разделителями SQL Server
REPLACE Заменяет все вхождения подстроки в строке на новую подстроку
REPLICATE Повторяет строку заданное количество раз
REVERSE Переворачивает строку и возвращает результат
RIGHT Извлекает ряд символов из строки (начиная справа)
RTRIM Удаляет конечные пробелы из строки
SOUNDEX Возвращает четырехсимвольный код для оценки сходства двух строк
SPACE Возвращает строку с указанным количеством пробелов
STR Возвращает число в виде строки
STUFF Удаляет часть строки, а затем вставляет другую часть в строку, начиная с указанной позиции
SUBSTRING Извлекает некоторые символы из строки
TRANSLATE Возвращает строку из первого аргумента после того, как символы, указанные во втором аргументе,
будут переведены в символы, указанные в третьем аргументе.
TRIM Удаляет начальные и конечные пробелы (или другие указанные символы) из строки
UNICODE Возвращает значение Unicode для первого символа входного выражения
UPPER Преобразует строку в верхний регистр

Системы баз SQL, о которых вы должны знать

Система баз — программа, позволяет разработчику работать с базами с помощью пользовательского интерфейса. Системы баз часто имеют готовые шаблоны, конструкторы и конструкторы.

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

Теперь давайте рассмотрим некоторые из наиболее распространенных систем баз SQL. Системы ранжируются наоснове оценок популярности DB-двигателей. Рейтинг учитывает следующие переменные::

База Oracle

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

MySQL

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

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

Сервер Microsoft SQL

SQL Server — специальная система управления базами от Microsoft. База работает на основных версиях операционных систем Windows. Он применяется в потребительском программном обеспечении, а в частности на серверах, работающих под управлением Windows. Он имеет внушительную базу пользователей.

PostgreSQL

Основной конкурент MySQL,PostgreSQL— еще очередная бесплатная система баз с открытым исходным кодом. Он широко употребляется технологическими стартапами ради своей модели свободного лицензирования. Поддерживает основные операционные системы-MacOS, Windows и Linux.

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

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

Поиск системных представленийFind system views

Чтобы найти системные таблицы, представления, функции и процедуры, см. ссылки в разделе Использование реляционных баз данных в документации по SQL.To find the system tables, views, functions, and procedures, see these links, which are in the Using relational databases section of the SQL documentation.

  • Представления системного каталогаSystem catalog Views
  • Представления совместимости системыSystem compatibility views
  • Системные динамические административные представленияSystem dynamic management views
  • Системные функцииSystem functions
  • Системные представления информационной схемыSystem information schema views
  • Системные хранимые процедурыSystem stored procedures
  • Системные таблицыSystem tables

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 Краткий справочник

Язык запросов SQL

База данных — централизованное хранилище данных, обеспечивающее хранение, доступ, первичную обработку и поиск информации.

Базы данных разделяются на:

  • Иерархические
  • Сетевые
  • Реляционные
  • Объектно-ориентированные

SQL (Structured Query Language) — представляет из себя структурированный язык запросов (перевод с английского). Язык ориентирован на работу с реляционными (табличными) базами данных. Язык прост и, по сути, состоит из команд (интерпретируемый), посредством которых можно работать с большими массивами данных (базами данных), удаляя, добавляя, изменяя информацию в них и осуществляя удобный поиск.

Для работы с SQL кодом необходима система управления базами данных (СУБД), которая предоставляет функционал для работы с базами данных.

Система управления базами данных (СУБД) — совокупность языковых и программных средств, предназначенных для создания, ведения и совместного использования БД многими пользователями.

Обычно, для обучения используется СУБД Microsoft Access, но мы будем использовать более распространенную в веб сфере систему — MySQL. Для удобства будет использовать веб-интерфейс или онлайн сервис для построения sql запросов , принцип работы с которыми описан ниже.

Важно: При работе с реляционными или табличными базами данных строки таблицы будем называть записями, а столбцы — полями.

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

Составляющие языка SQL

Язык SQL состоит из следующих составных частей:

  1. язык манипулирования данными (Data Manipulation Language, DML);
  2. язык определения данных (Data Definition Language, DDL);
  3. язык управления данными (Data Control Language, DCL).

1.Язык манипулирования данными состоит из 4 главных команд:

  • выборка данных из БД — SELECT
  • вставка данных в таблицу БД — INSERT
  • обновление (изменение) данных в таблицах БД —
  • удаление данных из БД — DELETE

2.

Язык определения данных используется для создания и изменения структуры базы данных и ее составных частей — таблиц, индексов, представлений (виртуальных таблиц), а также триггеров и сохраненных процедур.

Мы будем рассматривать лишь несколько из основных команд языка. Ими являются:

  • создание базы данных — CREATE DATABASE
  • создание таблицы — CREATE TABLE
  • изменение таблицы (структуры) — ALTER TABLE
  • удаление таблицы — DROP TABLE

3.

Язык управления данными используется для управления правами доступа к данным и выполнением процедур в многопользовательской среде.

Как выучить SQL

Лучшие книги для изучения

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

Вот несколько популярных книг в интересах изучения.

  • SQL Cookbook: Query Solutions and Techniques for Database Developers — охватывает функциональность популярных баз, к примеру, как Oracle, SQL Server и PostgreSQL
  • Head First SQL: Your Brain on SQL-A Learner’s Guide, by Lynn Beighley — учит вас SQL с самых основ
  • Sams Teach Yourself SQL In 10 Minutes, by Ben Forta — охватывает доступным, удобным ради начинающих способов
  • Начало работы с SQL: практический подход для начинающих— краткое и сжатое руководство для начинающих
  • SQL QuickStart Guide: the Simplified Beginner’s Guide To SQL — берет вас от абсолютно ничего не зная о SQL и базах до освоения основных частей программирования баз. Книга построена на расширенных темах,  различия в синтаксисе среди популярных программ баз.

Типы данных SQL

Типы данных SQL разделяются на три группы:
— строковые;
— с плавающей точкой (дробные числа);
— целые числа, дата и время.

  1. Типы данных SQL строковые

    Типы данных SQL Описание
    Строки фиксированной длиной (могут содержать буквы, цифры и специальные символы). Фиксированный размер указан в скобках. Можно записать до 255 символов
    Может хранить не более 255 символов.
    Может хранить не более 255 символов.
    Может хранить не более 65 535 символов.
    Может хранить не более 65 535 символов.
    Может хранить не более 16 777 215 символов.
    Может хранить не более 16 777 215 символов.
    Может хранить не более 4 294 967 295 символов.
    Может хранить не более 4 294 967 295 символов.
    Позволяет вводить список допустимых значений. Можно ввести до 65535 значений в SQL Тип данных ENUM список. Если при вставке значения не будет присутствовать в списке ENUM, то мы получим пустое значение.
    Ввести возможные значения можно в таком формате:
    SQL Тип данных SET напоминает ENUM за исключением того, что SET может содержать до 64 значений.
  2. Типы данных SQL с плавающей точкой (дробные числа) и целые числа

    Типы данных SQL Описание
    Может хранить числа от -128 до 127
    Диапазон от -32 768 до 32 767
    Диапазон от -8 388 608 до 8 388 607
    Диапазон от -2 147 483 648 до 2 147 483 647
    Диапазон от -9 223 372 036 854 775 808 до 9 223 372 036 854 775 807
    Число с плавающей точкой небольшой точности.
    Число с плавающей точкой двойной точности.
    Дробное число, хранящееся в виде строки.
  3. Типы данных SQL — Дата и время

    Типы данных SQL Описание
    Дата в формате ГГГГ-ММ-ДД
    Дата и время в формате
    Дата и время в формате timestamp. Однако при получении значения поля оно отображается не в формате timestamp, а в виде ГГГГ-ММ-ДД ЧЧ:ММ:СС
    Время в формате
    Год в двух значной или в четырехзначном формате.

Пример SQL FULL OUTER JOIN

Следующая инструкция SQL выбирает всех клиентов и все заказы:

SELECT Customers.CustomerName, Orders.OrderID
FROM Customers
FULL OUTER JOIN Orders
ON Customers.CustomerID=Orders.CustomerID
ORDER BY Customers.CustomerName;

Выбор из результирующего набора может выглядеть следующим образом:

CustomerName OrderID
Alfreds Futterkiste  
Ana Trujillo Emparedados y helados 10308
Antonio Moreno Taquería 10365
  10382
  10351

Примечание: Ключевое слово FULL OUTER JOIN возвращает все совпадающие записи из обеих таблиц,
независимо от того, совпадает ли другая таблица или нет.
Таким образом, если есть строки в разделе «Customers», которые не имеют совпадений в разделе «Orders»,
или если есть строки в разделе «Orders», которые не имеют совпадений в разделе «Customers», то эти строки также будут перечислены.