Người lười biếng thường hay chả muốn làm nhiều, sau đây là một số script sql dành cho copy/paste:

(thay phần bôi đậm bằng nội dung thực tế)

> Ghi chú trong SQL script 

1. Ghi chú 1 dòng, sử dụng -- 

VD: select * from users -- tất cả các dòng trong bảng users

2. Ghi chú khối, sử dụng /* */

VD:

/*

Ghi chú hàng 1

Ghi chú hàng 2

*/


> Wildcard character

%: thay thế cho nhiều ký tự hoặc không ký tự nào.

_ : thay thế cho 1 ký tự

VD: 

SELECT * FROM USERS

WHERE USERNAME LIKE 'M%'

--M% có thể là: Minh, Mạnh, M, Mai...


SELECT * FROM USERS

WHERE USERNAME LIKE 'N_M'

-- N_M có thể là: NAM, NẤM, NEM...


> Tạo database, tạo user, cấp quyền owner

a. Tạo database

USE [MASTER]

CREATE DATABASE [TENDB]

CREATE LOGIN TENUSER WITH PASSWORD=N'MATKHAU', DEFAULT_DATABASE=[TENDB]

//mật khẩu sẽ phải tuân theo password rule của windows, trường hợp không muốn theo rule của windows + password không hết hạn sử dụng sau 1 thời gian thì có thể thêm một số tùy chọn vào

CREATE LOGIN TENUSER WITH PASSWORD=N'MATKHAU', DEFAULT_DATABASE=[TENDB], CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF


USE [TENDB]

CREATE USER [TENUSER] FOR LOGIN [TENUSER]

EXEC SP_ADDROLEMEMBER N'DB_OWNER', N'TENUSER'


b. Xóa database, user


USE [TENDB]

DROP USER [TENUSER]


USE [MASTER]

DROP LOGIN [TENUSER]


DROP DATABASE [TENDB]


c. Backup database

BACKUP DATABASE [TENDB]
TO DISK = N'D:\BACKUP\TENFILE.BAK'
WITH INIT, COMPRESSION


trong đó:

-INIT: ghi đè lên file nếu trùng tên

-COMPRESSION: nén file


d. Restore database

RESTORE DATABASE [TENDB] FROM  DISK = N'D:\SQL\DB.bak' WITH  FILE = 1,  MOVE N'tendb_data' TO N'D:\SQL\DB.mdf',  MOVE N'tendb_log' TO N'D:\SQL\DB.ldf',  KEEP_REPLICATION,  NOUNLOAD,  REPLACE,  STATS = 5


VD

BACKUP DATABASE [tendb] TO  DISK = N'D:\SQL\tendb.BAK' WITH NOFORMAT, NOINIT,  NAME = tendb-Full Database Backup', SKIP, NOREWIND, NOUNLOAD,  STATS = 10
GO

USE [master]

RESTORE DATABASE [tendb] FROM  DISK = N'D:\SQL\tendb.bak' WITH  FILE = 1,  NOUNLOAD,  REPLACE,  STATS = 5

GO

USE [tendb]

GO

ALTER DATABASE [tendb] MODIFY FILE (NAME=N'tendbold_db_data', NEWNAME=N'tendb_db_data')

GO

USE [tendb]

GO

ALTER DATABASE [tendb] MODIFY FILE (NAME=N'tendbold_db_log', NEWNAME=N'tendb_db_log')

GO



e. Set recovery mode

ALTER DATABASE [MODEL] SET RECOVERY FULL

ALTER DATABASE [MODEL] SET RECOVERY SIMPLE



> Database information


select * from sys.master_files

where name like '%tenbd%' or physical_name like '%tendb%'

-- cột [name] tương ứng với [logical name]

-- name, physical_name, size [Bytes], max_size [-1 unlimited], growth [Bytes], is_percent_growth [0/1]


ALTER DATABASE [tenbd] MODIFY FILE (NAME=N'tencu', NEWNAME=N'tenmoi')

-- thay đổi logical name của các file db


ALTER DATABASE [tenbd] MODIFY FILE ( NAME = N'tên', FILEGROWTH = 102400KB ) 

-- file growth 102400KB / 1024 = 100MB


ALTER DATABASE [tenbd] MODIFY FILE ( NAME = N'tên', FILEGROWTH = 20% )

-- 20%  growth


ALTER DATABASE [tenbd] MODIFY FILE ( NAME = N'tên', MAXSIZE = 512000KB )

-- max size là 512000KB / 1024 = 500MB


DBCC SHRINKDATABASE (N'tendb', 10)

DBCC SHRINKDATABASE (N'tendb')

DBCC SHRINKFILE (N'tendb' , 0, TRUNCATEONLY)


> TABLE SCRIPTS:

- Table #1: Insert - Update - Delete
- Table #2: Create - Alter - Drop

> Table #1 (Insert, Update, Delete):

a. INSERT

#1:

insert [ten_table] (tencot1, tencot2..)
values (giatri1, giatri2...)

VD:

insert  Nhavien (maso, ten, gioitinh)
values (482, N'Nguyen Van A', 0)

#2:

insert into [ten_table] (tencot1, tencot2..)
select (tencota, tencotb..)
from  [ten_table] 
where [điều kiện]


b. UPDATE

update [ten_table]
set password = 'mk_moi'
where userid = [user_id]

VD: 

update [webpages_membership]
set 
password = 'AIVOHTC1sKNgwcC1gykk4DtfQtuO9UITCjvP17jK9DlTp4gv3740WZbh5Qb+BBINbg=='
where userid = (select userid from [userprofile] where username = 'administrator')


c. DELETE

DELETE FROM <table name> WHERE <condition>

VD: 

-- delete all rows in table Users

delete from users


--delete rows where username have the second character is 'c'

delete from User 

where username like '_c%'


> Table #2: Create - Alter - Drop: 

a. Create

b. Alter

alter table

c. Drop



Truncate + Shrink database:

truncate table [ten_table]

DBCC SHRINKDATABASE ([ten_db], 10);