資料庫程式碼總結
有關資料庫的程式碼內容
建立資料庫:
CREATE DATABASE 教務管理系統
On
‘ 資料庫名稱
‘儲存位置
‘初始大小
‘最大的值(預設是沒有最大值)
‘檔案增長的速率或大小
LOG ON
(
NAME=教務管理系統_LOG,
FILENAME='E:\教務管理系統_LOG.ldf',
SIZE=2MB
MAXSIZE=10MB
FILEGROWTH=1MB
)
查詢資料庫的狀態:
Sp_helpdb
查詢指定資料庫的狀態:
Select DATABASEPROPERTYEX('教務管理系統','Recovery') '(DATABASEPROPERTYEX)是一個函式
修改資料庫(名稱)
ALTER DATABASE 學校教務管理系統 MODIFY NAME=教務管理系統
刪除資料庫
PS:刪除注意名稱和系統自帶名稱重名
DROP DATABASE 教務管理系統
有關表的內容
建立表:
CREATE TABLE 表名
(
員工編號 int IDENTITY,
員工姓名 nvarchar(10) null,
....
)
建立臨時表:
create table #表名 ( ID int not null, name nvarchar(10) null, ... )
查詢臨時表
SELECT *FROM #表名
修改表名
Ecec sp_rename ‘員工資訊_1’,‘新員工資訊’
新增列
alter table 表名
add 新列名 int null
修改表中列的資訊:
alter table 表名
alter Column 列名 int(或改為smallint) null
刪除表中的列
alter table 表名
drop column 列名
建立規則:—如考試分數只能在100分以內
create rule 規則名
as
@value 式子(between 0 and 100)
規則繫結到指定表的列:
create rule 規則名 as @value 式子(between 0 and 100) sp_bindrule 規則名,'表名.列名'
接觸和刪除規則:
(刪除時,先解除資料中規則的繫結)
create rule 規則名
as
@value between 0 and 100 ---規則內容
sp_bindrule 規則名,‘表名.列名’ ----繫結規則
sp_unbindrule '表名.列名' ----解除繫結
drop rule 規則名 -----刪除規則
建立檢視
create view 檢視名
as
select a.姓名,a.性別,a.民族,a.家庭住址,B.班級名
from 學生資訊 a,班級資訊 B
where a.所屬班級=B.班級編號(兩個列聯絡)
修改和刪除檢視
alter view 檢視名
as
Select a.學號,a.姓名,b.班級名,c.姓名 as 輔導員 ‘ 多個姓名出現用as調整一下
From 學生資訊 a,join 班級資訊 b
On a.所屬班級=b.班級編號
Join 輔導員資訊 c
On c.輔導員資訊=b.輔導員
刪除檢視
DROP VIEW V_studentInfo
通過檢視修改資料:(新增資訊)
Select * from v_stu
Insert into v_stu
Values('2009101005','李菲','女','1986')
建立索引
create nonclustered index 索引名
on 表名(列名)
刪除索引
Drop index 表名.索引名(代表著一個列名)
建立架構
Create schema 架構名 AUTHORIZATION teacher ‘teacher 為所有者
查詢語句
-
select 列名 from 表名 where 條件
-
select 列名as新列名 from 表名 where 條件
-
select distinct 列名 from 表名 ----消除相同資訊
- select * from 表名 where 資料 LIKE ‘資料中含有的字%’ (萬用字元)
-
select 列名 from 表名 where 條件 and 條件 (兩個條件查詢)
-
select 列名 from 表名 where 條件 or 條件 (符合一個條件就OK)
-
select 列名 from 表名 where 條件 and 條件 order by 列名 ASE(升序)【DESC(降序)】
-
select AVG(列名) as 新列名 from 表名 where 條件 —(avg沒有列名)
-
select 列名 from 表名 where 條件 GROUP BY 列名 (對條件進行分組)
-
select 列名 from 表名 where 條件 GROUP BY rollup列名
- select 列名 form 表名 GROUP BY 列名,列名 (對兩個列名進行分組)
-
select MAX(列名) from 表名 where 條件 —(最大值,也可求小值,平均值)
-
select top 3 【percent百分比/with ties 資料相同的都顯示】列名 from 表名 where 條件 —(得出前三名的資訊)
HAVING 語句
找到平均分>=90分以上的資料
插入資訊(單個表中)
在本資料庫環境下新建查詢
-
INSERT INTO 表名 VALUES(’資訊’,’資訊’)
‘按順序填入資訊,注意不能為空的資料必須寫
-
INSERT INTO 表名(列名)VALUES (’資訊’,’資訊’) 指定資訊插入 '插入的資訊為列名的順序
-
select * from 表名 where 條件(刪選條件) 將一個表刪選後的資訊插入到另外一個表中 INSERT 被插入表名
-
select * into #臨時表名 將資料刪選後插入到臨時表中 from 表名 where 條件
update語句
按照條件查詢到的列名中按照修改內容修改資訊
- select 列名 from 表名 update 表名 set 修改內容,修改內容 where 條件
- select 列名 from 表名1 update 表名1 set 修改條件 from 表名1 join 表名2 on 兩表之間相關的列名 where 條件
COMPUTE語句
- select 列名 from 表名 where 條件 compute sum(列名),avg(列名)
在where語句中運用運算子
- select 列名 from 表名 where 考試編號=‘0802’ AND (分數 between 90 and 95)【分數%5=0/分數 in(80,90,87)】 (對分數進行約束)
建立表的基本連線
- select 列名 from 表名 where 表A.列名=表B.列名(相同聯絡的列名)
內連線:條件全部符合顯示資料
select 列名 from 表名A inner jion 表名 B on 表A.列名=表B.列名 where
外連線:左右外連線,分主從表(條件不需要都符合) 左外連線:
select 列名 from 表名A LEFT OUTER jion 表名 B on 表A.列名=表B.列名 where
右外連線:RIGHT OUTER join
全連線: FULL OUTER join 交叉連線: CROSS JOIN
聯合查詢:
UNION
語句:
IF語句
IF 布林表示式(true或false)
BEGIN
語句塊
END
else
語句塊
If
BEGIN
If
…
ELSE IF
…
ELSE IF
…
END
ELSE
…
case語句
case 列名
when '資訊' then '資訊'
when '經理' then '高階職稱'
else '其他職稱'
end
while語句
While 條件
BEGIN
…
…
END
儲存過程
建立儲存過程
Create procedure 過程名
AS
查詢語句
呼叫儲存過程
Exec 過程名 條件
更改儲存過程
create proc 過程名
as
update 表名 set 修改的內容 where 條件
修改儲存過程
ALTER procedure 過程名
as
select 列名 from 表名 where 條件
刪除儲存過程
drop proc 過程名