Bài giảng Cơ sở dữ liệu - Chương 3: SQL - Phần 2 cung cấp cho người học các kiến thức về Data Definition Language, tham khảo các lệnh trên trong môi trường SQL Server. Mời các bạn cùng tham khảo nội dung chi tiết.
Trang 1Structured Query Language Phần 2
Chương 3
Trang 2Nội dung
DDL ( D ata D efinition L anguage)
Định nghĩa Database
Định nghĩa cấu trúc Bảng
Định nghĩa ràng buộc toàn vẹn
Định nghĩa khung nhìn
Tham khảo các lệnh trên trong môi trường SQL Server
Trang 3Tạo Database
Trong SQL Server
CREATE DATABASE Sales
ON PRIMARY
( NAME = ‘Sale_data’,
FILENAME = ‘d:\database\Sales\Saledata.mdf', SIZE = 10,
MAXSIZE = 50,
FILEGROWTH = 2 )
LOG ON
( NAME = 'Sales_log',
FILENAME = ‘d:\database\Sales\Salelog.ldf', SIZE = 2,
MAXSIZE = 5,
Trang 4Kiểu dữ liệu
Ký tự Char, Varchar, nchar, nvarchar, text, ntext
Số chính xác Tinyint, smallint, Int, bigint,
Số thực có
định dạng Decimal(i,j) , numeric(i,j)
Ngày giờ Smalldatetime, Datetime
Loại khác Money, Binary, Image, …
Trang 5Tạo cấu trúc bảng
Sử dụng lệnh Create, Alter, Drop để tạo , sửa, xóa cấu trúc bảng
Lệnh tạo bảng Create:
Định nghĩa các cột : tên cột, kiểu dữ liệu
Khai báo các ràng buộc
Cú pháp :
CREATE TABLE tênbảng (
Têncột_1 Kiểudữliệu [not null] [unique] [RBTV trên cột],
…
Têncột_n Kiểudữliệu [not null] [unique] [RBTV trên cột],
[RBTV bảng]
)
Trang 6Tạo cấu trúc bảng
CREATE TABLE KHACHHANG (
MAKH nvarchar(10) NOT NULL Primary Key, TENKH nvarchar(30) NULL,
DIACHI nvarchar(40) NULL,
THANHPHO nvarchar(50) NOT NULL,
DIENTHOAI nvarchar(50) NULL
)
Trang 7Tạo cấu trúc bảng
CREATE TABLE NHANVIEN (
MANV int NOT NULL,
HONV nvarchar(20) NULL,
TENNV nvarchar(10) NOT NULL,
PHAI bit NOT NULL,
NGAYSINH datetime NULL,
NOISINH nvarchar(15) NULL,
DIACHI nvarchar(40) NOT NULL,
DIENTHOAI nvarchar(13) NULL,
CONSTRAINT PK_NHANVIEN PRIMARY KEY (MANV)
Trang 8Tạo cấu trúc bảng
CREATE TABLE SANPHAM (
MASP tinyint NOT NULL,
TENSP nvarchar(20) NULL,
DVT nvarchar(10) NULL,
DONGIA real NULL,
Tonkho bit
)
Go
ALTER TABLE SANPHAM ADD CONSTRAINT PK_SANPHAM PRIMARY KEY(MASP)
Go
Trang 9Tạo cấu trúc bảng
CREATE TABLE HOADON (
MAHD nvarchar(5) NOT NULL PRIMARY KEY ,
LOAIHD nvarchar(1) NULL,
MAKH nvarchar(10) NULL,
MANV int NULL REFERENCES NHANVIEN (MANV), NGAYLAPHD datetime NULL,
NGAYGIAONHAN datetime NULL,
CONSTRAINT [FK_HD_KH] FOREIGN KEY(MAKH) REFERENCES KHACHHANG (MAKH)
)
Trang 10Tạo cấu trúc bảng
CREATE TABLE CHITIETHOADON (
MAHD nvarchar(5) NOT NULL ,
MASP tinyint NOT NULL,
SOLUONG smallint NULL DEFAULT 0 ,
DONGIA float NULL,
CONSTRAINT PK_CTHD PRIMARY KEY (MAHD,MASP)
)
Go
ALTER TABLE CHITIETHOADON ADD CONSTRAINT [FK_CTHD_HD] FOREIGN KEY(MAHD)
REFERENCES HOADON (MAHD)
Go
ALTER TABLE CHITIETHOADON ADD CONSTRAINT [FK_CTHD_SP] FOREIGN KEY(MASP)
REFERENCES SANPHAM(MASP)
Trang 11Chỉnh sửa cấu trúc bảng
Sử dụng lệnh Alter để chỉnh sửa cấu trúc bảng : thêm/xóa cột, đổi kiểu dữ liệu, thêm/xóa ràng buộc
ALTER TABLE SANPHAM ADD NHOMHANG VARCHAR(3)
Go
ALTER TABLE SANPHAM
ALTER COLUMN NHOMHANG VARCHAR(5)
Go
ALTER TABLE SANPHAM
DROP COLUMN NHOMHANG
Go
ALTER TABLE CHITIETHOADON DROP CONSTRAINT
[FK_CTHD_HD]
Xóa bảng
Trang 12Tạo các Ràng buộc khác
Ràng buộc miền giá trị
ALTER TABLE SANPHAM
ADD CONSTRAINT [CK_DG] CHECK (DONGIA>0)
Go
ALTER TABLE HOADON
ADD CONSTRAINT CK_Ngay CHECK
(NgaylapHD<=NgayGiaohang)
Go
ALTER TABLE SANPHAM ADD CONSTRAINT df_DG DEFAULT ‘kg’ FOR DONGIA
Trang 13Khung nhìn – View
Khái niệm
Là bảng “ảo” :
Không lưu trữ dữ liệu
Khi xem dữ liệu trong View, thực chất là xem tập kết quả của một câu lệnh Select
Giống như bảng: có thể truy vấn, thêm, xóa, sửa dữ liệu thông qua view
Mục đích:
Che dấu tính phức tạp của dữ liệu
Cung cấp cơ chế đảm bảo an toàn dữ liệu
Trang 14Khung nhìn – View
Tạo View
Cú pháp :
CREATE VIEW tênview [dscột]
AS SELECT … FROM … WHERE
Vd1: Tạo view chứa các nhân viên có chức vụ
‘kinhdoanh’
CREATE VIEW nvKDoanh
AS
Select *
From Nhanvien
Where chucvu like ‘kinh doanh’
Trang 15Khung nhìn – View Công dụng
Sử dụng view
Select * From nvKDoanh
Go
Insert into nvKDoanh
Values(…)
Go
Update nvKDoanh
Set luong = luong*1.1
Go
Trang 16Khung nhìn – View
Hạn chế
Vd2:
CREATE VIEW vwHD
AS Select Manv, Count(*)
From Hoadon
Group by Manv
Go
Select count(*) From vwHD
Go
Update vwHD
Set manv = '100‘
Where manv =1
Go
Delete From vwHD
Không cập nhật trên View mà
sử dụng hàm Aggregate hay Distinct khi tạo
Không xóa trên View mà sử dụng hàm Aggregate hay Distinct , hoặc xây dựng từ nhiều bảng