T_SQL數據庫命令
1.創建數據庫:
CREATE DATABASE new_db2(數據庫名字)
ON PRIMARY
(
NAME='new.mdf',(邏輯名稱)
FILENAME='e:\new.mdf',(數據庫存儲路徑)
SIZE=5mb,(數據庫容量)
MAXSIZE=50mb,(最大存儲容量)
FILEGROWTH=10%(設置增長大小)
)
2.更改數據庫的容量:
ALTER DATABASE new_db
MODIFY FILE
(
NAME='new_db',
SIZE=17mb
)
3.收縮數據庫操作:
DBCC SHRINKDATABASE('new_db',1)(數據庫名稱,數據庫收縮比率)
4.更改數據庫名字:
EXEC SP_RENAMEDB 'new_db2' , 'testname'
數據庫存儲方式 原數據庫名稱 現在數據庫名稱
5.刪除數據庫:
DROP DATABASE testname
刪除數據庫
|
數據庫
|
數據庫名字
|
6.創建表:
create table test_name
(
學號 int primary key identity,
名稱 char(6) not null,
專業方向 varchar(10) not null,
系部代碼 char(2) not null,
備註 varchar(50)
)
Int
|
Primary key
|
Identity
|
整形
|
主鍵
|
激增數據庫
|
7.查看錶:
EXEC sp_help test_name
8.修改表名:
exec sp_rename 'test_name','test_table'
Exec sp_rename
|
Test_name
|
Test_table
|
系統存儲
|
舊錶名稱
|
新表名稱
|
9.從命名列:
exec sp_rename 'test_table.備註','其他','column'
Exec sp_rename
|
Test_table.備註
|
其它
|
Column
|
系統存儲
|
修改列
|
添加新列
|
|
10.添加新列:
- alter table [table_name] add [new_column] varchar(33)
§ alter table test_table
§ add 新列 char(10)
Alter
|
Table test_table
|
|
表名
|
Add 新列
|
Char(10)
|
添加列名稱
|
字符類型
|
11. 更改列的數據類型:
- alter table [table_name] (表名)
- alter column [column_name] [data_type]
[column_name]
|
[data_type]
|
寫入列名稱
|
新的類型
|
alter table test_table
alter column 新列 int
12. 刪除列:
- alter table [table_name] (表名稱)
- drop column [column_name] (列名稱)
運行成功的T_SQL語句
§ alter table test_table
§ drop column 新列
13. 刪除表:
drop table table_name (表名)
14. 刪除表的所有數據:
- Truncate table [table_name]
15. 創建主鍵約束
- alter table [table_name](表名稱)
add constraint pk
primary key clustered (列名)(要做主鍵的id)
16. 創建外建約束
- alter table [table_name](第二個別名表)
add constraint wz (外鍵名稱)
foreign key (列名)
references 表名(列名)(列名錶示做主鍵還是外鍵的名稱)
成功的列子:
--創建主鍵約束
alter table t1
add constraint pk
primary key clustered (id)
--創建外建約束
alter table t2
add constraint wz
foreign key (id)
references t1(id)
2011-05-01學習T-sql語句
1. 建表代碼:
create table 系部
(
系部代碼 char(6) not null primary key,
系部名稱 varchar(30) not null ,
系主任 char(8)
)
go
create table 專業
(
專業代碼 char(4) not null primary key,
專業名稱 varchar(20) not null,
系部代碼 char(6) constraint wz11 references 系部(系部代碼)
)
go
create table 班級
(
班級代碼 char(9) not null primary key ,
班級名稱 varchar(20) ,
專業代碼 char(4) constraint wz1 references 專業(專業代碼),
系部代碼 char(6) constraint wz2 references 系部(系部代碼),
備註 varchar(50)
)
go
create table 學生
(
學號 char(12) not null primary key ,
姓名 char(8),
性別 char(2),
出生日期 datetime,
入學時間 datetime,
班級代碼 char(9) constraint wz3 references 班級(班級代碼),
系部代碼 char(6) constraint wz4 references 系部(系部代碼),
專業代碼 char(4) constraint wz5 references 專業(專業代碼),
高考分數 int
)
2. 最簡單的insert 語句
INSERT [into] table_name (column_list) VALUES(data_values)
[into]是一個可選的關鍵字,可以將它用在insert和目標表之間。
table_name 是將要添加數據的表的名稱
(column_list) 是要添加數據的字段名稱或字段列表,必須用括寫將column_list 括起來,並用逗號進行分隔。若沒有指字段列表,則指字全部字段。
下面是插入數據T-sql、成功運行代碼:
INSERT into test_table VALUES('xm','計算機','01','沒有')
INSERT into test_table VALUES('ql','計算機','03','沒有')
選擇插入的T-SQL語句:
INSERT into test_table (名稱,專業方向,系部代碼)
VALUES('張三','數學','04')
省略values 的insert 語句
在T-SQL 語言中,有一種簡單的插入多行的方法。這種方法使用select 語句查詢出的結果代替values 子句.這種語法結構如下:
INSERT [into] table_name (column_name) SELECT [column_name] FROM table_name where [search_conditions]
[shere search] 查詢條件。
INSERT表和SELECT表的結果集的列數,數據類型必須一致。
[search_conditions]查詢條件
INSERT [into] table_name (column_name)
SELECT [column_name] FROM table_name where [search_conditions
列子:
SELECT名稱,專業方向,系部代碼 FROM test_table(這句T—sql語句是查詢出表test_table表中的對應字段的數據)
INSERT test_table(名稱,專業方向,系部代碼)這句代碼的意思是把上面T-sql語句查詢出的結果插入到test_table表中。
SELECT名稱,專業方向,系部代碼 FROM test_table
INSERT test_table(名稱,專業方向,系部代碼)
SELECT名稱,專業方向,系部代碼 FROM test_table
上面兩句合起來的意思就是第二條語句查詢出的結果插入到第一條語句中去。
更新數據:
UPDATE test_table SET 系部代碼='01' 所有的西部代碼都會成爲01
UPDATE test_table SET 專業方向='化學' WHERE 專業方向='數學'
上面T-sql語句主要是把表test_table表中的專業方向=‘數學’更新成專業方向=‘化學’
3.刪除數據庫中的數據:
數據的刪除
隨着系統的運行,表中可能產生一些無用的數據,這些數據不僅佔用空間,而且還影響查詢的速度。刪除數據可以使用detelt語句
DELETE table_name WHERE [search_conditions]
table_name 是要從其中刪除數據的表中名稱。
WHERE 指定用於限制冊除行數據的條件。如果沒有提供 where子
句,則delete 刪除表中的所有行。
[search_conditions]指定刪除行的限定條件。
下面是例子:
4.查詢語句:
輸出表中的所有列
將表中的所有字段都在”結果”窗口列出來,可以有兩種方法:一種是將所有字段名在SELECT關鍵字後列出來;另一種是在SELECT語句後使用一個*
SELECT*FROM table_name
2、輸出表中部分列
列出表中的部分字段,可以在SELECT 關鍵字後依次把字段名寫出來,之間用逗號隔開,字段的順序可根據需要來指定,
列出表中的部分字段,可以在SELECT 關鍵字後依次把字段名寫出來,之間用逗號隔開,字段的順序可根據需要來指定,
SELECT A,B,C FROM table_name
3、選擇表中的若干記錄
兩個不相同的記錄,但在某字段上是相同的如果
要去掉結果集中重複的行,可以在字段列表前面加
個DISTINCT關鍵字。
SELECT DISTINCT 列名 FROM table_name
4、限制返回行數
如果一個表中有上億條記錄,而用戶只想看前n條,
這就沒有必要顯視全部的記錄。如果要限定返回的行數,可
以在字段列表前使用TOP n關鍵字,可以返回結果的前n條記
錄信息。
SELECT TOP n FROM table_name
下面是例子:
SELECT * FROM test_table
查看一個整體表
SELECT學號,名稱,專業方向,系部代碼,其他 FROM test_table
查詢表中的部分字段的信息
SELECT名稱,學號,其他FROM test_table
只查詢表中的名稱、學號、其他信息
SELECT DISTINCT 系部代碼FROM test_table
查詢系部代碼
SELECT TOP 102 * FROM test_table
查詢test_table表中的多小行
SELECT * FROM test_table WHERE 學號=1034
查詢表test_table表中學號等於1034的員工號
SELECT * FROM test_table WHERE 學號 BETWEEN 1034 AND 1036
查詢學號1034到1036之間的信息
SELECT * FROM test_table WHERE 學號 in(1034,1035,1036)
查詢表中學號在(1034,1035,1036)
SELECT * FROM test_table WHERE 學號 NOT in(1034,1035,1036)
查詢出結構不包括學號(1034,1035,1036)之間
SELECT * FROM test_table WHERE 名稱 like 'q_'
查找表中字段’q_’所有字符
5.對查詢結果排序:
SELECT系部代碼 FROM st_table
group by 系部代碼
SELECT專業方向 FROM st_table
group by 專業方向 having 專業方向<>'動漫'
可以看到查詢結構沒有動漫。
8、對查詢的結果排序
可以使用ORDER BY 對查詢結果按照一個或多個屬性進行升序(ASC)
或降序(DESC)排序,默認爲升序。
ORDER BY {列名[ASC|DESC] [,...n] }
SELECT * FROM st_table ORDER BY 高考分數ASC(默認升序)
SELECT * FROM st_table ORDER BY 高考分數DESC(分數是降序)