View
59
Download
0
Category
Preview:
DESCRIPTION
Một số câu lệnh SQL cơ bản. Tạo và xóa database. create database Các file data, log sẽ nằm trong thư mục Data của SQL Xóa database drop database . Tạo database create database test on ( name = test_data, filename = "C:\test.mdf", size = 1, - PowerPoint PPT Presentation
Citation preview
Một số câu lệnh SQL cơ bản
Tạo và xóa database
• Tạo databasecreate database teston(
name = test_data,filename = "C:\test.mdf",size = 1,maxsize = 2,filegrowth = 20%
)log on(
name = test_log,filename = "C:\test.ldf",size = 1,maxsize = 2,filegrowth = 20%
)Các file data, log sẽ nằm trong ổ đĩa C
• create database <tên_csdl>
Các file data, log sẽ nằm trong thư mục Data của SQL
• Xóa database
drop database <ten_database>
Cấu hình với database
• sp_dboption ‘csdl’, ‘read only’, ‘true’ : thiết lập csdl chỉ cho phép read
• sp_dboption ‘csdl’, ‘autoshrink’, ‘true’ : cho phép csdl thu hẹp không gian trống định kì
• sp_dboption ‘csdl’, ‘single_user’, ‘true’ : csdl chỉ cho phép một người dùng
• dbcc drinkdatabase(‘csdl’, n%) : thu hẹp không gian thừa của CSDL xuống còn n% so với ban đầu
Tạo bảng và xóa bảng
• Tạo bảngcreate table <ten_bang>(
<ten_truong> <kieu_dl> [rang_buoc],<ten_truong> <kieu_dl> [rang_buoc]
)Ví dụ
create table hocvien(
maso varchar(20) primary key,hoten varchar(30) not null
)• Xóa bảng (xóa cả dữ liệu và cấu trúc bảng)
drop table <ten_bang>
Thay đổi cấu trúc bảng
• Thêm trường mới alter table <ten_bang>
add <ten_cot1> <kieu_dl1> [rang_buoc], <ten_cot2> <kieu_dl2> [rang_buoc]
• Xóa bỏ trường đã tồn tạialter table <ten_bang>
drop column <ten_cot1>, <ten_cot2>
• Thay đổi thuộc tính cho cột (mỗi lần thay đổi một cột)alter table <ten_bang>
alter column <ten_cot> <kieu_dl_moi>
Tạo ràng buộc Primary key
• Tạo mới bảng
create table student
( code int primary key )
create table student
( code int constraint pk_code primary key [(code)] )
• Bổ sung khóa chính vào trường trong bảngalter table student
add constraint pk_code primary key (code)
Tạo ràng buộc Unique
• Tạo bảng mới
create table student
( code int unique )
create table student
( code int constraint uni_code unique (code) )
• Bổ sung ràng buộc vào bảng đã tồn tại
alter table student
add constraint uni_code unique (code)
Tạo ràng buộc identity
• Tạo mới bảng
create table student
( code int identity (1, 1) )
create table student
( code int identity )
create table student
( code int constraint idt_id identity )
Tạo ràng buộc default
• Tạo bảng mớicreate table student
( phone varchar(10) default ‘N/A’ )
create table student
( phone varchar(10) constraint def_phone default ‘N/A’ )
• Bảng đã tồn tạialter table student
add constraint def_phone default ‘N/A’ for phone
Ràng buộc foreign key
• Tạo bảng mớicreate table mark
( code int foreign key references student (code)
on delete cascade on update set null )
create table mark
( code int constraint fk_code foreign key references student (code)
on delete cascade on update set null )
• Bảng đã tồn tạialter table mark
add constraint fk_code foreign key (code) references student (code) on delete cascade
on update set null
Tạo ràng buộc foreign key
• Option1: on delete/on update
• Option 2: – no action: không cho bản chi cha xóa hay cập
nhật– cascade: nếu bản ghi cha bị xóa hay cập nhật
thì bản ghi con sẽ bị ảnh hưởng theo
Ràng buộc not null
• Tạo bảng mới
create table student
( name varchar(20) not null )
• Không cho phép khi bảng đã tồn tại
Ràng buộc check
• Tạo bảng mớicreate table mark
( mark int check (mark >= 0 and mark <= 10) )
create table mark
( mark int constraint ck_mark check (mark >= 0 and mark <= 10) )
• Bảng đã tồn tạialter table mark
add constraint ck_mark check ( mark in (3, 5, 6) )
Cú pháp tổng quát
• Tạo ràng buộc cho bảng mớicreate table <ten_bang>
(<ten_cot> <kieu_dl> <rangbuoc>)
• Bảng đã tồn tạialter table <ten_bang>
add constraint <ten_constraint> <loai_constraint>
• Xóa constraintalter table <ten_bang>
drop constraint <ten_constraint>
Lưu ý khi dùng alter table
• Dùng với add: có thể add một lúc nhiều cột, các cột có ràng buộc là default, identity, check
• Dùng với alter column: cột chỉ thay đổi là null/not null
• Dùng với add constraint: có thể add nhiều constraint một lúc
Xóa dữ liệu với delete
• Xóa tất cả dữ liệu trong bảng
delete from <tên_bảng>
• Xóa dữ liệu ở các hàng thỏa mãn điều kiện
delete from <tên_bảng> where <điều kiện>
Chèn dữ liệu với insert
• Chèn dữ liệu đầy đủ vào hàng, bảng có bao nhiêu trường thì chèn vào bấy nhiêu giá trịInsert into <tên_bảng> values(gt1, gt2,…)
• Chèn dữ liệu cho một số trường trong bảng, các trường khác null bắt buộc phải liệt kêInsert into <tên_bảng>(trường1, trường2,…) values(gt1, gt2,…)
• Chèn dữ liệu vào bảng từ bảng khácInsert into <tên_bảng> select <trường1>, <trường2>,… from <tên_bảng2>
Sửa dữ liệu với update
• Cập nhật dữ liệu cho tất cả các hàng trong bảng trên trường chỉ raUpdate <tên_bảng> set <trường> = <giá_trị>
• Cập nhật dữ liệu cho một số hàng trong bảng, cập nhật giá trị cho trường chỉ raUpdate <tên_bảng> set <trường> = <giá_trị> where <điều_kiện>
Truy vấn dữ liệu với select
• Hiển thị tất cả các bản ghi, mỗi bản ghi chứa đầy đủ các trườngselect * from <tên_bảng>
• Hiển thị tất cả các bản ghi, mỗi bản ghi chỉ chứa một số trườngselect <trường1>,<trường2>,… from <tên_bảng>
Truy vấn dữ liệu với select (t.t)
• Hiển thị các bản ghi thỏa mãn điều kiện, mỗi bản ghi chứa đầy đủ các trườngselect * from <tên_bảng> where <điều_kiện>
• Hiển thị các bản ghi thỏa mãn điều kiện, mỗi bản ghi chỉ chứa một số trườngselect <trường1>,<trường2>,… from <tên_bảng> where <điều_kiện>
Truy vấn dữ liệu với select (t.t)
• Hiển thị dữ liệu có sắp xếpselect <trường1>,… from <tên_bảng> where <điều_kiện> order by <trường>
• Hiển thị dữ liệu theo nhómSelect <trường1>,… from <tên_bảng> where <điều_kiện> group by <trường1>,… having <điều_kiện>
Lưu ý: • tất cả các trường trong mệnh đề group by phải xuất hiện
trong select• các trường xuất hiện ở điều kiện trong mệnh đề having
phải xuất hiện trong select
Recommended