Create queue (transact-sql)create queue (transact-sql)
Содержание:
Создание таблиц
Последнее обновление: 26.06.2017
Ключевым объектом в базе данных являются таблицы. Таблицы состоят из строк и столбцов. Столбцы определяют тип информации, которая хранится, а строки содержат
значения для этих столбцов.
В прошлой теме была создана база данных university. Теперь определим в ней первую таблицу. Опять же для создания таблицы в SQL Server Management Studio
можно применить скрипт на языке SQL, либо воспользоваться графическим дизайнером. В данном случае выберем второе.
Для этого раскроем узел базы данных university в SQL Server Management Studio, нажмем на его подузел Tables
правой кнопкой мыши и далее в контексто меню выберем New -> Table…:
После этого нам откроется дизайнер таблицы. В центральной части в таблице необходимо ввести данные о столбцах таблицы. Дизайнер содержит три поля:
-
Column Name: имя столбца
-
Data Type: тип данных столбца. Тип данных определяет, какие данные могут храниться
в этом столбце. Например, если столбец представляет числовой тип, то он может хранить только числа. -
Allow Nulls: может ли отсутствовать значение у столбца, то есть может ли он быть пустым
Допустим, нам надо создать таблицу с данными учащихся в учебном заведении. Для этого в дизайнере таблицы четыре столбца: Id, FirstName, LastName и Year, которые будут представлять
соответственно уникальный идентификатор пользователя, его имя, фамилию и год рождения. У первого и четвертого столбца надо указать тип int (то есть целочисленный), а у столбцов FirstName и LastName — тип nvarchar(50)
(строковый).
Затем в окне Properties, которая содержит свойства таблицы, в поле Name надо ввести имя таблицы — Students, а в
поле Identity ввести Id, то есть тем самым указывая, что столбец Id будет идентификатором.
Имя таблицы должно быть уникальным в рамках базы данных. Как правило, название таблицы отражает название сущности, которая в ней хранится. Например,
мы хотим сохранить студентов, поэтому таблица называется Students (слово студент во множественном числе на английском языке). Существуют
разные мнения по поводу того, стоит использовать название сущности в единственном или множественном числе (Student или Students). В данном случае вопрос наименования таблицы всецело ложится на разработчика базы данных.
И в конце нам надо отметить, что столбец Id будет выполнять роль первичного ключа (primary key).
Первичный ключ уникально идентифицирует каждую строку. В роли первичного ключа может выступать один столбец, а может и несколько.
Для установки первичного ключа нажмем на столбец Id правой кнопкой мыши и в появившемся меню выберем пункт Set Primary Key.
После этого напротив поля Id должен появиться золотой ключик. Этот ключик будет указывать, что столбец Id будет выполнять роль
первичного ключа.
И после сохранения в базе данных university появится таблица Students:
Мы можем заметить, что название таблицы на самом деле начинается с префикса dbo. Этот префикс представляет схему.
Схема определяет контейнер, который хранит объекты. То есть схема логически разграничивает базы данных. Если схема явным образом не указывается при создании объекта, то объект принадлежит
схеме по умолчанию — схеме dbo.
Нажмем правой кнопкой мыши на название таблицы, и нам отобразится контекстное меню с опциями:
С помощью этих опций можно управлять таблицей. Так, опция Delete позволяет удалить таблицу. Опция Design откроет окно дизайнера таблицы,
где мы можем при необходимости внести изменения в ее структуру.
Для добавления начальных данных можно выбрать опцию Edit Top 200 Rows. Она открывает в виде таблицы 200 первых строк и
позволяет их изменить. Но так как у нас таблица только создана, то естественно в ней будет никаких данных. Введем пару строк — пару студентов, указав
необходимые данные для столбцов:
В данном случае я добавил две строки.
Затем опять же по клику на таблицу правой кнопкой мыши мы можем выбрать в контекстном меню пункт Select To 1000 Rows,
и будет запущен скрипт, который отобразит первые 1000 строк из таблицы:
НазадВперед
Создание и удаление таблиц
Последнее обновление: 09.07.2017
Для создания таблиц применяется команда CREATE TABLE. С этой командой можно использовать ряд операторов, которые определяют столбцы таблицы и их атрибуты.
И кроме того, можно использовать ряд операторов, которые определяют свойства таблицы в целом. Одна база данных может содержать до 2 миллиардов таблиц.
Общий синтаксис создания таблицы выглядит следующим образом:
CREATE TABLE название_таблицы (название_столбца1 тип_данных атрибуты_столбца1, название_столбца2 тип_данных атрибуты_столбца2, ................................................ название_столбцаN тип_данных атрибуты_столбцаN, атрибуты_таблицы )
После команды идет название создаваемой таблицы. Имя таблицы выполняет роль ее идентификатора в базе данных,
поэтому оно должно быть уникальным. Имя должно иметь длину не больше 128 символов. Имя может состоять из алфавитно-цифровых символов, а также
символов $ и знака подчеркивания. Причем первым символом должна быть буква или знак подчеркивания.
Имя объекта не может включать пробелы и не может представлять одно из ключевых слов языка Transact-SQL. Если идентификатор все же содержит пробельные символы, то его следует заключать в кавычки.
Если необходимо в качестве имени использовать ключевые слова, то эти слова помещаются в квадратные скобки.
Примеры корректных идентификаторов:
Users tags$345 users_accounts "users accounts"
После имени таблицы в скобках указываются параметры всех столбцов и в самом конце атрибуты, которые относятся ко
всей таблице. Атрибуты столбцов и атрибуты таблицы являются необязательными компонентами, и их можно не указывать.
В самом просто виде команда CREATE TABLE должна содержать как минимум имя таблицы, имена и типы столбцов.
Таблица может содержать от 1 до 1024 столбцов. Каждый столбец должен иметь уникальное в рамках текущей таблицы имя, и ему должен быть назначен тип данных.
Например, определение простейшей таблицы Customers:
CREATE TABLE Customers ( Id INT, Age INT, FirstName NVARCHAR(20), LastName NVARCHAR(20), Email VARCHAR(30), Phone VARCHAR(20) )
Создание таблицы в SQL Management Studio
Создадим простую таблицу на сервере. Для этого откроем SQL Server Management Studio и нажмем правой кнопкой мыши на название сервера. В появившемся
контекстном меню выберем пункт New Query.
Таблица создается в рамках текущей базы данных. Если мы запускаем окно редактора SQL как это сделано выше — из под названия сервера, то база данных по умолчанию не установлена.
И для ее установки необходимо применить команду USE, после которой указывается имя базы данных. Поэтому введем в поле редактора
SQL-команд следующие выражения:
USE usersdb; CREATE TABLE Customers ( Id INT, Age INT, FirstName NVARCHAR(20), LastName NVARCHAR(20), Email VARCHAR(30), Phone VARCHAR(20) );
То есть в базу данных добавляется таблица Customers, которая была рассмотрена ранее.
Также можно открыть редактор из под базы данных, также нажав на нее правой кнопкой мыши и выбрав New Query:
В этом случае в качестве текущей будет рассматриваться та база данных, из под которой был открыт редактор, и дополнительно ее устанавливать с помощью команды USE
не потребуется.
Удаление таблиц
Для удаления таблиц используется команда DROP TABLE, которая имеет следующий синтаксис:
DROP TABLE table1
Например, удаление таблицы Customers:
DROP TABLE Customers
Переименование таблицы
Для переименования таблиц применяется системная хранимая процедура «sp_rename». Например, переименование таблицы Users в UserAccounts в базе данных usersdb:
USE usersdb; EXEC sp_rename 'Users', 'UserAccounts';
НазадВперед
Инструкция CREATE TABLE: базовая форма
Инструкция CREATE TABLE создает новую таблицу базы данных со всеми соответствующими столбцами требуемого типа данных. Далее приводится базовая форма инструкции CREATE TABLE:
Соглашения по синтаксису
Параметр table_name — имя создаваемой базовой таблицы. Максимальное количество таблиц, которое может содержать одна база данных, ограничивается количеством объектов базы данных, число которых не может быть более 2 миллиардов, включая таблицы, представления, хранимые процедуры, триггеры и ограничения. В параметрах col_name1, col_name2, … указываются имена столбцов таблицы, а в параметрах type1, type2, … — типы данных соответствующих столбцов.
Имя объекта базы данных может обычно состоять из четырех частей, в форме:
]]object_name
Здесь object_name — это имя объекта базы данных, schema_name — имя схемы, к которой принадлежит объект, а server_name и db_name — имена сервера и базы данных, к которым принадлежит объект. Имена таблиц, сгруппированные с именем схемы, должны быть однозначными в рамках базы данных. Подобным образом имена столбцов должны быть однозначными в рамках таблицы.
Рассмотрим теперь ограничение, связанное с присутствием или отсутствием значений NULL в столбце. Если для столбца не указано, что значения NULL разрешены (NOT NULL), то данный столбец не может содержать значения NULL, и при попытке вставить такое значение система возвратит сообщение об ошибке.
Как уже упоминалось, объект базы данных (в данном случае таблица) всегда создается в схеме базы данных. Пользователь может создавать таблицы только в такой схеме, для которой у него есть полномочия на выполнение инструкции ALTER. Любой пользователь с ролью sysadmin, db_ddladmin или db_owner может создавать таблицы в любой схеме.
Создатель таблицы не обязательно должен быть ее владельцем. Это означает, что один пользователь может создавать таблицы, которые принадлежат другим пользователям. Подобным образом таблица, создаваемая с помощью инструкции CREATE TABLE, не обязательно должна принадлежать к текущей базе данных, если в префиксе имени таблицы указать другую (существующую) базу данных и имя схемы.
Схема, к которой принадлежит таблица, может иметь два возможных имени по умолчанию. Если таблица указывается без явного имени схемы, то система выполняет поиск имени таблицы в соответствующей схеме по умолчанию. Если имя объекта найти в схеме по умолчанию не удается, то система выполняет поиск в схеме dbo. Имена таблиц всегда следует указывать вместе с именем соответствующей схемы. Это позволит избежать возможных неопределенностей.
В примере ниже показано создание всех таблиц базы данных SampleDb. (База данных SampleDb должна быть установлена в качестве текущей базы данных.)
Кроме типа данных и наличия значения NULL, в спецификации столбца можно указать следующие параметры:
-
предложение DEFAULT;
-
свойство IDENTITY.
Предложение DEFAULT в спецификации столбца указывает значение столбца по умолчанию, т.е. когда в таблицу вставляется новая строка, ячейка этого столбца будет содержать указанное значение, которое останется в ячейке, если в нее не будет введено другое значение. В качестве значения по умолчанию можно использовать константу, например одну из системных функций, таких как, USER, CURRENT_USER, SESSION_USER, SYSTEM_USER, CURRENT_TIMESTAMP и NULL.
Столбец идентификаторов, создаваемый указанием свойства IDENTITY, может иметь только целочисленные значения, которые системой присваиваются обычно неявно. Каждое следующее значение, вставляемое в такой столбец, вычисляется, увеличивая последнее, вставленное в этот столбец, значение. Поэтому определение столбца со свойством IDENTITY содержит (явно или неявно) начальное значение и шаг инкремента (такой столбец еще называют столбцом с автоинкрементом).
Ниже показан пример использования этих инструкций:
Список заданий для базы данных «Компьютерный магазин»
Структура и создание базы данных .
1. Найти номер, скорость и размер жесткого диска для компьютера стоимостью менее 30000. Вывести с псевдонимами: Модель, Процессор, Винчестер
2. Укажите производителя и скорость тех компьютеров, которые имеют жесткий диск объемом не менее 500Гб
3. Выведите номера, типы и цены всех продуктов (любого типа), выпущенных производителем Россия.
Использовать: Innter Join, Union
4. Выведите производителя, выпускающего компьютеры, но не ноутбуки.
Использовать подзапрос
5. Выведите производителей компьютеров с процессором не менее 2000МГц. Вывести: Производитель.
Можно использовать подзапрос (IN)
6. Выведите ноутбуки, скорость которых меньше скорости любого из компьютеров. Вывести: Тип, Номер, Скорость
7. Выведите производителей самых дешевых цветных принтеров
Агрегатные функции в SQL
Для получения итоговых значений и вычисления выражений используются агрегатные функции в sql:
Функция | Описание |
---|---|
(*) | Возвращает количество строк таблицы. |
(имя поля) | Возвращает количество значений в указанном столбце. |
(имя поля) | Возвращает сумму значений в указанном столбце. |
(имя поля) | Возвращает среднее значение в указанном столбце. |
(имя поля) | Возвращает минимальное значение в указанном столбце. |
(имя поля) | Возвращает максимальное значение в указанном столбце. |
Все агрегатные функции возвращают единственное значение.
Функции , и применимы к любым типам данных.
Важно: при работе с агрегатными функциями в SQL используется служебное слово AS
Пример БД «Институт»: Получить значение самой большой зарплаты среди учителей, вывести итог как «макс_зп»
Решение:
SELECT MAX(zarplata) AS макс_зп FROM teachers; |
Результаты:
Рассмотрим более сложный пример использования агрегатных функций в sql.
Пример: БД . Найти имеющееся в наличии количество компьютеров, выпущенных производителем Америка
Решение:
1 2 3 4 5 6 7 8 |
SELECT COUNT( * ) FROM `pc` WHERE `Номер` IN ( SELECT `Номер` FROM product WHERE Производитель = "Америка" ) |
SQL As 2_3. . Вывести общее количество продуктов, странами-производителями которых является Россия
SQL As 2_4. . Вывести среднюю цену на ноутбуки
Agr func 2_2. . Вывести минимальную и максимальную зарплату учителей
Agr func 2_3. . Выберите название курса, уроки по которому не проводились и не запланированы проводиться. Дополните код:
1 2 3 4 5 6 |
SELECT `title` FROM `courses` WHERE `title` NOT IN ( ... ) |
Agr func 2_4. . Измените предыдущее задание: Посчитайте количество тех курсов, уроки по которым не проводились и не запланированы проводиться. Выводите результат с именем «нет_уроков»
Задание 2_3. . Вывести год рождения самого младшего студента, назвать поле «Младший»
Задание 2_4. . Посчитать количество всех студентов группы 101. Назвать поле «Группа101»
Предложение GROUP BY в SQL
Оператор в sql обычно используется совместно с агрегатными функциями.
Агрегатные функции выполняются над всеми результирующими строками запроса. Если запрос содержит оператор , каждый набор строк, заданных в предложении GROUP BY, составляет группу, и агрегатные функции выполняются для каждой группы отдельно.
Рассмотрим пример с таблицей :
Пример:
- Выдавать количество проведенных уроков учителем Иванов из таблицы (порядковый номер Иванова ()).
SELECT COUNT(tid) AS Иванов FROM lessons WHERE tid=1 |
Результат:
Выдавать количество проведенных уроков учителем Иванов по разным курсам из таблицы
SELECT course, COUNT( tid ) AS Иванов FROM lessons WHERE tid =1 GROUP BY course |
Результат:
Важно: Таким образом, в результате использования все выходные строки запроса разделяются на группы, характеризуемые одинаковыми комбинациями значений в этих столбцах (т.е. агрегатные функции выполняются для каждой группы отдельно)
При этом стоит учесть, что при группировке по полю, содержащему -значения, все такие записи попадут в одну группу.
SQL group by 2_5. . Для различных типов принтеров определить их среднюю стоимость и количество (т.е. отдельно по лазерным, струйным и матричным). Использовать агрегатные функции . Результат должен выглядеть так:
SQL group by 2_5. . Посчитать количество уроков, проведенных одним и тем же учителем. Результат должен выглядеть так:
Задание 2_5. . Вывести количество человек в каждой группе и количество человек на каждом курсе из таблицы . Назвать вычисляемые поля «кол_во_в_гр» и «кол_во_на_курс»
Оператор Having SQL
Предложение в SQL необходимо для проверки значений, которые получены с помощью агрегатной функции после группировки (после использования ). Такая проверка не может содержаться в предложении WHERE.
Пример: БД Компьютерный магазин. Посчитать среднюю цену компьютеров с одинаковой скоростью процессора. Выполнить подсчет только для тех групп, средняя цена которых меньше 30000.
Решение:
SELECT AVG(`Цена`) ,`Скорость` FROM `pc` GROUP BY `Скорость` HAVING AVG(`Цена`) <30000 |
Результат:
Важно: В операторе нельзя использовать псевдоним (например, сред_цена), используемый для именования значений агрегатной функции.
Having SQL 2_6
Для различных типов принтеров определить их среднюю стоимость (т.е. отдельно по лазерным, струйным и матричным). Вести подсчет только если средняя стоимость
Having SQL 2_6.
Посчитать количество уроков, проведенных одним и тем же учителем. Выдавать значение только для тех учителей, у которых уроков больше двух.
Задание 2_6. . Получить количество учеников каждой группы при условии, что курс не меньше 3-го
Далее
Мультяшная картинка из фото онлайн
Обработка JPEG фотографий онлайн.
Главное нужно указать фото или картинку на вашем компьютере или телефоне, нажать кнопку OK внизу, подождать пару секунд и скачать готовый результат. Все остальные настройки уже выставлены по умолчанию.
Если лица будут получаться слишком жёлтыми или красными, то можно попробовать понизить насыщенность цветов в дополнительных настройках, указав значение около нуля, а в некототорых случаях даже меньше. Обновлённая версия этого эффекта, при всех настройках по умолчанию, даёт такой же результат, как и предыдущая.
Исходное изображение никак не изменяется. Вам будет предоставлена другая обработанная картинка.
3) Дополнительные настройки цветности
Насыщенность цветов
4) Формат изображения на выходе
Обработка обычно длится 5-30 секунд.
SQL References
SQL Keywords
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 Functions
String Functions
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
Numeric Functions
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
Date Functions
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
Advanced Functions
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 Functions
String Functions
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
Numeric Functions
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
Date Functions
CURRENT_TIMESTAMP
DATEADD
DATEDIFF
DATEFROMPARTS
DATENAME
DATEPART
DAY
GETDATE
GETUTCDATE
ISDATE
MONTH
SYSDATETIME
YEAR
Advanced Functions
CAST
COALESCE
CONVERT
CURRENT_USER
IIF
ISNULL
ISNUMERIC
NULLIF
SESSION_USER
SESSIONPROPERTY
SYSTEM_USER
USER_NAME
MS Access Functions
String Functions
Asc
Chr
Concat with &
CurDir
Format
InStr
InstrRev
LCase
Left
Len
LTrim
Mid
Replace
Right
RTrim
Space
Split
Str
StrComp
StrConv
StrReverse
Trim
UCase
Numeric Functions
Abs
Atn
Avg
Cos
Count
Exp
Fix
Format
Int
Max
Min
Randomize
Rnd
Round
Sgn
Sqr
Sum
Val
Date Functions
Date
DateAdd
DateDiff
DatePart
DateSerial
DateValue
Day
Format
Hour
Minute
Month
MonthName
Now
Second
Time
TimeSerial
TimeValue
Weekday
WeekdayName
Year
Other Functions
CurrentUser
Environ
IsDate
IsNull
IsNumeric
SQL Quick Ref
SQL References
SQL Keywords
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 Functions
String Functions
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
Numeric Functions
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
Date Functions
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
Advanced Functions
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 Functions
String Functions
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
Numeric Functions
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
Date Functions
CURRENT_TIMESTAMP
DATEADD
DATEDIFF
DATEFROMPARTS
DATENAME
DATEPART
DAY
GETDATE
GETUTCDATE
ISDATE
MONTH
SYSDATETIME
YEAR
Advanced Functions
CAST
COALESCE
CONVERT
CURRENT_USER
IIF
ISNULL
ISNUMERIC
NULLIF
SESSION_USER
SESSIONPROPERTY
SYSTEM_USER
USER_NAME
MS Access Functions
String Functions
Asc
Chr
Concat with &
CurDir
Format
InStr
InstrRev
LCase
Left
Len
LTrim
Mid
Replace
Right
RTrim
Space
Split
Str
StrComp
StrConv
StrReverse
Trim
UCase
Numeric Functions
Abs
Atn
Avg
Cos
Count
Exp
Fix
Format
Int
Max
Min
Randomize
Rnd
Round
Sgn
Sqr
Sum
Val
Date Functions
Date
DateAdd
DateDiff
DatePart
DateSerial
DateValue
Day
Format
Hour
Minute
Month
MonthName
Now
Second
Time
TimeSerial
TimeValue
Weekday
WeekdayName
Year
Other Functions
CurrentUser
Environ
IsDate
IsNull
IsNumeric
SQL Quick Ref
Создание таблицы в базе данных с помощью PHP (PDO)
<?php
$server = «localhost»;
$user = «root»;
$password = «MySafePass4!»;
$db_name = «Bookstore»;
try {
// Открываем соединение
$db = new PDO(«mysql:host=$server;dbname=$db_name», $user, $password);
// Создание исключения при ошибке
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// Запрос на создание таблицы
$sql = «CREATE TABLE books(«.
«id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,».
«title VARCHAR(50) NOT NULL,».
«author VARCHAR(50) NOT NULL,».
«genre SET(‘Драма’,’Роман’,’Повесть’,’Рассказ’,’Поэма’),».
«price DECIMAL(15,2),».
«edition TINYINT UNSIGNED DEFAULT ‘1’ NOT NULL».
«isbn VARCHAR(50),».
«page_num SMALLINT UNSIGNED,».
«publish_year SMALLINT(4),».
«creation_date TIMESTAMP);»;
// Выполняем запрос
$db->exec($sql);
echo «Таблица успешно создана!»;
}
catch(PDOException $e) {
echo «Ошибка при создании таблицы в базе данных: » . $e->getMessage();
}
// Закрываем соединение
$db = null;
?>
1 |
<?php $server=»localhost»; $user=»root»; $password=»MySafePass4!»; $db_name=»Bookstore»; try{ // Открываем соединение $db=newPDO(«mysql:host=$server;dbname=$db_name»,$user,$password); // Создание исключения при ошибке $db->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION); // Запрос на создание таблицы $sql=»CREATE TABLE books(«. «id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,». «title VARCHAR(50) NOT NULL,». «author VARCHAR(50) NOT NULL,». «genre SET(‘Драма’,’Роман’,’Повесть’,’Рассказ’,’Поэма’),». «price DECIMAL(15,2),». «edition TINYINT UNSIGNED DEFAULT ‘1’ NOT NULL». «isbn VARCHAR(50),». «page_num SMALLINT UNSIGNED,». «publish_year SMALLINT(4),». «creation_date TIMESTAMP);»; // Выполняем запрос $db->exec($sql); echo»Таблица успешно создана!»; } catch(PDOException$e){ echo»Ошибка при создании таблицы в базе данных: «.$e->getMessage(); } // Закрываем соединение $db=null; ?> |
CREATE INDEX
The command is used to
create indexes in tables (allows duplicate values).
Indexes are used to retrieve data from the database very fast. The users cannot see the indexes, they are just used to speed up searches/queries.
The following SQL creates an index named «idx_lastname» on the «LastName» column in the «Persons» table:
CREATE INDEX idx_lastname
ON Persons (LastName);
If you want to create an index on a combination of columns, you can list the column names within the parentheses, separated by commas:
CREATE INDEX idx_pname
ON Persons (LastName, FirstName);
Note: The syntax for creating indexes varies among different databases. Therefore: Check the syntax for creating indexes in your database.
Note: Updating a table with indexes takes more time than updating a table without (because the indexes also need an update).
So, only create indexes on columns that will be frequently searched against.