Робота з SQL – Запити, Різне, Програмування, статті

Вступ:


SQL – Структурований Мова Запитів.
В даному огляді ми розглянемо найбільш часто зустрічаються види SQL-запитів.
Стандарт SQL визначається ANSI (Американським Національним Інститутом Стандартів).
SQL – це мова, орієнтований спеціально на реляційні бази даних.


Поділ SQL:



DDL
(Мова Визначення Даних) – так званий Мова Описи Схеми в ANSI, складається з команд, які створюють об’єкти (таблиці, індекси, перегляди, і так далі) в базі даних.
DML (Мова маніпулювання даними) – це набір команд, які визначають, які значення представлені в таблицях в будь-який момент часу.
DCL (Мова Управління Даними) складається з коштів, які визначають, чи дозволити користувачу виконувати певні дії чи ні. Вони є складовими частинами DDL в ANSI. Не забувайте ці імена. Це не різні мови, а розділи команд SQL згрупованих за їх функцій.

Типи даних:















































































































SQL Server – Типи даних 

Опис


bigint (int 8)


bigint (int 8)


binary (n)


binary (N) або image


Bit


bit


character
(Синонім char)


national character або ntext


character varying (Синонім char varying varchar)


national character varying або ntext


Datetime


datetime


decimal


він же numeric


double precision


double precision


Float


float


Image


image


integer (int 4) (Синонім:int)


integer (int 4)


Money


money


national character (Синонім: national character, nchar)


national character


Ntext


ntext


Numeric (Сінініми: decimal, dec)


numeric


national character varying (Синоніми: national char varying, nvarchar)


National character varying


Real


real


Smalldatetime


datetime


smallint (int 2)


smallint (int 2)


Smallmoney


Money


sql_variant


Більше не поддрежівается


Text


Ntext
Починаючи з SQL Server 2005 не рекомендується для використання.


Timestamp


Чи не поддрежівается


tinyint (int 1)


tinyint (int 1)


Uniqueidentifier


uniqueidentifier


varbinary (n)


varbinary (N) або image


smalldatetime


datetime


smallint (int 2)


smallint (int 2)


smallmoney


Money


sql_variant


Не підтримується


text


Ntext


timestamp


Не підтримується


tinyint (int 1)


tinyint (int 1)


uniqueidentifier


uniqueidentifier


varbinary (n)


varbinary (N) або image

Таблиця типів даних в SQL Server 2000


ЩО ТАКЕ ЗАПИТ?


Запит – команда, яку ви даєте вашій програмі бази даних. Запити це частина язика DML. Всі запити в SQL складаються з одиночної команди. Структура цієї команди оманливе проста, тому що ви повинні розширювати її так, щоб виконати високо складні оцінки та обробки даних.

Команда SELECT:


SELECT “Вибір” – сама часто використовувана команда, за допомогою її йде вибірка даних з таблиці.
Вид запиту із застосуванням SELECT:

SELECT id, user_name, city, birth_day FROM users_base;

Такий запит виведе з таблиці users_base всі значення стовпців зазначених через кому після команди SELECT. Також, можна виводити всі стовпці одним символом, * тобто SELECT * FROM users_base; – такий запит виведе всі дані з таблиці.

Структура команди SELECT:


SELECT {Імена стовпців через кому які необхідно вивести в запиті} FROM {ім’я таблиці в базі даних}
– Це найпростіший вид запиту. Існують додаткові команди для зручності витягнення даних (див. далі “Функції”)

DML команди:


Значення можуть бути поміщені і видалені з полів, трьома командами мови DML (Мова маніпулювання даними):
INSERT (Вставка)
UPDATE (Оновлення, модифікація),
DELETE (Програми)

Команда INSERT:


INSERT INTO users_base (user_name, city, birth_day) VALUES (‘Олександр’, ‘Ростов’, ’20 .06.1991 ‘);

Команда INSERT йде разом з приставкою INTO (in to – в), далі в дужках йдуть імена стовпців, в які ми повинні вставити дані, далі йде команда VALUES (значення) і в дужках по черзі йдуть значення (Обов’язково потрібно дотримуватися черговість значень зі стовпцями, значення повинні йти в тій же черговості, як і стовпці зазначені вами).

Команда UPDATE:


UPDATE users_base SET user_name = ‘Олексій’;

Команда UPDATE оновлює значення в таблиці. Спочатку йде сама команда UPDATE потім ім’я таблиці, після команда SET (встановить) далі ім’я стовпця та його значення в лапках (лапки ставляться в тому випадку якщо значення має string формат, якщо це числове значення і стовпець не прив’язаний до типу даних vchar і будь-яких інших строкових типів, то лапки не мають сенсу.)

Команда DELETE:


DELETE FROM users_base WHERE user_name = ‘Василь’;

Команда DELETE видаляє рядок цілком, визначає рядок за критерієм WHERE (Де). В даному випадку цей запит вилучив би всі рядки, в яких значення стовпця user_name було б Василь. Про критерії WHERE та інших ми поговоримо трохи пізніше.

Критерії, функції, умови і т.п. що допомагає нам в SQL:


WHERE-пропозиція команди SELECT та інших DML команд, яке дозволяє вам встановлювати предикати, умова яких може бути чи вірним чи невірним для будь-якого рядка таблиці. Команда витягує тільки ті рядки з таблиці, для яких таке твердження вірне.
Приклад:
SELECT id, city, birth_day FROM users_base WHERE user_name = ‘Олексій’; – такий запит виведе тільки ті рядки, які будуть відповідати умові WHERE, а саме всі рядки в яких стовпець user_name має значення Олексій.

ORDER BY – умова для сортування обраних рядків. Має 2 критерію ASC і DESC. ASC (сортування від А до Я або від 0 до 9)

DESC (протилежно від ASC).
Приклад:
SELECT id, city, birth_day FROM users_base ORDER BY user_name ASC; – такий запит виведе значення відсортовані за стовпцем user_name від А до Я (AZ; 0-9)

Також цю умову можна використовувати спільно з умовою WHERE.
Приклад:
SELECT id, city, birth_day FROM users_base WHERE user_name = ‘Олексій’ ORDER BY id ASC;

DISTINCT (Відмінний) – аргумент, який забезпечує вас способом усувати подвійні значення з вашої пропозиції SELECT. Тобто якщо у вас є повторні значення в стовпці, припустимо, user_name то DISTINCT виведе вам тільки одне, наприклад у вас в базі є 2 людини на ім’я Олексій то запит з використанням функції DISTINCT виведе вам тільки 1 значення, яке зустріне першим …
Приклад:
SELECT DISTINCT user_name FROM users_base; – такий запит виведе нам значення всіх записів в стовпці user_name але вони не будуть повторюватися, тобто якщо ви мали нескінченне число повторюваних значень, то вони показані не будуть …


AND – бере два Буля (у формі A AND B) як аргументи і оцінює їх по відношенню до істини, чи правильні вони обидва.
Приклад:
SELECT * FROM users_base WHERE city = ‘Ростов’ AND user_name = ‘Олександр’; – виведе всі значення з таблиці де в одному рядку зустрічається назва міста (у даному випадку Ростов та ім’я користувача Олександр.


OR – бере два Буля (у формі A OR B) як аргументи і оцінює на правильність, чи вірний один з них.

SELECT * FROM users_base WHERE city = ‘Ростов’ OR user_name = ‘Олександр’; – виведе всі значення з таблиці де в рядку зустрічається назва міста Ростов або Ім’я користувача Олександр.

NOT – бере одиночний Булев (у формі NOT A) як аргументи і замінює його значення з невірного на вірне або вірне на невірне.
SELECT * FROM users_base WHERE city = ‘Ростов’ OR NOT user_name = ‘Олександр’; – виведе всі значення з таблиці де в одному рядку зустрінеться ім’я міста Ростов або ім’я користувача не буде рівно Олександр.

IN – визначає набір значень в яке дане значення може або не може бути включено.
SELECT * FROM users_base WHERE city IN (‘Владивосток’, ‘Ростов’); – такий запит виведе всі значення з таблиці в яких зустрінуться найменування зазначених міст в стовпці city


Between – схожий на оператор IN. На відміну від визначення по номерах з набору, як це робить IN, BETWEEN визначає діапазон, значення якого повинні зменшуватися що робить предикат вірним.
SELECT * FROM users_base WHERE id BETWEEN 1 AND 10; – виводить всі значення з таблиці які будуть перебувати в діапазоні від 1 до 10 в стовпці id


COUNT – виробляє номери рядків або не NULL значення полів, які вибрав запит.
SELECT COUNT (*) FROM users_base; – виведе кількість рядків у цій таблиці.
SELECT COUNT (DISTINCT user_name) FROM users_base; – виведе кількість рядків з іменами користувачів (не повторюваних)


SUM – виробляє арифметичну суму всіх вибраних значень даного поля.
SELECT SUM (id) FROM users_base; – виведе суму значень всіх рядків стовпця id.


AVG – виробляє усереднення всіх обраних значень даного поля.
SELECT AVG (id) FROM users_base; – виведе середнє значення всіх обраних значень стовпця id

MAX – виробляє найбільше з усіх обраних значень даного поля.

MIN – виробляє найменше з усіх обраних значень даного поля.

Створення таблиць:


CREATE TABLE users_base (id integer, user_name text, city text, birth_day datetime); – виконання такої команди призведе до створення таблиці, по якій я наводив приклади … Тут все просто, пишемо команду CREATE TABLE далі ім’я таблиці, яку хочемо створити, далі в дужках через кому імена стовпців і їх тип даних. Це стандартний вид створення таблиці в SQL. Зараз я наведу приклад створення таблиць в SQL Server 2005:

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N”[dbo].[Price]”) AND type in (N”U”))
BEGIN
CREATE TABLE [dbo].[Price](
[ID] [int] IDENTITY(1,1) NOT NULL,
[NameElement] [text] NOT NULL,
[DateAdded] [datetime] NOT NULL,
[Description] [text] NOT NULL,
PRIMARY KEY CLUSTERED
(
[ID] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
END
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N”[dbo].[Clients]”) AND type in (N”U”))
BEGIN
CREATE TABLE [dbo].[Clients](
[ID] [int] IDENTITY(1,1) NOT NULL,
[FirstName] [text] NULL,
[LastName] [text] NULL,
PRIMARY KEY CLUSTERED
(
[ID] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
END
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N”[dbo].[Orders]”) AND type in (N”U”))
BEGIN
CREATE TABLE [dbo].[Orders](
[ID] [int] IDENTITY(1,1) NOT NULL,
[IDClient] [int] NULL,
[IDPrice] [int] NULL,
PRIMARY KEY CLUSTERED
(
[ID] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
END

Синтаксис в SQL Server 2005 це вже інша тема, я просто хотів показати що я описав основи SQL програмування, до вершин ви зможете дійти самі знаючи основи.

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*