1.04k likes | 1.38k Views
HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU. SQL SERVER. Ngôn ngữ định nghĩa dữ liệu. Tạo CSDL Tạo v à quản lý các bảng. T ạo lập CSDL. Các đối tượng của CSDL: Các bảng dữ liệu (Tables) Các chỉ mục (Index) Các khung nhìn (Views) Các thủ tục lưu trú (Store Procedures) Các bẫy lỗi (Triggers).
E N D
HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU SQL SERVER
Ngôn ngữ định nghĩa dữ liệu • Tạo CSDL • Tạo và quản lý các bảng
Tạo lập CSDL • Các đối tượng của CSDL: • Các bảng dữ liệu (Tables) • Các chỉ mục (Index) • Các khung nhìn (Views) • Các thủ tục lưu trú (Store Procedures) • Các bẫy lỗi (Triggers)
Tạo lập CSDL • Cácthông tin cầnxácđịnhkhitạo CSDL: • Tên CSDL • Kíchthước • Tệp, nhómtệplưutrữ CSDL
Tạo lập CSDL • Tạo CSDL bằng T_SQL CREATE DATABASE<Database_name> [ ON [ < filespec > [ ,...n ] ] [ , < filegroup > [ ,...n ] ] ] [ LOG ON { < filespec > [ ,...n ] } ] ------- < filespec > ::= [ PRIMARY ]( [ NAME = logical_file_name , ] FILENAME = 'os_file_name' [ , SIZE = size ] [ , MAXSIZE = { max_size | UNLIMITED } ] [ , FILEGROWTH = growth_increment ] ) [ ,...n ] -------- < filegroup > ::= FILEGROUPfilegroup_name < filespec > [ ,...n ]
Tạo lập CSDL • Tạo CSDL bằng T_SQL • Database_name: • Duy nhất trong server • Tuân theo luật đặt định danh • Độ dài lớn nhất là 128 kí tự • ON … • Xác định các tệp (primary file, secondary file) và nhóm tệp lưu trữ CSDL • LOG ON … • Xác định các log file • Nếu mệnh đề này không có thì một log file sẽ tụ động được tạo ra.
Tạo lập CSDL • Tạo CSDL bằng T_SQL • Ví dụ 1: tạo CSDL có xác định tệp primary và tệp transaction log: USE master GO CREATE DATABASE qlnv ON ( NAME = qlnv_dat, FILENAME = 'c:\program files\microsoft sql server\mssql\data\qlnvdat.mdf', SIZE = 10, MAXSIZE = 50, FILEGROWTH = 5 ) LOG ON ( NAME = qlnv_log, FILENAME = 'c:\program files\microsoft sql server\mssql\data\qlnvlog.ldf', SIZE = 5MB, MAXSIZE = 25MB, FILEGROWTH = 5MB ) GO
Tạo lập CSDL • Tạo CSDL bằng Enterprise Manager (EM) • Chọn server group và mở rộng • Nhấp chuột phải trên nút Database/ chọn New Database => Xuất hiện cửa sổ New Database • Nhập tên cho DB cần tạo • Thay đổi một số tham số của DB
Tạo lập CSDL • Chỉnhsửa DB • ALTER DATABASE • Vídụ 2 USE master GO CREATE DATABASE Test1 ON ( NAME = Test1dat1, FILENAME = 'c:\Program Files\Microsoft SQL Server\MSSQL\Data\t1dat1 . ndf', SIZE = 5MB, MAXSIZE = 100MB, FILEGROWTH = 5MB ) GO ALTER DATABASE Test1 ADD FILE ( NAME = Test1dat2, FILENAME = 'c:\Program Files\Microsoft SQL Server\MSSQL\Data\t1dat2.ndf', SIZE = 5MB, MAXSIZE = 100MB, FILEGROWTH = 5MB ) GO
Tạo lập CSDL • Xem thông tin về các CSDL • sp_helpdb [ [ @dbname= ] 'name' ] • Ví dụ 3 exec sp_helpdb qlnv exec sp_helpdb
Tạo lập CSDL • Xoá CSDL • DROP DATABASE database_name [ ,…] • Vídụ 4 DROP DATABASE qlnv
Kiểudữliệu • System data types (Kiểudữliệuhệthống) • User-defined data type • CLR types • Spatial data • Filestreams • XML
Kiểudữliệuhệthống • Exact numeric • bit, tinyint, smallint, int, bigint, numeric, decimal, smallmoney, money • Approximate numeric • float, Real • Date & Time • datetime, smalldatetime • Character string • char, varchar, text • Unicode character string • nchar, nvarchar, ntext • Binary character string • binary, varbinary, image • Others • sql_variant, timestamp, xml…..
Tạo lập các bảng dữ liệu • Tạo bảng bằng T_SQL: CREATE TABLE [<tên CSDL>. [<tên NSD>. ]]<tên bảng> ( <tên cột 1> <kiểu dữ liệu 1> (kích thước 1), <tên cột 2> <kiểu dữ liệu 2> (kích thước 2),…………..,<tên cột n> <kiểu dữ liệu n> (kích thước n)) ;
Tạo lập các bảng dữ liệu • Tạobảngbằng T_SQL- Vídụ 5 CREATE TABLE qlnv.nhan_vien (manvSmallint,ho_ten VARCHAR(25),ngay_sinh DATETIME,gioi_tinh CHAR(3),ma_dv CHAR(2),luongInt );
Tạo lập các bảng dữ liệu • Tạo bảng bằng EM • Chọn CSDL • Chọn mục Tables • Nhấp chuột phải trên Tables và chọn New Tables
Tạo lập các bảng dữ liệu • Sửa đổi cấu trúc bảng (Thêm, xoá, sửa cột):
Tạo lập các bảng dữ liệu • Xem thông tin bảng • sp_help [ [ @objname = ] name ] • Xoá bảng • DROP TABLE table_name
Ngôn ngữ thao tác dữ liệu • Chèn thêm bản ghi vào bảng dữ liệu • Sửa nội dung trong bảng dữ liệu • Xóa các bản ghi trong bảng dữ liệu • Tìm kiếm thông tin
Chèn thêm bản ghi vào bảng dữ liệu INSERT INTO<table_name>[(<danh sách tên cột>)]VALUES <danh sách giá trị>; Chèn thêm một bản ghi vào cuối bảng INSERT INTO<table_name> [(<danh sách tên cột>)]SELECT . . . Chèn thêm một số bản ghi vào cuối bảng
Sửa nội dung trong bảng dữ liệu UPDATE <table_name>SET <col_name1>=<exp1> [, <col_name2> = <exp2>, . . . ][WHERE <codition>(s)] Cậpnhậtthông tin trêncáccột col_name1, col_name2, . . . chocácbảnghithỏamãnđiềukiệnsau Where
Xóa các bản ghi trong bảng dữ liệu DELETE FROM<table_name>[WHERE <codition>(s)] • Xóatấtcảcácbảnghithỏamãnđiềukiệnsaumệnhđề Where TRUNCATE TABLE<tênbảng> Xoátấtcảbảnghitrongbảng, lượcđồcủabảngvẫngiữnguyên
Tìm kiếm thông tin • CSDL Quản lý thông tin về các nhân viên • PHONG(Maphong, Tenphong, Diachi, SDT) • DMNN(Mann, Tennn) • NHANVIEN(Manv, Hoten, Ngaysinh, Gioitinh, Luong, Sdt, Maphong) • TDNN(Manv, Mann, Tdo)
Tìm kiếm thông tin • Truy vấn tìm kiếm tổng quát: SELECT *|{[DISTINCT] column|expression [alias],...}FROM table(s)[WHERE condition(s)] [ORDER BY {column, expr, alias} [ASC|DESC]]; Nghĩa là: Lấy <những cái gì?>Từ <những quan hệ nào?>[Thoả mãn <điều kiện gì?>] [Sắp xếp<theo thứ tự nào?>]
Tìm kiếm thông tin hoặc: SELECTcolumn,group_function(column) FROM tables [WHEREcondition] [GROUP BYgroup_by_expression] [HAVINGgroup_condition] [ORDER BYcolumn];
Tìm kiếm không điều kiện SELECT *|{[DISTINCT] column|expression [alias],...}FROM table(s) Vídụ 6: Cho biếtthông tin vềcácphòng ban? SELECTMaphong,Tenphong, DiaChi, Tel FROMPhong hoặc: SELECT * FROMPhong * : thaythếtậptêncộtcủamộtbảng
Tìm kiếm không điều kiện • Vídụ 7: Cho biếtdanhsáchthưởngcủacácnhânviênbaogồmcácthông tin mãnhânviên, họtên, lương, vàthưởng (bằnglương + 40% lương)? Câulệnh: SELECTManv, Hoten, Luong, 1.4*Luongas ThuongFROM Nhanvien SauSelectcóthểchứamộtbiểuthức.Biểuthứcvàtêntrườngđócóthểđượcđặttêngiả:<bt> [As] <tên> hoặc <bt> <‘Tên’> BiểuthứcchứagiátrịNULL btcógiátrịNULL
Tìm kiếm không điều kiện • Vídụ 8: Cho biếtmãcácngoạingữmàcácnhânviêntrongcơquanđãhọc? Câulệnh: Select Mann From TDNN hoặc SelectDistinct MannFrom TDNN Distinct:đưarabảnghiđạidiệncủanhómbảnghigiốngnhau
Tìm kiếm không điều kiện • Vídụ 9: Đưarathông tin về 2 nhânviênđầutiêntrongbảngnhânviên? Câulệnh: Select top 2* From NHANVIEN top n:đưarabảnghi n bảnghiđầutiên
Tìm kiếm có điều kiện SELECT *|{[DISTINCT] column|expression [alias],...}FROMtable(s)[WHERE condition(s)] • Các phép so sánh trong Condition(s): >, <, >=, <=, != hoặc <>, !> (không lớn hơn), !< (không nhỏ hơn) • Các phép logic trong Condition(s): and, or, not, between…and, like, in, is null
Truy vấn có điều kiện • Vídụ 10: Cho biếtdanhsáchcácnhânviênlàmviệc ở phòngcómãsốlà HCA? Câulệnh: Select *FromNhanvienWhereMaphong = ‘HCA’
Truy vấn có điều kiện • Vídụ 11: Cho biếtmãnhânviên, họtên, ngàysinh, lươngcủacácnhânviêncólươngnằmtrongkhoảngtừ 2000000 đồngđến 3000000 đồng? Câulệnh: SelectManv, Hoten, Ngaysinh, Luong FromNhanvien Where (Luong 2000000) and (Luong 3000000)
Truy vấn có điều kiện hoặc: SelectManv, Hoten, Ngaysinh, Luong FromNhanvien WhereLuongBetween 2000000 and 3000000
Truy vấn có điều kiện • Vídụ 12: Cho biếtmãnhânviên, họtên, ngàysinh, lươngcủacácnhânviêncólươngkhôngnằmtrongkhoảngtừ 1000000 đồngđến 2000000 đồng? SelectManv, Hoten, Ngaysinh, Luong FromNhanvien WhereLuongnot between 1000000 and 2000000
Truy vấn có điều kiện • Vídụ 13: Đưaradanhsáchcácnhânviênchưacósốđiệnthoại? Select * FromNhanvienWhere SDTis Null
Truy vấn có điều kiện • Vídụ 14: Cho biếtcácnhânviênlàmviệc ở phòngcómãphònglàhcahoặc KDA? Câulệnh: Select *FromNhanvienWhereMaphong = ‘P1’ or Maphong = ‘P2’ hoặc: Select *FromNhanvienWhereMaphongin (‘P1’, ‘P2’)
Truy vấn có điều kiện • Vídụ 15: Cho biếtdanhsáchcácnhânviêncótênbắtđầubằng ‘N’? Câulệnh: Select *FromNhanvienWhereHoTen like ‘N%’ tronglike dùngcáckíhiệuthaythế: % (mộtxâukítựbấtkì), _ (mộtkítựbấtkì) Likechỉthaotáctrêncáctrườngkiểuxâukítự
Truy vấn có sắp xếp dữ liệu • Thêmmệnhđề: [ORDER BYcolumn | expr | alias [ASC|DESC], . . .] Vídụ 16: Hãyđưaradanhsáchnhânviêntheotheochiềutăngdầncủalương? SelectManv, Hoten, Ngaysinh, Luong From NHANVIEN Order ByLuongAsc
Truy vấn có sắp xếp dữ liệu Vídụ 17:Hãyđưaradanhsáchnhânviêntheotheochiềutăngdầncủalương, nếu 2 nhânviêncócùnglươngthìsắpxếptheongàysinhgiảmdần? SelectManv, Hoten, Ngaysinh, Luong From NHANVIEN Order ByLuongAsc, NgaysinhDesc thứtựsắpxếptừtrái phải
Một số hàm thông dụng • Các hàm xử lý xâu kí tự • ASCII(s): trả về giá trị mã ASCII của kí tự bên nhất trái của xâu • Char(n): trả ra kí tự thứ n trong bảng mã ASCII • Upper(s): chuyển đổi xâu sang chữ hoa • Lower(s): chuyển đổi xâu sang chữ thường
Một số hàm thông dụng • Các hàm xử lý xâu kí tự (tiếp) • +: phép toán ghép các xâu • Len(s): trả về độ dài của xâu • LTRIM(s): loại bỏ các kí tự trắng bên trái xâu • RTRIM(s): loại bỏ các kí tự trắng bên phải xâu • Left(s, n): trả về n kí tự (xâu con) phía bên trái nhất xâu s • Right(s, n): trả về n kí tự (xâu con) phía bên phải nhất xâu s
Một số hàm thông dụng • Các hàm xử lý xâu kí tự (tiếp) • SubString(s, m ,n): trả về xâu con dài n kí tự của xâu s bắt đầu từ ví trí thứ m • Replace(s, s1, s2): thay thế các xâu con s1 xuất hiện trong xâu s bằng xâu s2 • Stuff (s, m, n, s1): xóa xâu con n kí tự bắt đầutừ vị trí thứ m trong xâu s và thay thế vào đó xâu s1 • Reverse(s): trả về xâu đảo ngược của xâu s
Một số hàm thông dụng • Cáchàmngàytháng • Getdate(): trảvềngàythángnămcủahệthống • DatePart(thamsốdatepart,date): trảvềgiátrịnguyênlàthànhphầncủagiátrịdate • Cácthamsốcủadatepart: • qq,q : Quarter • yy, yyyy : Year • mm, m : Month • dy,y : Dayofyear • dd,d : Day • wk, ww : Week • dw : Weekday • hh : Hour • mi,n : Minute • ss,s : Second • ms : Milisecond
Một số hàm thông dụng • Cáchàmngàytháng (tiếp) • DateDiff(datepart, date1,date2): trảvềkhoảngngày, tháng, năm, . . . giữa 2 ngày date1 và date2 • Dateadd(datepart,n,date): thêmmộtsố n datepartvào date • Day(d): trảvềgiátrịsốnguyêncủangày • Month(d): trảvềgiátrịsốnguyêncủatháng • Year(d): trảvềgiátrịsốnguyêncủanăm
Một số hàm thông dụng • Các hàm toán học (tiếp) • Square(n) • Sqrt(n) • Round(f,n) • Power(f,n) • Pi() • Sign(f)
Một số hàm thông dụng • Các hàm chuyển đổi • Convert(datatype[(size) ], exp [,style])
Một số hàm thông dụng • Các hàm nhóm dữ liệu: • Count ([All | Distinct] Biểu thức):Hàm đếm số lượng các bộ thỏa mãn điều kiện • Max (Biểu thức), Min (Biểu thức): Hàm tính giá trị lớn nhất, nhỏ nhất của tập giá trị được tính theo biểu thức