15. SQL is standard language for RDB.
Гэхдээ өөрийн гэсэн онцлогтой SQL бүхий
серверүүд байдаг. Ихэнх DB cерверт стандарт
SQL дээр өөрсдийн серверийн онцлогийг
тусгасан нэмэлтийг хийж өгсөн байдаг.
• T-SQL (Microsoft SQL Server)
• PL/SQL (Oracle DB Server)
• PL/pgSQL (PostgreSQL DB Server)
• Standard SQL + MySQL specific extension
* PL = Procedural Language
16. SQL
SQL-г үүрэг зориулалтаар нь:
• DDL: Data Definition Language
create table, create view, drop table, alter
table, …
• DML: Data Manipulation Language
insert into …, update …. where …, delete from
… where …, select … from where …
17. Дадлагын цаг
• MySQL Server суурилуулах
• MySQL Workbench суурилуулах
• Дасгал ажил хийх
• references:
1. http://www.w3schools.com/sql
2. http://dev.mysql.com/doc/refman/5.6/en/
19. Creating and dropping database
Launch MySQL command line client - unicode
• show databases; or show schemas;
• show tables;
• create database my_db1;
• create schema my_db2;
• drop database my_db1;
• drop schema my_db2;
• create schema my_db;
• connect my_db;
• show tables;
20. Creating table
Доорхыг mysql command line client дээр ажиллуулж
үзье!
• CREATE TABLE customer (
customer_id INT PRIMARY KEY,
email VARCHAR(20),
given_name VARCHAR (20),
surname VARCHAR (20)
);
• desc/describe customer
• Reference mysql data types:
http://dev.mysql.com/doc/refman/5.6/en/data-
types.html
24. Inserting data
• insert into customer (customer_id, email,
given_name) values(11, ‘c1@mail.mn’, ‘c1’);
• insert into customer values(22, ‘foo@bar.mn’,
‘foo’, ‘bar’);
• insert into customer values( 33, null, null,
null); -- error
• Үлдсэн хүснэгтэнд өгөгдөл оруулж үзэх
25. Searching data
• select customer_id, given_name
from customer where customer_id = 1
• Бусад хүснэгтийн хувьд select query бичиж
үзэх
26. Searching data
select
o.order_id, c.given_name, p.product_name, p.description,
d.quantity, d.quantity * p.price as total, o.order_date
From
customer as c, purchase_order o, order_detail d, product p
Where
c.customer_id = o.customer_id and
o.order_id = d.order_id and
d.product_id = p.product_id
order by
o.customer_id asc, p.product_name desc;
27. Summarizing data
select
c.given_name,
sum(d.quantity * p.price) as total
from
customer as c, purchase_order o,
order_detail d, product p
where
c.customer_id = o.customer_id and
o.order_id = d.order_id and
d.product_id = p.product_id
group by
c.given_name
order by
total
33. Creating Stored Procedure
CREATE PROCEDURE create_statistics()
BEGIN
DECLARE EXIT HANDLER FOR SQLEXCEPTION
BEGIN
ROLLBACK;
SELECT 'An error has occurred, operation roll backed.‘
END;
delete from customer_purchasing_statistics;
insert into customer_purchasing_statistics
(select c.customer_id, total(p.price, d.quantity) as total
from customer as c, purchase_order o, order_detail d, product p
where c.customer_id = o.customer_id and
o.order_id = d.order_id and d.product_id = p.product_id
group by c.given_name);
commit;
END