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

Chương 3 Structured Query Language Phần 2

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 (100.75 KB, 16 trang )

SQL
Structured Query Language
Phần 2
Chương 3
Nội dung

DDL (Data Definition Language)

Đị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
Tạ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,
FILEGROWTH = 1)
Kiểu dữ liệu
Ký tự Char, Varchar, nchar, nvarchar, text, ntext
Bit Bit
Số chính xác Tinyint, smallint, Int, bigint,
Số thực có
định dạng
Decimal(i,j) , numeric(i,j)
Số thực Float, Real
Ngày giờ Smalldatetime, Datetime
Loại khác Money, Binary, Image, …
Tạ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]
)

Tạ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
)
Tạ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)
)
Tạ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
Tạ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)
)
Tạ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)
Chỉ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
DROP TABLE SANPHAM
Tạ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
Khung 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

Tăng hiệu quả thực thi
Khung 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’
Khung 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
Delete From nvKDoanh
Khung 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

×