Tải bản đầy đủ (.pdf) (81 trang)

Bài giảng môn học Hệ cơ sở dữ liệu: Chương 4 - Nguyễn Như Hoa

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 (2.25 MB, 81 trang )

Chương 4

Ngôn ngữ SQL
Giáo trình & Tài liệu tham khảo:
1. Ramez Elmasri, Shamkant B. Navathe, 2011. Fundamentals of Database
systems, 6th edition, Addison-Wesley.
2. Giáo trình Cơ sở dữ liệu , Trần Đắc Phiến, ĐH Công nghiệp TPHCM
3. Bộ slide bài giảng của Nguyễn Minh Thư, Khoa CNTT, ĐH KHTN TPHCM
4. Bộ slide bài giảng của Trần Thị Kim Chi, Khoa CNTT, ĐH Công nghiệp TPHCM

Gv. Nguyễn Như Hoa
1


Nội dung





Giới thiệu
Định nghĩa dữ liệu
Truy vấn dữ liệu
Cập nhật dữ liệu

2


Giới thiệu
• SQL (Structured Query Language)








Ngôn ngữ cấp cao
Ngôn ngữ phi thủ tục
Được sử dụng để thao tác với SQL Database
Được phát triển bởi IBM (1970s)
Được gọi là SEQUEL (Structured English Query Language)
Được ANSI công nhận và phát triển thành chuẩn với các
phiên bản





SQL-86
SQL-92
SQL-99
SQL-2016

3


Giới thiệu
• SQL có nhiều nhóm lệnh









Định nghĩa dữ liệu (DDL)
Thao tác dữ liệu (DML)
Định nghĩa khung nhìn
Định nghĩa Ràng buộc toàn vẹn
Phân quyền và bảo mật
Điều khiển giao tác


• SQL sử dụng thuật ngữ
– Bảng ~ quan hệ
– Cột ~ thuộc tính
– Dòng ~ bộ
4


Giới thiệu
• Transact-SQL (T-SQL)
– Là một phiên bản SQL do Microsoft phát triển dựa
trên ANSI SQL
– Sử dụng trong MS SQL Server _ một DBMS của
Microsoft

5



Giới thiệu
• MS SQL Server





Là một Relational DBMS do Microsoft phát triển
Là một database server (software)
Hỗ trợ giao diện GUI và command line
Hỗ trợ nhiều chức năng






To create databases.
To maintain databases.
To analyze the data through SQL Server Analysis Services (SSAS).
To generate reports through SQL Server Reporting Services (SSRS).
To build high-performance data integration solutions, including
extraction, transformation, and load (ETL) packages for data
warehousing through SQL Server Integration Services (SSIS)

Tham khảo : />6


Giới thiệu

• MS SQL Server Management Studio (SSMS)
– Là công cụ cho phép user quản lý database và
instance
– Là công cụ quản lý tập trung tất cả các thành
phần của SQL server , Azure SQL Database, và SQL
Data Warehouse (Access, configure, manage,
administer, and develop )
Tham khảo : />7


Định nghĩa dữ liệu (DDL)
• Nhóm lệnh Định nghĩa dữ liệu
(Data Definition Language commands) gồm
– Tạo Cơ sở dữ liệu
– Tạo table
– Kiểu dữ liệu
• Định nghĩa kiểu dữ liệu mới

– Khai báo ràng buộc dữ liệu

8


Tạo Database
• Ví dụ

Data file có tên
SampleDate

Log file có tên

SampleLog

Tên database
CREATE DATABASE Sample
ON
PRIMARY (
NAME=SampleData,
FILENAME='c:\Program Files\..\..\Data\Sample.mdf',
SIZE=10MB,
MAXSIZE=15MB,
FILEGROWTH=20%)
LOG ON
( NAME=SampleLog,
FILENAME= 'c:\Program Files\..\..\Data\Sample.ldf',
SIZE=3MB,
MAXSIZE=5MB,
FILEGROWTH=1MB)

9


Tạo Database
• Tạo Database = thực hiện khai báo các file lưu trữ
• Một Database bao gồm hai hay nhiều tập tin
– Một (hay nhiều) file data và một (hay nhiều) file log
• File data lưu dữ liệu, file log lưu nhật ký giao tác

– Qui ước phần đuôi của tên file
• File dữ liệu cơ bản (Primary data file) .mdf => chỉ có 1 file
• Các file thứ cấp (Secondary data files, tùy chọn) .ndf

• File nhật ký giao dịch (Transaction log file) .ldf

– Các file này có thể nằm trên những đĩa vật lý khác nhau
để cải thiện việc thực thi của hệ thống
10


Tạo Database
• Thông tin của mỗi file bao gồm






Tên logic
(
Vị trí lưu trữ vật lý
Kích thước ban đầu
Kích thước tối đa
Kích thước tăng mỗi lần

• Filegroup : Các file data có thể nằm trên những đĩa vật lý khác
nhau, nhưng đặt trong cùng một filegroup
– một table được chỉ định đặt trong một filegroup => dữ liệu
của table sẽ được đặt trải ra trên các đĩa , giúp tăng hiệu
năng khi truy suất
– Luôn có một Primary filegroup
11



Lệnh tạo Sales DB , gồm 4 data file và 1 log file

2 data file thuộc
Primary
filegroup

2 data file thuộc
SalesGroup1
filegroup

12


Tạo Database
• Cú pháp lệnh

Tham khảo />
Chú ý : các từ khóa, và qui
ước về đặt dấu ( ) , dấu
phẩy , …

• Ví dụ : lệnh sau sẽ tạo một database với các tham số mặc định
Create database defaultDB

13


Các lệnh T-SQL quản lý database


Đổi tên cơ sở dữ liệu:
Cú pháp: sp_renamedb 'old_name', 'new_name‘

Xóa cơ sở dữ liệu: Khi 1 CSDL bị xóa thì tất cả các
file vật lý của nó sẽ bị xóa
Cú pháp:
DROP DATABASE database_name
Ví dụ:
Drop database Banhang

14


Kiểu dữ liệu
• T-SQL hỗ trợ các kiểu dữ liệu
– Số
– Chuỗi
– Ngày giờ
– Binary
– Các kiểu khác

• Người dùng có thể định nghĩa các kiểu dữ liệu
mới (user-defined data types) dựa trên các
kiểu dữ liệu có sẵn
15


Kiểu dữ liệu
• Số nguyên
– Bit

– Tinyint
– Smallint
– Int
– Bigint
– Smallmoney
– Money
– Decimal (numeric)
• Số thực
– Float
– real

Chuỗi :
- Char
- Varchar
- Text
- Nchar
- Nvarchar
- Ntext
Binary
- binary
- Varbinary
- image

Tham khảo :

Ngày giờ
- Date
- Time
- Datetime
- …

Các kiểu dữ liệu khác
- cursor
- Table
- Uniqueidentifier
- …

16


Tên
kiểu dữ liệu

Miền giá trị

Kiểu dữ liệu

Kích thước
lưu trữ

char [ ( n ) ] Fixed-size string data. n defines the string size in bytes and must be a
value from 1 through 8,000.
varchar [ ( n | max ) ] Variable-size string data. Use n to define the string
size in bytes and can be a value from 1 through 8,000 or use max to
indicate a column constraint size up to a maximum storage of 2^31-1 bytes
(2 GB)

Tham khảo :

17



Kiểu dữ liệu

18


Kiểu dữ liệu
• Định nghĩa một kiểu dữ liệu (user-defined data types ):
Cú pháp:
sp_addtype type , system_data_type [,'NULL' | 'NOT NULL']
Ví dụ: Tạo kiểu dữ liệu tên là isbn với kiểu dữ liệu cơ bản là smallint và
không chấp nhận giá trị Null
exec sp_addtype isbn, ‘smallint’, ‘NOT NULL’

• Liệt kê các user-defined data types trong CSDL hiện hành:
Dùng thủ tục sp_help , hoặc
truy vấn trong information_schema.domains
• Xoá một User-Defined Data Type:
Cú pháp:
sp_droptype type
19


Các lệnh T-SQL về table
• Các lệnh về table






CREATE TABLE (tạo bảng)
DROP TABLE (xóa bảng)
ALTER TABLE (sửa bảng)
Xem thông tin về table

• Khai báo các ràng buộc toàn vẹn khi định nghĩa table






Primary key, foreign key
Unique constraint
Default constraint
Check constraint
Not NULL
20


Tạo table
• Cú pháp

RBTV áp dụng cho 1 cột

CREATE TABLE <Tên_bảng> (
<Tên_cột> <Kiểu_dữ_liệu> [<RBTV>],
<Tên_cột> <Kiểu_dữ_liệu> [<RBTV>],

[<RBTV>]

)
RBTV áp dụng cho toàn bộ
table

21


CREATE TABLE NHANVIEN (
MANV CHAR(9),
Tạo một table không có
các khai báo ràng buộc

Tạo table

HOTEN VARCHAR(30),
PHAI CHAR(3),

LUONG INT,
PHG INT

)
Chỉ có 1 khai báo Primary key
trong 1 table

CREATE TABLE NHANVIEN (
Tạo một table có khai
báo ràng buộc PK, FK ,
và Check Constraint

MANV CHAR(9) not null primary key ,

HOTEN VARCHAR(30),
PHAI CHAR(3) check (PHAI like ‘nam’ or PHAI like ‘nu’),
LUONG INT,
PHG INT references PHONGBAN(MAPB)

)
22


Tạo table
CREATE TABLE PHANCONG (
MANV CHAR(9) NOT NULL,
SODA INT NOT NULL,
Tạo một table có khai báo
ràng buộc ở mức table
THOIGIAN DECIMAL(3,1) NOT NULL,
PRIMARY KEY (MANV, SODA),
FOREIGN KEY (MANV) REFERENCES NHANVIEN(MANV),
FOREIGN KEY (SODA) REFERENCES DEAN(MADA),
CHECK (thoigian  0)
)
Lệnh sau cho kết quả tương đương

CREATE TABLE PHANCONG (
MANV CHAR(9) not null REFERENCES NHANVIEN(MANV),
SODA INT not null REFERENCES DEAN(MADA),
THOIGIAN DECIMAL(3,1) not null CHECK (THOIGIAN > 0),
PRIMARY KEY (MANV, SODA)
)
Chỉ có 1 khai báo Primary key

trong 1 table

23


Tạo một table , có đặt tên cho ràng buộc .
Nếu không , hệ thống sẽ tự đặt

Tạo table

CREATE TABLE NHANVIEN (
MANV CHAR(9) not null CONSTRAINT nv_pk primary key ,

HOTEN VARCHAR(30),
PHAI CHAR(3) CONSTRAINT nv_chk_phai check (PHAI like ‘nam’ or PHAI like ‘nu’),
LUONG INT,
PHG INT CONSTRAINT nv_fk_pb references PHONGBAN(MAPB)

)

CREATE TABLE NHANVIEN (
MANV CHAR(9) not null,
HOTEN VARCHAR(30),

Lệnh cho kết quả tương đương

PHAI CHAR(3),
LUONG INT,
PHG INT ,
CONSTRAINT nv_pk primary key (MANV),

CONSTRAINT nv_fk_pb Foreign key(PHG) references PHONGBAN(MAPB),
CONSTRAINT nv_chk_phai check (PHAI like ‘nam’ or PHAI like ‘nu’) )

24


Tạo table
Tạo một table , có chứa khai báo
CREATE TABLE PHONGBAN (
ràng buộc unique và default
TENPB VARCHAR(20) UNIQUE,
MAPHG INT NOT NULL,
TRPHG CHAR(9),
NG_NHANCHUC DATETIME DEFAULT (GETDATE())
)
Lệnh cho kết quả tương đương
CREATE TABLE PHONGBAN (
TENPB VARCHAR(20),
MAPHG INT NOT NULL,
TRPHG CHAR(9),
NG_NHANCHUC DATETIME ,
CONSTRAINT pb_uni_tenpb UNIQUE (TENPB) ,
CONSTRAINT pb_def_ngay DEFAULT (GETDATE()) FOR (NG_NHANCHUC) )
25


×