您的位置:首页 > 数据库

SQL 基础复习

2011-11-02 19:21 295 查看
可能有遗漏的部分,只是找了一下常用的、基础的吧!(都是老师指导有方!)

一、简单查询

1、查询所有数据,查询部分列数据,列别名 SELECT * FROM Stutb SELECT Column1 as 'ID','Topic'=Column2,Column3 FORM Stutb

2、查询不重复的数据, SELECT DISTINCT SID,Column2 FROM Stutb

3、查询前n行数据 SELECT TOP n PERCENT Column1,Column2 FROM Stutb

4、过滤行 (AND/OR/NOT)(NOT BETWEEN AND/BETWEEN ...AND...)

(LIKE'%'/'_'/'[0-9]')

(IS NULL/IS NOT NULL)

(IN(Values1,Values2,Values3))

运算符:比较运算符、逻辑运算符、范围运算符、列表运算符、模式匹配符、空值判断符

SELECT Column1,Column2 FROM Stutb WHERE ...

5、排序

SELECT Column1,Column2,Column3 FROM Stutb

ORDER BY Column1 asc/desc,Column2 asc/desc

二、函数

1、字符串函数:substring(expression,start,length)、 str(float_expression,[length,[decimal]])

2、日期函数:getdate()、dateadd(datepart,number,date)、 Datediff(datepart,date1,date2)、 Year(date)、Month(date)、Day(date)

3、数学函数:round(numeric_exp,length)

4、转换函数:convert(datatype [(length)],expression[,style])

5、次序函数:row_number()、Rank()、dense_rank()//排名

6、Isnull函数:isnull(Column1,Values1)

7、集合函数:min(Column1),max,sum,avg,count

三、分组

分组过滤

SELECT SID,Name,COUNT(*) FROM Stutb WHERE... GROUP BY SID,Name HAVING...

四、连接

1、内连接

SELECT A.Column1,B.Column2 FROM Stutb a [INNER] JOIN Coursetb b ON A.SID=B.SID

2、外连接:左外连接、右外连接、全外连接

SELECT A.Column1,B.Column2 FROM Stutb a left|right|full [OUTER] JOIN Coursetb b on a.sid=b.sid

五、子查询

[not] in //多值

[not] exists //是否存在 比较运算符引出的子查询 //单值(>、<、=)

SELECT Column1,Column2 FROM Stutb WHERE SID IN(SELECT SID FROM Coursetb)

SELECT Column1,Column2 FROM Stutb WHERE EXISTS(SELECT SID FROM Coursetb)

六、建库建表

1、建库 CREATE DATABASE StuDB (*.mdf/*.ldf) /DROPDATABASE StuDB

2、建表 CREATE TABLE StuTB /DROPTABLE StuTB

( Column1 ColumnType (size) null/not null Primary Key check(),

Column2 ColumnType null/not null Unique ,

Column3 ColumnType null/not null Default 10,

Column4 ColumnType Foreign Key ID References CourseTb (CID)

)

ALTER TABLE Stutb Add

ALTER TABLE Stutb Alter Column

ALTER TABLE Stutb Drop Column

3、操作表数据

INSERT [INTO] StuTB (Column1,Column2,Column3) VALUES(Values1,Values2, Values3)

注意:自动增长列不应在列表中

UPDATE StuTB Set Column1=Values1,Column2=Values2 WHERE SID=id

DELETE FROM StuTB WHERE SID=id

七、数据完整性

constraint

references

1、Primary key 主键

2、Foreign key 外键 REFERENCES 表名(列名)

3、Unique 唯一约束

4、Check 检查约束

5、Default 默认值约束

八、视图

CREATE VIEW View_Name AS SELECT * FROM Stutb

九、索引(簇索引/非簇索引)

CREATE INDEX Index_Name ON Stutb (Column1,Column2)(为非簇索引,主键为簇索引)

十、存储过程

CREATE PROC GetInfor

@SID char(4),

@SName char(20),

@SAge int output

AS SELECT * FROM Stutb //return 数值(返回值)

DECLARE @Age int

EXEC GetInfor @sid,@sname,output @sage

十一、事务

四个特性:

1. 原子性(Atomicity)

2. 一致性(Consitency)

3. 隔离性(Isolation)

4.永久性(Durability)

begin transation

commit transaction

rollback transaction

save transaction

十二、触发器

create trigger trigger_name

on {table | view}

[with encryption]

{ for | after | instead of}

{[insert][,][update][,][delete]}

as

{ sql_statement

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: