--使用master數據庫
use master
--創建數據庫文件
create database 數據庫名字
on
(
name=, --邏輯名稱
filename= .ndf, --數據文件物理路徑名稱
size=, --文件初始大小
maxsize= , --文件最大的大小
filegrowth= --自動增長
)
--創建數據庫日志文件
log on
(
name=, --邏輯名稱
filename= .ldf, --日志文件物理路徑名稱
size=, --文件初始大小
maxsize= , --文件最大的大小
filegrowth= --自動增長
)
go
--修改數據庫的名稱
alter database 數據庫名稱
modify name = 新名稱
--給數據庫添加一個數據文件
alter database testdb
add file
(
name=, --邏輯名稱
filename= .ndf, --數據文件物理路徑名稱
size=, --文件初始大小
maxsize= , --文件最大的大小
filegrowth= --自動增長
)
go
--給數據庫添加一個日志文件
alter database testdb
add log file
(
name=, --邏輯名稱
filename= .ldf, --日志文件物理路徑名稱
size=, --文件初始大小
maxsize= , --文件最大的大小
filegrowth= --自動增長
)
go
--刪除數據文件或日志文件
alter database testdb
remove file 數據文件邏輯名稱
go
alter database testdb
remove file 日志文件邏輯名稱
go
--修改數據文件或日志文件
alter database testdb
modify file
(
name=, --邏輯名稱
filename= .ndf, --數據文件物理路徑名稱
size=, --文件初始大小
maxsize= , --文件最大的大小
filegrowth= --自動增長
)
go
modify file
(
name=, --邏輯名稱
filename= .ldf, --日志文件物理路徑名稱
size=, --文件初始大小
maxsize= , --文件最大的大小
filegrowth= --自動增長
)
go
--分離數據庫(執行存儲過程)
exec sp_detach_db 數據庫名字
go
--附加數據庫(執行存儲過程)
exec sp_attach_db @dbname=, --附加的邏輯名稱
@filename1=, --數據文件物理路徑名稱
@filename2= --日志文件物理路徑名稱
go
--刪除數據庫
use master
go
drop database 數據庫名字
go
--數據類型
種類:
數字數據類型:int,bigint,smallint,tinyint,decimal,mumeric,float,real,money,smallmoney,bit
字符數據類型:char,varchar,nchar,nvarchar,ntext text
日期和時間:datetime,smalldatetime,date,time,datetime2,datetimeoffsef
二進制數據類型:binary,varbinary,image
其他數據類型:uniqueidentifier,xml,timestamp,sql_variant
整型:
bigint(取值范圍在(-2^63次方)到(2^63次方-1))、存儲8個字節。(不常用)
int(取值范圍在(-2^31次方)到(2^31次方-1))、存儲4個字節。
smallint(取值范圍在(-2^15次方)到2^15次方-1)、存儲2個字節。
tinyint(取值范圍在0到255)、存儲1字節。
浮點類型:
float(存儲取決與n的值)
real(存儲4個字節)
字符類型:
char 類型是固定長度
varchar 類型是可變長度
日期類型:
datetime(取值范圍在 1753年1月1日到9999年12月31日)、精確度3.33毫秒。
smalldatetime(取值范圍在 1900年1月1日到2079年6月6日)、精確度1分鍾。
其他類型:
a)用於存儲大型非Unicode字符、Unicode字符及二進制數據的固定長度數據類型和可變長度數據類型:
ntext:類型長度是可變的Unicode,最大長度為2^30次方-1個字符,存儲大小是所輸入字符個數的兩倍。
text:服務器代碼頁中長度可變的非Unicode數據,最大長度為2^31次方-1個字符,當服務器代碼頁使用雙字節字符時,存儲仍是2,147,483,647 字節。根據字符串,存儲大小可能小於2,147,483,647 個字節。
image:長度可變的二進制數據,從0到2^31次方-1個字節。
b)用來存儲Unicode字符數據集的字符數據類型(nchar 長度固定,nvarchar 長度可變)。
nchar[(n)]:n個字符的固定長度的Unicode字符數據,n值必須在1到4000之間(含)。存儲大小為兩倍n字節。
nvarchar[(n|max)]:可變長度Unicode字符數據,n值咋1到4000之間(含),max指示最大存儲大小為2^31次方-1字節。
存儲大小是所輸入字符個數的兩倍+2個字節,所輸入數據的長度可以為0個字符。
c)用來存儲二進制數據的固定長度或可變長度的Binary數據類型。
binary[(n)]:長度為n字節的固定長度二進制數據,其中n是從1到8,000的值。存儲大小為n字節。
varbinary[(n|max)]:可變長度二進制數據。n可以取從1到8,000的值。max指示最大的存儲大小為2^31字節-1字節。存儲大小為所輸入數據的實際長度+2個字節。所輸入數據的長度可以是0字節。
創建數據表:
--先使用新創建的數據庫,然后再創建表
use 數據庫名
go
--創建數據表
create table 數據表名
(
--表里的字段的定義
--語法:字段名 數據類型 [約束]
--約束可加可不加,加一個約束可以,加多個約束也可以
)
go
--創建數據表添加約束
create table 數據表名
(
--identity標識列約束:自動增長,只能在整形的列上添加該約束
--primary key主鍵約束:不能為空且值不能重復
--unique唯一約束:值唯一不能重復,但可以為空
--not null非空約束:值不能為空
--check檢查約束:可以設置檢查條件
--default默認約束:可以設置默認值
)
go
--修改表
alter table 表名
--添加列
alter table 表名
add 列名 數據類型 列的特征
--刪除表
drop table 表名
--刪除列
alter table 表名
drop column 列名
--修改用戶名
alter table 表名
alter column 列名
--添加檢查約束
alter table 表名
add constraint 約束名 約束表達式
--刪除一個約束
alter table 表名
drop constraint 約束名
約束類型:
主鍵約束(primary key constraint):主鍵列數據唯一,並且不為空,簡稱pk。
唯一約束(unique constraint):保證該列不允許出現重復值,簡稱UQ。
檢查約束(check constrait):限制列中允許的取值以及多個列之間的關系,簡稱CK。
默認約束(default constraint):設置某列的默認值,簡稱DF。
外健約束(foreign key constraint):用於在兩個表之間建立關系,需要指定主從表,簡稱FK。
添加約束語法:
alter table 表名
add constraint 約束名 約束類型 具體的約束說明
數據操縱語言(DML):
按照指定的組合、條件表達式或排序檢索已存在的數據庫中數據,或對已經存在的數據庫表進行元組的插入、刪除、修改等操作。
命令:
select 字段名 from 表名
where 當下條件
insert into 表名(字段名)
values(值1、值2、值....)
update 表名 set 字段名=值
where 當下條件
delete from 表名
where 當下條件
數據定義語言(DDL)
創建、修改或刪除數據庫中各種對象,包括表、視圖、索引等。
命令:
create table , create view ,create index、alter table , drop table , drop view , drop index
數據控制語言(DCL)
用來授予或收回訪問數據庫的某種特權、控制數據訪問的發生時間及效果、對數據庫進行監視。
命令:
grant、revoke
事務控制語言(TCL)
用來操作事務提交或回滾操作的語句。
命令:
commit、rollback
邏輯運算符:
and 邏輯語 (如果兩個布爾表達式都為true,那么就為true)。
not 邏輯非 (對任何其他布爾運算符的值取反)。
or 邏輯或 (如果兩個布爾表達式中的一個為true,那么就為true)
比較運算符
between (如果操作輸在某個范圍之內,那么就為true)。
in (如果操作數等於表達式列表中的一個,那么就為true)。
like (如果操作數與一種模式相匹配,那么就為true)。
通配符:
% (包含零個或更多字符的任意字符串)。
_(下划線) (任何單個字符)。
添加數據操作:
插入數據:
1)insert into 表名(字段1、字段n...)
values(值1、值2、值....)
2)insert into 表名
select 字段 from 新表名
直接創建沒創建的表:
3)select 字段 into 未創建過的新表名 form 表名
4)insert into 表名
values (值1),(值2),(值3)
5)insert into 表名
select 值1 union 值2 union 值3
修改數據操作:
updade 表名 set 字段名 (不帶條件)
updade 表名 set 字段名1、字段名2 where 當下條件 (帶條件)
刪除數據操作:
delete from 表名 (不帶條件)
delete from 表名 where 當下條件 (帶條件)
刪除表里的所有數據:
truncate table 表名
查詢數據操作:
--查詢所有行所有列
select * from 表名
--查詢部分行部分列
select 字段1,字段2,字段n from 表名
--查詢部分行所有列
select * from 表名
where 當下條件
--查詢部分行部分列
select 字段1,字段2,字段n from 表名
where 當下條件
--指定列查詢,並給每一列設置一個列名(相當於取一個別名)
第一種方式:
select 別名1=字段名1,別名2=字段名2,別名n=字段名n from 表名
第二種方式:
select 字段名1 as 別名1,字段名2 as 別名2,字段名n as 別名n from 表名
group by分組查詢:
第一種方式:
select 字段名1 from 表名 group by 字段名1
第二種方式:
select 字段名1 from 表名
where 當下條件
group by 字段名1
第三種方法:
select 字段名1 from 表名
group by 字段名1
having count(*)范圍
第四種方法:
select 字段名1 from 表名
where 當下條件
group by 字段名1
having count(*)范圍
order by查詢后排序:
第一種方法(降序):
select * from 表名
order by 字段名 desc
第二種方法(升序):
select * from 表名
order by 字段名 asc(asc不寫,默認的也是升序)
第三種方法(按多個不同的類型分別排序):
select * from 表名
order by 字段名1 desc(降序),字段名2 desc(降序)
top取前幾條數據:
第一種方法(比如取前5條):
select top 5 * from 表名
第二種方法(用10%):
select top 10 percent * from 表名
使用“+”符號進行多列合並並查詢
注:
1、可能有忽略了一些,但基本上很齊全。
2、本博文為原創,是個人積累的筆記。
