Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Функции и основные возможности языка SQL.

Поиск

Язык SQLсчитают декларативным в отличие от языков на которых пишутся программы – это значит что язык SQL описывает что нужно сделать, а не каким образом. Существует две формы языка SQL:

· Интерактивный режим (используется для создания вопросов пользователя и получения результатов в интерактивном режиме).

· Встроенный режим (состоит из команд SQL встроенных внутрь программ написанных на другом языке программирования.)

Основу языка SQLсоставляют операторы, распределенные между 3 компонентами этого языка:

1. Язык манипулирования данными – предназначен для поддержки БД и включает операторы добавления, изменения, удаления и выборки данных.

2. Язык определения данных – предназначен для создания изменения, удаления таблиц и всей БД в целом.

3. Язык управления данных – предназначен для обеспечения защиты от различного рода повреждений (СУБД гарантирует некоторую защиту автоматически).

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

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

24.10.2013

Выборка данных с использование предложения Select.

Selectсписок_столбцовfromимя_таблицы.

 

 

Select * from товар where prise< 50000;

В конструкции whereмогут применятся следующие операторы:

1. ><= <>

2. IsNULL – выбираются все строки не имеющие значения в указанном поле. select * fromTovarwheresrok_godisnull.

3. Between – позволяет проверить вхождение какого-либо значения в диапазон определяемый граничными значениями. select * fromTovarwherepricebetween 100000 and 1000000.

4. In – проверяет вхождение какого-либо значения в список значений. Список значений указывается в круглых скобках, значения перечисляются через запятую.select * fromTovarwhereprice in(20000, 30000, 50000).

5. Like – соответствие – просматривает строковые значения с целью определения входит ли заданная в операторе likeстрока в символьную строку проверяемого поля. select * fromTovarwherenamelike‘ирис’; в операторе Likeмогут использоваться следующие символы для указания шаблона искомой строки:

А)? – замещает любой ОДИН символ

Б) * - допускает в указанном месте наличие любой последовательности символов.

Сортировка данных в таблице

Selectspisokfromimya_tabl [whereусловие] orderbyимя_столбца [asc|desc]. Если сортировка производится по нескольким столбцам, то их указываем через запятую. Ask – повозрастанию, desc – поубыванию. Select * fromTovarorderbyprice

Предложение groupby(группировать по) позволяет группировать записи в подмножество определяемые значением какого-либо поля и применять уже агрегирующие функции уже не ко всем записям функции, а к записям сформированной группы.

Selectсписок_столбцовfromимя_таблицыgroupbyстолбец_группировка.

Select avg (price) from Tovar group by kod_proiz;

Selectсписок_столбцовfromимя_таблицыgroupbyстолбец_группировкаhavingусловие; (группировка по условию).

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

Select avg (price) from Tovar group by kod_proizv having kod_proizv=1 or kod_proizv=2;

Sportsman
Id
Fio
Pol
vozrASt
Club
sport

Select fio, sport, club from sportsman;

Select * from sportsman where vozrast<18;

Select * from sportsman where pol like ‘ж*’;

Select * from sportsman where club like ‘спартак’;

Select * from sportsman where vozrast between 18 and 25;

Select avg(vozrast) from sportsman where sport like ‘волейбол’;

Select count(fio) from sportsman group by club;

Select * from sportsman where vozrast>25;

Select count(fio) from sportsman group by club having vozrast>25;

Вложенныезапросы

Select * from Tovar where kod_proiz in (select id from proizv where name like’А%’);

Select avg(price) from Tovar where kod_proiz in (select id from proizv where country like ‘Франция’);

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

Select name, price, kol from Tovar where price > 50000

Union

select name, price,kol from Tovar where kod_proizv in (select id from proizv where country like ‘Франция’);

 

Манипулирование данными

К операторам манипулирования данными относятся вставка(insert), обновление (update) и удаление (delete).

Вставка записи.

Insertintoимя_таблицы[(поле1, …, полеn)] values (значение1, …, значение n);

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

Insert into Tovar values (1,’шоколад’, 100, 10500, ‘1 год’, 2);

Insertinto Tovar (id,name, price,kod_proizv values (2,”bhbc”,500,1));

Updateимя_таблицыsetзначения_столбца=значение [whereусловие];

updateприменется ко всем записяи если нету where, если whereприсутствует то updasteприменяется к записям удовлетворяющим условиям.

Update Tovar set kol=kol+100;

Update Tovar set price=price*2 where kod_proizin(select id from proizvwhere country like ‘Франция’);

Delete from имя_таблицы[where условие];

Если условие отсутствует, то из таблицы удаляются все записи.

Delete from Tovar where srok_god is NULL;

Delete from proiz where license like ‘%2012’;

Организация данных в InterBase. Работа с доменами и таблицами.

Типы данных SQL:

- символьные типы данных:

1. char– один символ

2. char(n) –символьная строка фиксированной длины, где n – длина строки. Для хранения таких данных всегда отводится n байт вне зависимости от реальной длины.

3. varchar(n) – символьная строка переменной длины, для хранения данных этого типа отводится число байт соответствующее реальной длине строки.

- целочисленные данные:

1.integer/int – (-2147483647 - +2147483648) для хранения целочисленных данных отводится, как правило, 4 байта с указанным диапазоном значений.

2. smallint – (-32767 - +32768) короткое целое для хранения которого отводится 2 байта.

- вещественные типы данны:

1. float- вещественный тип данных для хранения которого отводится 8 байт.

2. smallfloat – для хранения данных отводится 4 байта.

3. decimal(p)–аналогичен типу данных floatс числом значащих цифр равных р.

4. decimal(p,n)–аналогичен floatр – количество значащих цифр, n – количество цифр после запятой.

- денежные типы данных:

1.money(p,n) – аналогичен типу данных decimal(p,n).Вводится только потому в некоторых СУБД, что для него используют специальные методы форматирования.

- дата и время:

1. date – для хранения даты.

2. time – для хранения времени.

3. interval – для хранения временного интервала.

4. datetime – для хранения моментов времени (год, месяц, число, часы, минуты, секунды, доли секунд).

- двоичные типы данных – позволяет хранить данные любого объема в двоичном коде:

1. binery

2. byte

3. blob.

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

Создание БД при помощи SQL запросов.

Create database имя_БД;

Пример: create database shop;

Drop database имя_БД;

Пример: Drop database shop;

Работастаблицами

Createtableимя_таблицы (имя_полятип_поля [notnull] [primarykey|unique] [referencesимя_связанной_таблицы (имя_поля)], …);

Create table proizvod (id int primary key, name varchar (20) not null, address varchar (30) not null, telvarchar (15) not null, country varchar (20) not null, license datetime);

Create table Tovar (id int primary key, name varchar (20) not null, kolsmallint not null, price int not null, srok_godvarchar(40) not null, kod_proizvint references proizvod (id));

Notnull – если указана эта конструкция, то элементы столбца всегда должны иметь определенное значение (не null)

Unique – значение каждого элемента столбца должно быть уникальным

Primarykey – столбец является первичным ключом

Параметры Unique и Primarykey являются взаимоисключаемыми.

Referencesимя_таблицы (имя_столбца) – данный столбец является внешним ключом, указывается имя таблицы и столбец на который он ссылается.

Удаление таблицы

Droptable<имя_таблицы>;

Пример: droptableTovar – удаление таблицы «товар»

Модификация таблицы

Добавление столбцов в таблицу:

Altertable<имя_таблицы>

ADD (<имя_столбца>тип_данных [NOTNULL] [unique|primarukey] [referencesимя_связанной_таблицы (имя_столбца)], …);

Пример:

Alter table Tovar

Add (sostavvarchar (100) not null, opt_priceint not null);

Удаление столбцов из таблицы:

Altertable<имя_таблицы>

Drop (имя_строки1б имя_строки2, …);

 

Пример:

Alter table Tovar

Drop (sostav, opt_price);

Изменение столбцов в таблице

Altertable<имя_таблицы>

Modify (имя_столбцатип_данных[NOTNULL] [unique|primarukey] [referencesимя_связанной_таблицы (имя_столбца)], …);

Пример:

AltertableTovar

Modify (srok_goddatetime not null);

13.11.2013



Поделиться:


Последнее изменение этой страницы: 2016-07-16; просмотров: 713; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.140.188.23 (0.008 с.)