Một số câu lệnh SQL cơ bản

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