Tải bản đầy đủ (.ppt) (73 trang)

SQL Structured Query Language, 2016

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (809.48 KB, 73 trang )

Structured Query Language
Le Thi Lan
09/11/16


1

Giới thiệu về SQL
Lịch sử
– Ngôn ngữ Sequel trong dự án System-R
– 1986: Chuẩn SQL được ra đời có tên gọi
SQL-86
– 2 chuẩn khác ra đời sau này là SQL-89 và
SQL-92, SQL-99


Chú ý:
• Kiểm tra dạng chuẩn sử dụng
trong hệ QT CSDL
• SQL:
– Không phân biệt chữ hoa chữ
thường
– Một số hệ cần dấu chấm phẩy sau
câu lệnh

• Tham khảo:
– www.learn-sql-tutorial.com
– www.w3schools.com/SQL/sql_syntax
.asp



1

Giới thiệu về SQL
Các thành phần
– Ngôn ngữ định nghĩa dữ liệu (DDL)
– CREATE TABLE
– ALTER TABLE …
– Ngôn ngữ thao tác dữ liệu (DML)
– SELECT
– UPDATE
– DELETE
– Điều khiển giao dịch


2

Định nghĩa dữ liệu
– Sơ đồ đối với mỗi bảng
– Kiểu dữ liệu hay miền giá trị
– Các ràng buộc toàn vẹn
– Tập các chỉ dẫn
– Thông tin an toàn và ủy quyền đối với từng
bảng
– Cấu trúc lưu trữ vật lý


2

Định nghĩa dữ liệu- Kiểu dữ liệu
– Char(n)

– Varchar (n) : Độ dài thay đổi
– Int or Integer (từ -2,147,483,648 đến
2,147,483,647)
– Smallint (từ -32,768 đến 32,767)
– Numeric (p,s)
– Real, double precision
– Float (n)
– Date: YYYY-MM-DD
– Time: HH:MM.SS.MMMM


2

Định nghĩa dữ liệu- Tạo bảng
CREATE TABLE <tên bảng>
(<tên cột> <kiểu dữ liệu> [NOT NULL],
[CONSTRAINT <tên ràng buộc> ràng buộc> …])


2

Định nghĩa dữ liệu- Tạo bảng


2

Định nghĩa dữ liệu- Tạo bảng



2

Định nghĩa dữ liệu- Thêm - Xóa cột


2

Định nghĩa dữ liệu- Xóa bảng


3

Thao tác trên dữ liệu
Các từ khóa
General
Structure

SELECT, ALL / DISTINCT, *,
AS, FROM, WHERE

Comparison

IN, BETWEEN, LIKE "% _"

Grouping

GROUP BY, HAVING,
COUNT( ), SUM( ), AVG( ), MAX( ), MIN( )

Display Order


ORDER BY, ASC / DESC

Logical
Operators

AND, OR, NOT

Output

INTO TABLE / CURSOR
TO FILE [ADDITIVE], TO PRINTER, TO SCREEN

Union

UNION


3

Thao tác trên dữ liệu
field
id
name
dob
sex
class
hcode
dcode
remission

mtest

type
width
numeric
4
character
10
date
8
character
1
character
2
character
1
character
3
logical
1
numeric
2

contents
student id number
name
date of birth
sex: M / F
class
house code: R, Y, B, G

district code
fee remission
Math test score

Phụ thuộc vào cơ sở dữ liệu sử dụng
www.w3schools.com/SQL/sql_datatypes.asp


3

Thao tác trên dữ liệu
• Option 1:
INSERT INTO Table_name
VALUES (value 1, value 2, …, value n)
• Option 2:
INSERT INTO Table_name (column 1,
column 2, …, column n)
VALUES (value 1, value 2, …, value n)


3

Thao tác trên dữ liệu

SELECT ...... FROM ...... WHERE ......
SELECT [ALL / DISTINCT] expr1 [AS col1], expr2 [AS col2] ;
FROM tablename WHERE condition


3


Thao tác trên dữ liệu
SELECT [ALL / DISTINCT] expr1 [AS col1], expr2 [AS col2] ;
FROM tablename WHERE condition

– Truy vấn lựa chọn các dòng trên các bảng có tên
tablename và trả kết quả dưới dạng bảng.
– Biểu thức expr1, expr2 có thể :
• (1) một cột hoặc
• (2) một biểu thức gồm các hàm và các trường.
– col1, col2 là tên các cột trong bảng kết quả


3

Thao tác trên dữ liệu
SELECT [ALL / DISTINCT] expr1 [AS col1], expr2 [AS col2] ;
FROM tablename WHERE condition

– DISTINCT: bỏ hết các bộ lặp trong kết quả trong khi
từ khóa ALL thì dữ lại toàn bộ các bộ lặp.
– condition có thể là :
• (1) so sánh >, <, = hoặc
• (2) so sánh xâu
• Toán từ logic AND, OR, NOT.


3

Ví dụ 1

Liệt kê tất cả sinh viên
SELECT * FROM student

Kết quả

id name
9801 Peter
9802 Mary
9803 Johnny
9804 Wendy
9805 Tobe
:
:

dob
06/04/86
01/10/86
03/16/86
07/09/86
10/17/86
:

sex
M
F
M
F
M
:


class
1A
1A
1A
1B
1B
:

mtest
70
92
91
84
88
:

hcode
R
Y
G
B
R
:

dcode
SSP
HHM
SSP
YMT
YMT

:

remission
.F.
.F.
.T.
.F.
.F.
:


3

Ví dụ 2
Liệt kê tên , mã nhà và lớp của sinh viên lớp 1A
SELECT name, hcode, class FROM student
WHERE class=‘1A’
Class
1A
1A
1A
1B
1B
:

Class


class="1A" 





1A
1A
1A
1B
1B
:


3

Ví dụ 2

Kết quả

name
Peter
Mary
Johnny
Luke
Bobby
Aaron
:

hcode
R
Y
G

G
B
R
:

class
1A
1A
1A
1A
1A
1A
:


3

Ví dụ 3
Liệt kê mã quận của sinh viên có mã nhà là R
(Red house)
SELECT DISTINCT dcode FROM student
WHERE hcode=‘R’

Kết quả

dcode
HHM
KWC
MKK
SSP

TST
YMT


3

Ví dụ 4

Liệt kê tên của các nữ sinh lớp 1B
Liệt kê tên nữ sinh của lớp 1A và 1B
Liệt kê tên nữ sinh của lớp 1 A và nam sinh lớp 1 B

Điều kiện:
1) class = ‘1B’
2) sex = ‘F’
3) Cả 2 điều kiện ( toán tử
logic AND)


3

Ví dụ 4

SELECT name FROM student WHERE class=‘1B’
AND sex=‘F’
Kết quả


3


Ví dụ 5
Liệt kê tên, id của sinh viên không được miễn
phí đăng ký của lớp 1A
SELECT name, id, class FROM student
WHERE class=‘1A’ AND NOT remission

Kết quả

name
Peter
Mary
Luke
Bobby
Aaron
Ron
Gigi
:

id
9801
9802
9810
9811
9812
9813
9824
:

class
1A

1A
1A
1A
1A
1A
1A
:


3

So sánh
expr IN ( value1, value2, value3)
expr BETWEEN value1 AND value2
expr LIKE "%_"


×