Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 20 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
20
Dung lượng
33,39 KB
Nội dung
NGÔN NGỮ SQL CHƯƠNG 1: THAO TÁC CƠ BẢN I Database CREATE DATABASE [Tên Database] II Table Tạo Table CREATE DATABASE [Tên Database] //Dùng để tạo Database để tạo table Go USE [Tên Database cần tạo bảng] //Có thể ko cần CREATE TABLE [Tên Table] ( [Tên trường] [KiểuDL], … ) Sửa Table a Thêm trường ALTER TABLE [Table cần sửa] ADD [Tên trường] [KiểuDL] Xóa Table DROP TABLE [Tên table] //Bỏ table TRUNCATE TABLE [Tên table] //Xóa liệu table III Kiểu liệu - Int: Kiểu số nguyên Tập Z - Float: Kiểu số thực Tập R - Char: Kiểu ký tự Không viết tiếng việt Bộ nhớ cấp phát tĩnh VD: Char(10) -> 10 ô nhớ dùng hết - Varchar: Kiểu ký tự Không viết tiếng việt Bộ nhớ cấp phát động VD: Varchar(10) -> 10 ô nhớ lấy có liệu bên ‘Kiem’-> dung ô nhớ - Nchar: Kiểu ký tự cấp phát tĩnh lưu tiếng việt - Nvarchar: Kiểu ký tự cấp phát động lưu tiếng việt - Date: Lưu ngày tháng năm - Time: Lưu trữ phút giây… - Bit: Lưu giá trị - Text: Lưu văn lơn - Ntext: Lưu văn có tiếng việt IV Insert, delete, update table Insert INSERT dbo.[Tên table] (Các trường insert) //Nếu all don’t care xám VALUES (Dữ liệu tưởng ứng với trường cần insert) Delete DELETE dbo.[Tên table] WHERE //Nếu delete xóa tồn liệu Update UPDATE dbo.[Tên table] SET WHERE V Tạo khóa CREATE TABLE [Tên table] ( [Tên trường] [Kiểu DL] PRIMARY KEY, ) Ghi chú: PRIMARY KEY = UNIQUE (Ko trùng) + NOT NULL (Ko trống) PRIMARY KEY khóa ngoại để liên kết table DEFAULT gái trị mặc định trường Trường làm key phải NOT NULL and UNIQUE Các trường hợp khác: - Khi tạo bảng muốn sửa cột thành primary key ALTER TABLE dbo.[Tên table] ADD PRIMARY KEY (Trường làm key) - Tạo primary key bảng khai báo CREATE TABLE [Tên table] ( [Tên trường] [Kiểu DL] NOT NULL, PRIMARY KEY (Tên tường làm key) ) - Tạo primary key bảng mà đặt tên cho key CREATE TABLE [Tên table] ( [Tên trường] [Kiểu DL] NOT NULL, CONSTRAINT [Đặt tên khóa] //sau xóa dễ PRIMARY KEY (Tên tường làm key) ) - Tạo primary key sau tạo bảng đặt tên cho key ALTER TABLE dbo.[Tên table cần tạo key] ADD CONSTRAINT [Đặt tên khóa] PRIMARY KEY (Tên tường làm key) VI Tạo khóa ngoại - Tạo khóa ngoại tạo bảng CREATE TABLE [Tên table] ( [Tên trường làm khóa ngoại] [Kiểu DL] //Trùng với tên khóa tham chiếu FOREIGN KEY (Tên trường làm khóa ngoại) REFERENCES dbo.[Tên table tham chiếu] (Tên trường tham chiếu) ) - Tạo khóa ngoại sau tạo bảng ALTER TABLE dbo.[ Tên table cần tham chiếu] ADD CONSTRAINT [Tên khóa ngoại] [Tên trường làm khóa ngoại] [Kiểu DL] FOREIGN KEY (Tên trường làm khóa ngoại) REFERENCES dbo.[Tên table tham chiếu] (Tên trường tham chiếu) - Hủy khóa ngoại ALTER TABLE dbo.[Bảng có khóa ngoại cần xóa] DROP CONSTRAINT [Tên khóa ngoại] VII Truy vấn Phép chiếu SELECT * FROM dbo.[Tên table] – Lấy hết liệu bảng SELECT [Các trường cần chiếu] FROM dbo.[Tên table] – Lấy liệu từ trường cần chiếu bảng Đổi tên cột hiển thị SELECT [Tên trường cần chiếu] AS ‘Tên mới’ FROM dbo.[Tên table] Phép kết SELECT * FROM dbo.[Các bảng] SELECT [Các trường cần chiếu] FROM dbo.[Các bảng] Truy vấn có điều kiện SELECT [tính chất] [Các trường cần chiếu] FROM dbo.[Các bảng] WHERE [điều kiện] Count( ) SELECT COUNT([Tên trường]) FROM [Các bảng] WHERE [Điều kiện] AVG( ) SELECT AVG([Tên trường]) FROM dbo.[Các bảng] WHERE [Điều kiện] SUM ( ) SELECT SUM([Tên trường]) FROM dbo.[Các bảng] WHERE [Điều kiện] Tìm kiếm gần SELECT * FROM dbo.[Tên bảng] WHERE [Tên trường] LIKE ‘ ký tự cần tim‘ Inner Join SELECT [Các trường] FROM dbo.[Table A] INNER JOIN dbo.[Table B] ON [table A].[Tên trường] = [Table B].[Tên trường] Chú ý: Join ln có điều kiện Full Outer Join SELECT [Các trường] FROM dbo.[Table A] FULL OUTER JOIN dbo.[Table B] ON [table A].[Tên trường] = [Table B].[Tên trường] 10 Left – Right Join SELECT [Các trường] FROM dbo.[Table A] LEFT/RIGHT JOIN dbo.[Table B] ON [table A].[Tên trường] = [Table B].[Tên trường] 11 Union SELECT [Các trường] FROM dbo.[Table A] WHERE [Điều kiện] UNION SELECT [Các trường] FROM dbo.[Table B] WHERE [Điều kiện] 12 Select Into (Gán trường table cũ vào table mới) SELECT [Các trường] INTO [Tên table mới] FROM dbo.[Tên table cũ] WHERE [Điều kiện] 13 Insert Into Select INSERT INTO [Tên table có sẵn] SELECT * FROM dbo.[Tên table lấy liệu] 14 Truy vấn lồng SELECT * FROM dbo.[Tên table] WHERE [Tên trường] IN ( SELECT [Tên trường xét lồng] FROM dbo.[Tên table] ) 15 Group by ** Agreeate Function AVG() Returns the average value COUNT() Returns the number of rows FIRST() Returns the first value LAST() Returns the last value MAX() Returns the largest value MIN() Returns the smallest value ROUND() Rounds a numeric field to the number of decimals specified SUM() Returns the sum ** String function CHARINDEX Searches an expression in a string expression and returns its starting position if found CONCAT() LEFT() LEN() / LENGTH() Returns the length of the value in a text field LOWER() / LCASE() Converts character data to lower case LTRIM() SUBSTRING() / MID() Extract characters from a text field PATINDEX() REPLACE() RIGHT() RTRIM() UPPER() / UCASE() Converts character data to upper case VD: SELECT GV.HOTEN, COUNT(*) AS SoNT FROM dbo.GIAOVIEN AS GV, dbo.NGUOITHAN AS NT WHERE GV.MAGV = NT.MAGV GROUP BY GV.HOTEN 16.Group by- Having - Xuất số lượng giáo viên môn mà số giáo viên > - Having -> where select giành cho group by - Having where group by SELECT dbo.BOMON.MABM, COUNT(*) FROM dbo.GIAOVIEN, dbo.BOMON WHERE dbo.BOMON.MABM = GIAOVIEN.MABM GROUP BY dbo.BOMON.MABM HAVING COUNT(*) > 17 Auto Increament VD: Dùng tạo bảng CREAT TABLE [Tên table] ( ID INT PRIMARY KEY IDENTITY ) - ID tự tăng Phải số Mặc định 1, tăng đơn vị - Nếu muốn bđầu từ a có bước nhảy b ta dùng INDENTITY(a, b) 18 View - View bảng ảo - Cập nhật liệu theo bảng mà view truy vấn tới lấy view sài - Tạo view từ câu truy vấn CREAT VIEW [Tên view] AS SELECT * FROM [Tên bảng truy vấn] - Nếu muốn tên view tiếng việt đặt cặp ngoặc vuông - Các thao tác view giống với bảng 19 Check - Check điều kiện phần khai báo kiểu liệu trường VD: Trường [Kiểu liệu] CHECK (Điều kiện check) - Có thể đặt tên cho check VD: Trường [Kiểu liệu], CONSTRAINT [Tên check] CHECK (Điều kiện check) - Đặt check sau tạo bảng ALTER TABLE dbo.[Tên bảng] ADD CONSTRAINT [Tên check] CHECK (Điều kiện check) 20 Indexes - Giúp tăng tốc độ tìm kiếm bù lại chậm tốc độ thêm xóa sửa - Cho phép trường trùng nhau, muốn ko trùng ta thêm UNIQUE trước INDEX CREATE INDEX [Tên index] ON [Tên bảng cần tạo index] 21 Kiểu liệu tự định nghĩa - Tạo EXEC sp_addtype ‘Tên kiểu liệu’, ‘Kiểu liệu thực tế’, ‘NOT NULL’ (Có ko được) - Xóa EXEC sp_droptype ‘Tên kiểu liệu cần xóa’ 22 Declare sử dụng biến - Set thông qua câu select DECLARE @[Tên biến tái sử dụng] [Kiểu liệu tương ứng] SELECT @[Tên biến tái sử dụng] = [Tên trường tham chiếu tương ứng] FROM [Tên bảng cần tham chiếu tương ứng] - Khởi tạo với kiểu liệu - Biến bắt đầu ký tự @ DECLARE @[Tên biến] [Kiểu liệu] - Khởi tạo với giá trị mặc định DECLARE @[Tên biến] [Kiểu liệu] = Giá trị mặc định - Set kiểu liệu cho biến VD: SET @i = @i + 23 If else T-SQL SET @i +=1 SET @i *=@i IF [ Điều kiện] PRINT … ELSE PRINT… - Nếu muốn tạo khối lệnh ta sử dụng cặp BEGIN END 24 Vòng lặp T-SQL WHILE (Điều kiện thực hiện) BEGIN END 25 Cursor T-SQL DECLARE [Tên trỏ] CURSOR FOR SELECT * [Table cần vấn] OPEN [Tên trỏ] FETCH NEXT FROM [Tên trỏ] INTO [Danh sách biến tương ứng] WHILE @@FETCH_STATUS = BEGIN (Các câu lệnh thực hiện) FETCH NEXT FROM [Tên trỏ] INTO [Danh sách biến tương ứng] END CLOSE [Tên trỏ] DEALLOCATE [Tên trỏ] VD: Nếu tuổi lớn 40 lương 2500, ngược lại 2000 DECLARE GVcursor CURSOR FOR SELECT MAGV, YEAR(GETDATE()) – YEAR(NGSINH) FROM dbo.GIAOVIEN OPEN GVcursor DECLARE @MaGV CHAR(10) DECLARE @Tuoi INT FETCH NEXT FROM GVcursor INTO @MaGV, @Tuoi WHILE @@FETCH_STATUS = BEGIN IF @Tuoi > 40 BEGIN UPDATE dbo.GIAOVIEN SET Luong = 2500 WHERE MaGV=@MaGV END ELSE BEGIN UPDATE dbo.GIAOVIEN SET Luong = 2000 WHERE MaGV=@MaGV END FETCH NEXT FROM GVcursor INTO @MaGV, @Tuoi END CLOSE GVcursor DEALLOCATE GVcursor 26 Store SQL CREATE PROC [Tên store] [Paramter có] AS BEGIN [Code xử lý] END Cách sử dụng: EXEC dbo.[Tên store] Cách xóa: DROP PROC [Tên store] VD: CREATE PROC USP_Test @MAGV NVARCHAR(10), @Luong INT AS BEGIN SELECT * FROM dbo.GIAOVIEN WHERE MaGV = @MaGV AND Luong = @Luong END EXEC dbo.USP_Test @MaGV = N’ ’, @Luong = EXEC dbo.USP_Test N’ ’, 27 Function SQL - Tạo Fuction ko có parameter CREATE FUNCTION [Tên Function]( ) RETURN TABLE // TABLE kiểu liệu xuất AS RETURN SELECT * FROM [Tên lấy liệu] Sdụng: SELECT dbo.[Tên Function] FROM dbo.[Tên cần tham chiếu] Cách xóa: DROP FUCTION [Tên Fuction] Update: Thay ALTER chỗ CREATE - Tạo Fuction với parameter CREATE FUNCTION [Tên Function] (parameter1 [Kiểu liệu]) RETURNS [Kiểu liệu xuất] AS BEGIN DECLARE [parameter2] [Kiểu liệu]) SELECT [parameter2] = [Trường cần tham chiếu] FROM [Tên lấy liệu] WHERE [Điều kiện] RETURN [Dữ liệu xuất] END 28 Trigger SQL - Trigger gọi có thao tác thay đổi thông tin bảng - INSERTED: Chứa trường insert | Update vào bảng - DELETED: Chứa trường bị xóa khỏi bảng - ROLLBACK TRAN: Hủy bỏ thay đổi cập nhật bảng CREATE TRIGGER [Tên trigger] ON dbo.[Tên bảng] FOR INSERT, UPDATE | DELETE AS BEGIN ROLLBACK TRAN Hủy bỏ thay đổi cập nhật bảng END 29 Transaction SQL - Transaction thực hiên thao tác tới gặp điều kiện điều kiện ko chạy tất thao tác thực bị hủy bỏ ko ảnh hưởng tới liệu BEGIN TRANSACTION - Chuỗi thao tác ROLLBACK TRANSACTION - Hủy bỏ trans BEGIN TRANSACTION - Chuỗi thao tác COMMIT TRANSACTION - Chấp nhận trans - Đặt tên cho Trans DECLARE @[Tên] [Kiểu liệu] BEGIN TRANSACTION @[Tên] - Chuỗi thao tác ROLLBACK | COMMIT TRANSACTION @[Tên] - Đặt nhiều mốc Trans BEGIN TRANSACTION SAVE TRANSACTION [Tên1] - Chuỗi thao tác SAVE TRANSACTION [Tên2] - Chuỗi thao tác ROLLBACK | COMMIT TRANSACTION [Tên1] // Dòng xét điều kiện xong quay tên tương ứng ... else T -SQL SET @i +=1 SET @i *=@i IF [ Điều kiện] PRINT … ELSE PRINT… - Nếu muốn tạo khối lệnh ta sử dụng cặp BEGIN END 24 Vòng lặp T -SQL WHILE (Điều kiện thực hiện) BEGIN END 25 Cursor T -SQL DECLARE... END FETCH NEXT FROM GVcursor INTO @MaGV, @Tuoi END CLOSE GVcursor DEALLOCATE GVcursor 26 Store SQL CREATE PROC [Tên store] [Paramter có] AS BEGIN [Code xử lý] END Cách sử dụng: EXEC dbo.[Tên... Luong = @Luong END EXEC dbo.USP_Test @MaGV = N’ ’, @Luong = EXEC dbo.USP_Test N’ ’, 27 Function SQL - Tạo Fuction ko có parameter CREATE FUNCTION [Tên Function]( ) RETURN TABLE // TABLE kiểu liệu