临时表
临时表,断开连接,这个表自动删除,主要用于客户有特殊需求的时候,用临时表来存储和记录。
当前临时表
语法:careat table #表名
全局临时表:
语法:careat table ##表名
默认值
在设计表的时候,某些字段,经常会重复,比如职员字段 我们就可以在 字段属性里面 给他设置默认值,这样新增的时候,默认值会自动被带出,减少创建数据的复杂性
标识字段
字段表示唯一性,编号列,不能相同,设计表的时候,编号不用手动设置值,自动生成编号,
用法:找到表中的字段,列属性,表设计器,标识属性 选择是;自动递增的,比如编号,系统自动递增编号
二开俩种形式:报表和单据
数据库规则:
语法:create rule 规则名称
as 取值范围
举例:create rule score
as 取值范围
@value between 0 and 100
解除规则:
语法:drop rule 规则名称
如果该规则已经绑定了某一个表或者列,需要先解除这个表或者这个列的规则。
drop rule 规则名称
sp_unbindrule ‘成绩信息.分数’
数据库 索引
创建索引:
create
[unique][clustered][nonclustered]
INDEX index_name
on
table_name | view_name
(column_name [1,2,3,4,])
“unique” 唯一性索引
“clustered” 聚集性索引
“nonclustered” 非聚集性索引
聚集性和非聚集性 索引的区别:
一个表中可以包含 :一个聚集索引,包含多个非聚集索引
聚集索引:可以按范围来查找
非聚集索引:存放每一条记录的具体指针
INDEX 后面的是具体的索引名称
on是指定在哪样的一个 数据表上或者这哪样一个视图上创建索引。
存储过程
创建存储过程,
create procedure 存储过程名
@参数名 [ 类型 ] , @参数名 [ 类型 ]
as
begin
执行的sql语句
end
执行存储过程
exec 存储过程名
调用存储过程
1.comment命令下的基本语法:exec 存储过程名 参数名
2.sql环境下基本语法:call 存储过程名 参数名
3.pl / sql 环境下,基本语法:begin 存储过程名 参数名 end;
触发器
删除触发器
drop tigger 触发器名
游标
declare
声明游标:cursor 游标名 is 查询结果集
begin
打开游标: open 游标名
从游标中获取数据:fetch 游标名 into 变量
取到数据: 游标名 % found
没有数据:游标名 % not found
关闭游标:close 游标名
end;
语法
sql server:
inner join 关键字
select 要返回的列的值 form 主表 inner join 子表 on 主表主键 = 子表外键
举例:
SELECT s.name, gread.cname,gread.score
FROM s INNER JOIN gread
ON s.sno=gread.sno
ORDER BY gread.score; --按子表分数排序
sql查询条件
SELECT column_name, aggregate_function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name
HAVING aggregate_function(column_name) operator value;
where 和having之后都是筛选条件,但是有区别的:
1.where在group by前, having在group by 之后
2.聚合函数(avg、sum、max、min、count),不能作为条件放在where之后,但可以放在having之后
三张表联合查询
select * from 表1 join 表2 on 表1.字段=表2.字段 join 表3 on 表1.字段=表3.字段
EXISTS 用法:
EXISTS 运算符用于判断查询子句是否有记录,如果有一条或多条记录存在返回 True,否则返回 False。
SELECT column_name(s)
FROM table_name
WHERE EXISTS
(SELECT column_name FROM table_name WHERE condition);
EXISTS 可以与 NOT 一同使用,查找出不符合查询语句的记录
SELECT column_name(s)
FROM table_name
WHERE not EXISTS
(SELECT column_name FROM table_name WHERE condition);