Bài giảng Cơ sở dữ liệu - Chương 3: SQL-Structured Query Language - Phần 2 - Nguyễn Việt Cường

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

ppt16 trang | Chia sẻ: candy98 | Lượt xem: 775 | Lượt tải: 0download
Bạn đang xem nội dung tài liệu Bài giảng Cơ sở dữ liệu - Chương 3: SQL-Structured Query Language - Phần 2 - Nguyễn Việt Cường, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
SQL Structured Query Language Phần 2Chương 3 Nội dungDDL (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 ServerTạo DatabaseTrong SQL ServerCREATE DATABASE SalesON 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ệuKý tựChar, Varchar, nchar, nvarchar, text, ntextBitBitSố chính xácTinyint, smallint, Int, bigint, Số thực có định dạngDecimal(i,j) , numeric(i,j) Số thựcFloat, RealNgày giờSmalldatetime, DatetimeLoại khácMoney, Binary, Image, Tạo cấu trúc bảngSử dụng lệnh Create, Alter, Drop để tạo , sửa, xóa cấu trúc bảngLệnh tạo bảng Create:Định nghĩa các cột : tên cột, kiểu dữ liệuKhai 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ảngCREATE 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ảngCREATE 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ảngCREATE TABLE SANPHAM ( MASP tinyint NOT NULL, TENSP nvarchar(20) NULL, DVT nvarchar(10) NULL, DONGIA real NULL, Tonkho bit )GoALTER TABLE SANPHAM ADD CONSTRAINT PK_SANPHAM PRIMARY KEY(MASP) GoTạo cấu trúc bảngCREATE 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ảngCREATE 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))GoALTER TABLE CHITIETHOADON ADD CONSTRAINT [FK_CTHD_HD] FOREIGN KEY(MAHD) REFERENCES HOADON (MAHD)GoALTER TABLE CHITIETHOADON ADD CONSTRAINT [FK_CTHD_SP] FOREIGN KEY(MASP) REFERENCES SANPHAM(MASP)Chỉnh sửa cấu trúc bảngSử 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ộcALTER TABLE SANPHAM ADD NHOMHANG VARCHAR(3)GoALTER TABLE SANPHAM ALTER COLUMN NHOMHANG VARCHAR(5)GoALTER TABLE SANPHAMDROP COLUMN NHOMHANGGoALTER TABLE CHITIETHOADON DROP CONSTRAINT [FK_CTHD_HD]Xóa bảngDROP TABLE SANPHAMTạo các Ràng buộc khácRàng buộc miền giá trịALTER TABLE SANPHAM ADD CONSTRAINT [CK_DG] CHECK (DONGIA>0)GoALTER TABLE HOADON ADD CONSTRAINT CK_Ngay CHECK (NgaylapHD<=NgayGiaohang)GoALTER TABLE SANPHAM ADD CONSTRAINT df_DG DEFAULT ‘kg’ FOR DONGIA Khung nhìn – View Khái niệmLà bảng “ảo” :Không lưu trữ dữ liệuKhi 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 SelectGiống như bảng: có thể truy vấn, thêm, xóa, sửa dữ liệu thông qua viewMục đích:Che dấu tính phức tạp của dữ liệuCung cấp cơ chế đảm bảo an toàn dữ liệuTăng hiệu quả thực thiKhung nhìn – View Tạo ViewCú pháp :CREATE VIEW tênview [dscột]AS SELECT FROM WHEREVd1: Tạo view chứa các nhân viên có chức vụ ‘kinhdoanh’CREATE VIEW nvKDoanhAS Select * From Nhanvien Where chucvu like ‘kinh doanh’Khung nhìn – View Công dụngSử dụng viewSelect * From nvKDoanhGoInsert into nvKDoanhValues()GoUpdate nvKDoanhSet luong = luong*1.1GoDelete From nvKDoanhKhung nhìn – View Hạn chếVd2:CREATE VIEW vwHDAS Select Manv, Count(*)From HoadonGroup by ManvGoSelect count(*) From vwHDGoUpdate vwHDSet manv = '100‘ Where manv =1GoDelete From vwHDKhông cập nhật trên View mà sử dụng hàm Aggregate hay Distinct khi tạoKhô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