Sql: Structured Query Language
Sql server的组成
- 主要数据库文件:.mdf 特点:有且只有一个
- 次要数据库文件:.ndf 特点:任意个
- 日志数据库文件:.ldf 特点:至少一个
操作数据库
1 | 创建数据库:create databse 库名 |
基础语法
创建表
1 | CREATE TABLE [Student] ( |
查看所有表
exec sp_help
查看当前表
exec sp_help 表名
修改表结构
1 | -- 1,增加一列语法 |
操作表数据
1 | -- 1,完全插入数据 |
运算符
and , or ,not
sql 查询
1,符合条件语法
1
select 字段名 from 表名 [where 条件]
2,…到…之间
1
2
3
4
5and ... or
between ... and
--例句:查询23岁到25岁之间的学生
select * from student where age>=23 and age<=25
select * from student where age between 23 and 253,去重
1
select distinct 字段名 from 表名
4,排序
语法: order by + 字段名 asc升序(默认) desc降序
5,列别名 as
6,模糊查询 like
7, 联合查询 join
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15-- 1,交叉查询
select 字段名 from 表1 cross join 表2 [where 条件]
-- 2,内连接查询
select 字段名 from 表1 inner join 表2 on 联合条件 [where 条件]
--外连接
-- 3,左外连接
select 字段名 from 表1 left join 表2 on 联合条件 [where 条件]
-- 4,右外连接
select 字段名 from 表1 right join 表2 on 联合条件 [where 条件]
-- 5,全外连接
select 字段名 from 表1 full join 表2 on 联合条件 [where 条件]8,嵌套查询
1
2
3
4in() 在...范围之内的
not in() 不在...范围之内的
exists 存在
not exists 不存在9,分组 group by
系统函数
1,统计(聚合)函数
1 | -- 1,AVG 返回指定组中的平均值,空值被忽略。 |
2,日期函数
1, getDate():获取当前时间
2,Dateadd():增加时间
3,datediff(datepart,startdate,enddate)
SELECT DATEDIFF(day,’2008-12-29’,’2008-12-30’) AS DiffDate
输出:1startdate 和 enddate 参数是合法的日期表达式。
datepart 参数可以是下列的值:1
2
3
4
5
6
7
8
9
10
11
12
13
14date part |缩写
年:yy, yyyy
季度:qq, q
月:mm, m
年中的日:dy, y
日:dd, d
周:wk, ww
星期:dw, w
小时:hh
分钟:mi, n
秒:ss, s
毫秒:ms
微妙:mcs
纳秒:ns
3,数学函数
1 | abs():取绝对值 |
4,字符串函数
1 | left():左截串 |
T-Sql
声明变量语法:
1 | declare @变量名 数据类型 |
编程语句:
1 | begin...end |
视图
1.创建视图
1
2
3create view 视图名称
as
sql中查询语句2.使用视图 select * from 视图名
3.查看视图 exec sp_help
4.查看视图内容 exec sp_helptext 视图名
5.修改视图 alter view 视图名 as select * from 表名 [where条件]
6.删除视图 drop view 视图名
7.修改视图 update 视图名 set 字段名=值 [where条件]
存储过程
1 | create proc | procedure pro_name |
参考: