KỸ THUẬT PHẦN MỀM
Chương IV: SQL & MS. ACCESS
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
Khoa Điện tử Viễn Thông – Bộ môn Điện tử Tin học
Chương IV. SQL & MS. Access
4.1 SQL
1. Giới thiệu
2. Phân loại SQL
3. Các lệnh SQL
A) Lệnh tạo bảng
B) Lệnh thêm dữ liệu
C) Lệnh thay đổi dữ liệu
4.2 MS. Access
4.1 SQL
1. Giới thiệu
SQL-Structure Query Language
Ngôn ngữ truy xuất CSDL quan hệ
Là phương tiện được sử dụng để trao đổi với
DBMS
Câu lệnh giống ngôn ngữ tiếng Anh (dễ đọc, dễ hiểu
hơn tiếng Anh).
4.1 SQL
Là một ngôn ngữ phi thủ tục
=>NSD không cần phải quan tâm đến việc dữ liệu được lưu
trữ thật sự như thế nào, ở đâu và có thể lấy ra bằng cách
nào.
Cho phép truy vấn và khai thác dữ liệu một cách
linh hoạt
4.1 SQL
2 cách thực hiện câu lệnh SQL:
Tương tác (Dòng lệnh)
SQL nhúng.
4.1 SQL
* Lịch sử SQL
IBM’lab, San Jose, California – 1970: phát triển một
hệ quản trị CSDL quan hệ thực nghiệm mà có thể dần dần
tạo ra một sản phẩm thương mại.
Một dự án được bắt đầu từ năm 1974 – Hệ thống R
Một ngôn ngữ được gọi là Sequel (Structure English
QUEry Language) được chọn là ngôn ngữ CSDL quan hệ
cho hệ thống R.
Sequel đã được viết gọn lại thành SQL.
4.1 SQL
Hệ thống R:
Giai đoạn 1:
Nghiên cứu phát triển một phiên bản cơ bản của các hệ
QTCSDL quan hệ.
1975, Hệ QTCSDL cho 1 người sử dụng dựa trên mô hình
quan hệ.
1979: Kết thúc dự án
1981: Phiên bản chính thức đầu tiên của hệ quản trị
CSDL quan hệ chính thức xuất hiện trên thị trường như
là một sản phẩm thương mại: SQL/DS chạy trên môi
trường hệ điều hành DOS/VSE.
1983: DB2 ra đời và phát triển nhanh chóng.
4.1 SQL
Oracle
ANSI
4.1 SQL
2. Phân loại SQL
DDL – Data Definition Language
Làm việc với cấu trúc CSDL
DML – Data Manipulation Language
Làm việc với dữ liệu thực sự được lưu trữ
DCL – Data Control Language
4.1 SQL
3. Các lệnh SQL
a. Lệnh “CREATE TABLE” – Tạo bảng
Ví dụ CSDL gồm 3 bảng:
Tạo bảng CARS
Tên bảng: CARS
Các cột: Tên + kiểu dữ liệu (kích thước)
4.1 SQL
CREATE TABLE CARS (
MD_NUM INTEGER,
MD_NAME CHAR(10),
STYLE CHAR(6),
YEAR INTEGER);
4.1 SQL
Cú pháp lệnh CREATE TABLE
CREATE TABLE <TableName> (
Column1 DataType [(width [,dec.])] [NOT NULL | UNIQUE |INDEX],
Column2 DataType [(width [,dec.])] [NOT NULL | UNIQUE |INDEX],
……..
Columnn DataType [ (width [,dec.])] [NOT NULL | UNIQUE |INDEX]
);
4.1 SQL
Lệnh “CREATE TABLE”
Từ khóa: CREATE TABLE
Tên bảng: <TableName>
Danh sách cột: <Columni>, <DataType(width,dec)>
Bảng phải chứa ít nhất 1 cột
Tên cột là duy nhất trong mỗi bảng
Thứ tự cột sẽ là thứ tự mặc định khi truy vấn
Bảng sau khi tạo là bảng rỗng
4.1 SQL
Kiểu dữ liệu ANSI
CHAR
VCHAR
NUMERIC
DECIMAL
SMALLINT
INTEGER
FLOAT
DATE
Kiểu riêng của DBMS
Money
Datetime
Boolean
4.1 SQL
Tính chất cột:
UNIQUE
Đảm bảo giá trị của cột là duy nhất trên tất cả các hàng
dữ liệu của bảng
INDEX
Không thuộc tiêu chuẩn ANSI
Có trong hầu hết các hệ QTCSDL thương mại
Tăng tốc độ truy xuất dữ liệu
NOT NULL
Không cho phép giá trị của cột rỗng tại bất kỳ hàng nào
Thường dùng với khóa chính
4.1 SQL
PRIMARY KEY
CREATE TABLE < TableName > (
…
PRIMARY KEY (columnname)
);
FOREIGN KEY
CREATE TABLE <TableName> (
…
FOREIGN KEY (columnname) REFERENCES <RefTableName>
);
DEFAULT
CREATE TABLE < TableName > (
…
<columnname> <datatype(width,dec)> [DEFAULT <value>]
);
4.1 SQL
Tương tự: SPECS, STOCK
CREATE TABLE SPECS (
MD_NUM INTEGER ,
MPG INTERGER ,
RADIO CHAR(3) ,
ENGINE CHAR(7) );
CREATE TABLE STOCK (
MD_NUM INTEGER ,
QTY INTEGER ,
PRICE INTEGER );
4.1 SQL
Thay đổi cấu trúc bảng: ALTER TABLE
Thêm cột:
ALTER TABLE <TableName>
ADD (ColumnName Datatype(width,dec)
[BEFORE <Colname>],
…….
)
Bớt cột:
ALTER TABLE <TableName>
DROP (ColumnName ,… )
4.1 SQL
Xóa bảng khỏi CSDL: “DROP TABLE”
Cú pháp:
DROP TABLE <TableName>;
Ví dụ:
DROP TABLE CARS;
DROP TABLE SPECS;
4.1 SQL
b. Lệnh “INSERT INTO”: Thêm dữ liệu
4.1 SQL
Thêm DL vào bảng: CARS
4.1 SQL
Cú pháp lệnh INSERT
Tên bảng cần thêm dữ liệu
Tên cột chứa dữ liệu
Giá trị dữ liệu cần thêm
Chú ý: kiểu dữ liệu của các cột phải đúng
INSERT INTO TABLE <TableName>
(Field1, Field2, …., Fieldn) VALUES
(Value1, Value2, …, Valuen)
4.1 SQL
Cú pháp rút gọn
Bỏ qua phần khai báo tên trường nếu thứ tự và số
lượng trường giống cấu trúc bảng.
INSERT INTO TABLE <TableName>
VALUES (Value1, Value2, …, Valuen)
4.1 SQL
Thêm thông tin vào bảng SPECS
4.1 SQL
Thêm thông tin vào bảng STOCK