Разделы презентаций


Язык запросов SQL презентация, доклад

Содержание

Шевченко А. В.Язык запросов SQLЯзык запросов SQL (Structured Query Language) был разработан корпорацией IBM в рамках исследовательского проекта по созданию реляционной СУБД System R (сначала язык назывался SEQUEL). После того как

Слайды и текст этой презентации

Слайд 1Тема 5. Язык запросов SQL
Шевченко А. В.

Тема 5.  Язык запросов SQLШевченко А. В.

Слайд 2Шевченко А. В.
Язык запросов SQL
Язык запросов SQL (Structured Query Language)

был разработан корпорацией IBM в рамках
исследовательского проекта по созданию

реляционной СУБД System R (сначала язык назывался
SEQUEL). После того как SQL поддержали в своих продуктах фирмы Oracle Corporation,
Informix Corp. и Ingres Corp., он стал доминирующим языком для СУБД больших и средних
вычислительных систем. Этот статус был подтвержден серией стандартов Американского
национального института стандартов ANSI и Международной организации по стандартизации
ISO (SQL-86, SQL-89 и SQL-92). Последний действующий стандарт опубликован как
ANSI X3.135-1992 и ISO/IEC 9075:1992

Язык описания данных
DDL

Язык манипулирования данными
DML

Управление
транзакциями

Вспомогательные
операторы

SQL

Шевченко А. В.Язык запросов SQLЯзык запросов SQL (Structured Query Language) был разработан корпорацией IBM в рамках исследовательского

Слайд 3Шевченко А. В.
Язык запросов SQL
create table name (column, …)

name –

имя создаваемой таблицы; column – спецификация атрибута таблицы.
Спецификация каждого

атрибута имеет следующий вид:
name type [nullability] [default] [constraints],
где name – имя атрибута; type – тип данных; nullability – допустимость неопределенных
значений; default – значение по умолчанию; constraints – ограничения целостности.
Допустимость задания неопределенных значений атрибута таблицы задается ключевыми
словами with null или not null:
with null – атрибут может иметь неопределенное значение. Это является умолчанием для
всех типов данных;
not null – атрибут не может иметь неопределенное значение null.
Значение по умолчанию задается ключевыми словами with default или not default:
not default – значение атрибута при вводе обязательно;
with default – если значение не задано, то для числовых типов данных и денежной единицы
значение устанавливается равным нулю, а для символьных типов и даты – равным пустой
строке;
default value – если значение атрибута при вводе не задано, то оно устанавливается равным
value.
Шевченко А. В.Язык запросов SQLcreate table name (column, …)name – имя создаваемой таблицы; column – спецификация атрибута

Слайд 4Шевченко А. В.
Пример создания таблицы
* create table product (
* number

integer2 primary key not null,
* name char(20) unique

not null,
* status integer1 check (status in(1, 2, 3)) not null default 1,
* price float4 check (price > 0) with null default null,
* updated date not null default 'today',
* comment char(460) not null with default)\g
continue
*
Шевченко А. В.Пример создания таблицы* create table product (* number integer2 primary key not null, * name

Слайд 5Шевченко А. В.
Получение информации о таблице
* help table product\g

Name:

product
Owner:

ingres
Created: 25-feb-2010 11:48:28
Location: ii_database
Type: user table
Version: OI2.0
Page size: 2048
Cache priority: 0
Alter table version: 0
Alter table totwidth: 500
Row width: 500
Number of rows: 0
Storage structure: heap
Compression: none
Duplicate Rows: allowed
Number of pages: 3
Overflow data pages: 0
Journaling: enabled after the next checkpoint
Base table for view: no
Permissions: none
Integrities: yes
Optimizer statistics: none
Шевченко А. В.Получение информации о таблице* help table product\gName:

Слайд 6Шевченко А. В.
Получение информации о таблице (продолжение)
Column Information:

Key
Column Name Type Length Nulls Defaults Seq
number integer 2 no no
name char 20 no no
status integer 1 no value
price float 4 yes null
updated date no value
comment char 460 no yes

Secondary indexes:
Index Name Structure Keyed On
"$produ_u000000ee00000000" btree number
"$produ_u000000f000000000" btree name

continue
*
Шевченко А. В.Получение информации о таблице (продолжение)Column Information:

Слайд 7Шевченко А. В.
Ввод данных
insert into table [(column, … )] [values(expr,

… )] | [subselect]

В данном операторе можно задавать либо список

значений атрибутов expr, либо
запрос subselect. Используя список значений атрибутов, можно вставить только одну
запись за одно выполнение оператора insert. Если задан запрос subselect, то оператор
insert вставляет все записи, полученные в результате выполнения запроса.
Шевченко А. В.Ввод данныхinsert into table [(column, … )] [values(expr, … )] | [subselect]В данном операторе можно

Слайд 8Шевченко А. В.
Пример ввода данных
* insert into product(number, name) values(10,

'Стойка 600х200');
* insert into product(number, name) values(60, 'Подставка');
* insert into

product(number, name) values(30, 'Короб световой');
* insert into product(number, name) values(80, 'Стойка 1200х800');
* insert into product(number, name) values(140, 'Держатель малый');
* insert into product(number, name) values(50, 'Держатель средний');
* insert into product(number, name) values(90, 'Держатель большой');
* insert into product(number, name) values(130, 'Стойка 3 полки');
* insert into product(number, name) values(70, 'Полка с подсветкой')
* \g
(1 row)
(1 row)
(1 row)
(1 row)
(1 row)
(1 row)
(1 row)
(1 row)
(1 row)
continue
*
Шевченко А. В.Пример ввода данных* insert into product(number, name) values(10, 'Стойка 600х200');* insert into product(number, name) values(60,

Слайд 9Шевченко А. В.
Результат ввода данных
* select number, name, status, price,

updated from product\g
+------+--------------------+------+-----------+--------------------+
|number|name

|status|price |created |
+------+--------------------+------+-----------+--------------------+
| 10|Стойка 600х200 | 1| |27.02.2010 10:41:25 |
| 60|Подставка | 1| |25.02.2010 10:41:25 |
| 30|Короб световой | 1| |25.02.2010 10:41:25 |
| 80|Стойка 1200х800 | 1| |25.02.2010 10:41:25 |
| 140|Держатель малый | 1| |25.02.2010 10:41:25 |
| 50|Держатель средний | 1| |25.02.2010 10:41:25 |
| 90|Держатель большой | 1| |25.02.2010 10:41:25 |
| 130|Стеллаж с подсветкой| 1| |25.02.2010 10:41:25 |
| 70|Полка с подсветкой | 1| |25.02.2010 10:41:25 |
+------+--------------------+------+-----------+--------------------+
(9 rows)
continue
*
Шевченко А. В.Результат ввода данных* select number, name, status, price, updated from product\g+------+--------------------+------+-----------+--------------------+|number|name

Слайд 10Шевченко А. В.
Контроль целостности данных
* insert into product (number, name)

values (70, 'Стеллаж малый')\g
E_US1194 Duplicate key on INSERT detected.

(Fri Feb 25 15:59:44 2010)
continue
* insert into product (number, name) values (157, 'Подставка')\g
E_US1194 Duplicate key on INSERT detected.
(Fri Feb 25 16:00:18 2010)
continue
* insert into product values (40, 'Столик малый', 4, 700, '', '')\g
E_US1905 Check integrity constraint '"$produ_c0000010400000000"'
on table '"product"' was violated.
(Fri Feb 25 16:10:54 2010)
continue
* insert into product values (40, 'Столик малый', 1, 0, '', '')\g
E_US1905 Check integrity constraint '"$produ_c0000010600000000"'
on table '"product"' was violated.
(Fri Feb 25 16:11:03 2010)
continue
*
Шевченко А. В.Контроль целостности данных* insert into product (number, name) values (70, 'Стеллаж малый')\gE_US1194 Duplicate key on

Слайд 11Шевченко А. В.
Управление транзакциями
Под транзакцией понимается последовательность операторов SQL, которая


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

Оператор commit

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

Оператор rollback отменяет все изменения в базе данных, произведенные с момента
начала транзакции. Это позволяет управлять транзакционной целостностью базы
данных, когда неполное выполнение последовательности операторов может привести
к возникновению противоречивости данных. При выполнении операторов SQL можно
проверить наличие ошибки и в этом случае выполнить “откат” транзакции с помощью
оператора rollback, как показано в приведенном ниже примере.

Оператор savepoint позволяет отметить промежуточные точки транзакции. В этом
случае откат транзакции возможен до любой из промежуточных точек.
Шевченко А. В.Управление транзакциямиПод транзакцией понимается последовательность операторов SQL, которая заканчивается операторами commit или rollback, используемыми для

Слайд 12Шевченко А. В.
Пример управления транзакциями
* insert into product(number, name) values(99,

'Экран навесной')\g
(1 row)
continue
* select number, name from product where number

= 99\g
+------+--------------------+
|number|name |
+------+--------------------+
| 99|Экран навесной |
+------+--------------------+
(1 row)
continue
* rollback\g
сontinue
* select number, name from product where number = 99\g
+------+--------------------+
|number|name |
+------+--------------------+
+------+--------------------+
(0 rows)
continue
*
Шевченко А. В.Пример управления транзакциями* insert into product(number, name) values(99, 'Экран навесной')\g(1 row)continue* select number, name from

Слайд 13Шевченко А. В.
Пример управления транзакциями (продолжение)
* insert into product(number, name)

values(99, 'Экран навесной')\g
(1 row)
continue
* savepoint p1\g
continue
* insert into product(number, name)

values(100, 'Экран напольный')\g
(1 row)
* rollback to p1\g
сontinue
* select number, name from product where number in (99, 100)\g
+------+--------------------+
|number|name |
+------+--------------------+
| 99|Экран навесной |
+------+--------------------+
(1 rows)
continue
*
Шевченко А. В.Пример управления транзакциями (продолжение)* insert into product(number, name) values(99, 'Экран навесной')\g(1 row)continue* savepoint p1\gcontinue* insert

Слайд 14Шевченко А. В.
Изменение структуры хранения
modify name to type [unique] on

column, … [with]

name – имя таблицы, type – тип структуры

хранения (heap, hash, isam или btree),
with состоит из ключевого слова with и следующих за ним параметров: fillfactor = n
и др.
Опция on задает первичный ключ таблицы, который может состоять из одного или
нескольких атрибутов column. Если значения ключа должны быть уникальными, то
необходимо указать опцию unique.
Параметр fillfactor задает коэффициент заполнения страницы в процентах.
По умолчанию параметр fillfactor равен для hash 50 %, для isam – 80 %,
для btree – 80 %.
Шевченко А. В.Изменение структуры храненияmodify name to type [unique] on column, … [with]name – имя таблицы, type

Слайд 15Шевченко А. В.
Пример таблицы в структуре HEAP
* select number, name,

tid, tid/512 as page from product\g
+------+--------------------+-------------+-------------+
|number|name

|tid |page |
+------+--------------------+-------------+-------------+
| 10|Стойка 600х200 | 0| 0|
| 60|Подставка | 1| 0|
| 30|Короб световой | 2| 0|
| 80|Стойка 1200х800 | 3| 0|
| 140|Держатель малый | 512| 1|
| 50|Держатель средний | 513| 1|
| 90|Держатель большой | 514| 1|
| 130|Стеллаж с подсветкой| 515| 1|
| 70|Полка с подсветкой | 1024| 2|
+------+--------------------+-------------+-------------+
(9 rows)
continue
*
Шевченко А. В.Пример таблицы в структуре HEAP* select number, name, tid, tid/512 as page from product\g+------+--------------------+-------------+-------------+|number|name

Слайд 16Шевченко А. В.
Пример таблицы в структуре ISAM
* modify product to

isam unique on number with fillfactor = 100\g
(9 rows)
continue
* select

number, name, tid, tid/512 as page from product\g
+------+--------------------+-------------+-------------+
|number|name |tid |page |
+------+--------------------+-------------+-------------+
| 10|Стойка 600х200 | 0| 0|
| 30|Короб световой | 1| 0|
| 50|Держатель средний | 2| 0|
| 60|Подставка | 3| 0|
| 70|Полка с подсветкой | 512| 1|
| 80|Стойка 1200х800 | 513| 1|
| 90|Держатель большой | 514| 1|
| 130|Стеллаж с подсветкой| 515| 1|
| 140|Держатель малый | 1024| 2|
+------+--------------------+-------------+-------------+
(9 rows)
continue
*
Шевченко А. В.Пример таблицы в структуре ISAM* modify product to isam unique on number with fillfactor =

Слайд 17Шевченко А. В.
Пример таблицы в структуре ISAM, fillfactor 50%
* modify

product to isam unique on number with fillfactor = 50\g
(9

rows)
continue
* select number, name, tid, tid/512 as page from product\g
+------+--------------------+-------------+-------------+
|number|name |tid |page |
+------+--------------------+-------------+-------------+
| 10|Стойка 600х200 | 0| 0|
| 30|Короб световой | 1| 0|
| 50|Держатель средний | 512| 1|
| 60|Подставка | 513| 1|
| 70|Полка с подсветкой | 1024| 2|
| 80|Стойка 1200х800 | 1025| 2|
| 90|Держатель большой | 1536| 3|
| 130|Стеллаж с подсветкой| 1537| 3|
| 140|Держатель малый | 2048| 4|
+------+--------------------+-------------+-------------+
(9 rows)
continue
*
Шевченко А. В.Пример таблицы в структуре ISAM, fillfactor 50%* modify product to isam unique on number with

Слайд 18Шевченко А. В.
Пример таблицы в структуре HASH
* modify product to

hash unique on number with fillfactor = 100\g
(9 rows)
continue
* select

number, name, tid, tid/512 as page from product\g
+------+--------------------+-------------+-------------+
|number|name |tid |page |
+------+--------------------+-------------+-------------+
| 50|Держатель средний | 512| 1|
| 70|Полка с подсветкой | 1536| 3|
| 80|Стойка 1200х800 | 2048| 4|
| 140|Держатель малый | 2560| 5|
| 10|Стойка 600х200 | 5120| 10|
| 130|Стеллаж с подсветкой| 5632| 11|
| 90|Держатель большой | 7168| 14|
| 30|Короб световой | 7680| 15|
| 60|Подставка | 7681| 15|
+------+--------------------+-------------+-------------+
(9 rows)
continue
*
Шевченко А. В.Пример таблицы в структуре HASH* modify product to hash unique on number with fillfactor =

Слайд 19Шевченко А. В.
Пример таблицы в структуре BTREE
* modify product to

btree unique on number with fillfactor = 100\g
(9 rows)
continue
* select

number, name, tid, tid/512 as page from product\g
+------+--------------------+-------------+-------------+
|number|name |tid |page |
+------+--------------------+-------------+-------------+
| 10|Стойка 600х200 | 1024| 2|
| 30|Короб световой | 1025| 2|
| 50|Держатель средний | 1026| 2|
| 60|Подставка | 1027| 2|
| 70|Полка с подсветкой | 1536| 3|
| 80|Стойка 1200х800 | 1537| 3|
| 90|Держатель большой | 1538| 3|
| 130|Стеллаж с подсветкой| 1539| 3|
| 140|Держатель малый | 2048| 4|
+------+--------------------+-------------+-------------+
(9 rows)
continue
*
Шевченко А. В.Пример таблицы в структуре BTREE* modify product to btree unique on number with fillfactor =

Слайд 20Шевченко А. В.
Создание вторичных индексов
сreate index name on table (column,

…) [with structure = type]

name – имя индекса; table

– имя таблицы, для которой создается индекс;
column – один или несколько атрибутов, по которым строится индекс;
type – тип структуры хранения для индекса (isam, hash или btree,
по умолчанию – isam).
Шевченко А. В.Создание вторичных индексовсreate index name on table (column, …) [with structure = type] name –

Слайд 21Шевченко А. В.
Пример создания вторичного индекса
* create index product_name on

product(name)\g
(9 rows)
continue
* select * from product_name\g
+--------------------+-------------+
|name

|tidp |
+--------------------+-------------+
|Держатель большой | 1538|
|Держатель малый | 2048|
|Держатель средний | 1026|
|Короб световой | 1025|
|Подставка | 1027|
|Полка с подсветкой | 1536|
|Стеллаж с подсветкой| 1539|
|Стойка 1200х800 | 1537|
|Стойка 600х200 | 1024|
+--------------------+-------------+
(9 rows)
continue
*
Шевченко А. В.Пример создания вторичного индекса* create index product_name on product(name)\g(9 rows)continue* select * from product_name\g+--------------------+-------------+|name

Слайд 22Шевченко А. В.
Изменение данных
update table [from table, … ] set

column = expr, … [where condition]

Оператор update изменяет значения заданных

в set атрибутов таблицы table для всех
записей, которые соответствуют условию поиска condition. Выражение expr в опции
set может быть сконструировано с использованием констант и значений атрибутов из
обновляемой таблицы или таблиц, указанных в опции from.
Шевченко А. В.Изменение данныхupdate table [from table, … ] set column = expr, … [where condition]Оператор update

Слайд 23Шевченко А. В.
Пример изменения данных
* update product set status =

2, price = 120, updated = 'now'
* where number =

60\g
(1 row)
continue
* select number, name, status, price, updated from product\g
+------+--------------------+------+-----------+--------------------+
|number|name |status|price |updated |
+------+--------------------+------+-----------+--------------------+
| 10|Стойка 600х200 | 1| |25.02.2010 10:41:25 |
| 30|Короб световой | 1| |25.02.2010 10:41:25 |
| 50|Держатель средний | 1| |25.02.2010 10:41:25 |
| 60|Подставка | 2| 120.000|27.02.2010 11:36:47 |
| 70|Полка с подсветкой | 1| |25.02.2010 10:41:25 |
| 80|Стойка 1200х800 | 1| |25.02.2010 10:41:25 |
| 90|Держатель большой | 1| |25.02.2010 10:41:25 |
| 130|Стеллаж с подсветкой| 1| |25.02.2010 10:41:25 |
| 140|Держатель малый | 1| |25.02.2010 10:41:25 |
+------+--------------------+------+-----------+--------------------+
(9 rows)
continue
*
Шевченко А. В.Пример изменения данных* update product set status = 2, price = 120, updated = 'now'*

Слайд 24Шевченко А. В.
Удаление данных
delete from table [where condition]

Оператор delete удаляет

из таблицы table все записи, которые соответствуют
заданному условию поиска

condition.

Шевченко А. В.Удаление данныхdelete from table [where condition]Оператор delete удаляет из таблицы table все записи, которые соответствуют

Слайд 25Шевченко А. В.
Пример удаления данных
* delete from product where number

= 90\g
(1 row)
continue
* select number, name, status, price, updated from

product\g
+------+--------------------+------+-----------+--------------------+
|number|name |status|price |updated |
+------+--------------------+------+-----------+--------------------+
| 10|Стойка 600х200 | 2| 1500.000|27.02.2010 12:08:26 |
| 30|Короб световой | 1| |25.02.2010 10:41:25 |
| 50|Держатель средний | 1| |25.02.2010 10:41:25 |
| 60|Подставка | 2| 120.000|27.02.2010 11:36:47 |
| 70|Полка с подсветкой | 1| |25.02.2010 10:41:25 |
| 80|Стойка 1200х800 | 1| |25.02.2010 10:41:25 |
| 130|Стойка 3 полки | 2| 2300.000|27.02.2010 12:08:26 |
| 140|Держатель малый | 3| 200.000|27.02.2010 12:08:26 |
+------+--------------------+------+-----------+--------------------+
(8 rows)
continue
*
Шевченко А. В.Пример удаления данных* delete from product where number = 90\g(1 row)continue* select number, name, status,

Обратная связь

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

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика