数据库相关

范式

范式是为了降低数据库的冗余度的。
1NF:属性值不能再分,即属性项不能是属性组合:比如集合,数组,记录等非原子数据项。
2NF:是INF,关系模式R中每一个非主属性完全函数依赖于R的主键。所谓完全依赖是指不能存在仅依赖主关键字一部分的属性,如果存在,那么这个属性和主关键字的这一部分应该分离出来形成一个新的实体,新实体与原实体之间是一对多的关系。
3NF:是2NF,关系模式R中的每个非主属性都不传递依赖于R的主键。
BCNF:是3NF,关系模式R中每个属性(包括主属性的子集)都不传递依赖于R的主键。
4NF:如果存在多值依赖X->->Y,X必是R的超键
5NF,又称完美范式

事务

数据库事务是指作为单个逻辑工作单元执行的一系列操作。
原子性:这些操作要么都做,要么都不做,是一个不可分割的工作单位。
一致性:事务的运行并不改变数据库中数据的一致性
独立性:两个以上的事务不会出现交错执行的状态。
持久性:事务运行成功之后,对系统的更新是永久的,不会无缘无故的回滚。

游标:通过判断全局变量@@FETCH_STATUS可以判断定位结果集的行,通常这个变量不等于0表示出错或者到了最后。
触发器:触发器分为事前触发和事后触发,语句级触发器可以在语句执行前后执行,行级触发器在触发器所影响的每一行触发一次。

索引

索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息。索引分为聚簇索引和非聚簇索引两种,聚簇索引 是按照数据存放的物理位置为顺序的,而非聚簇索引就不一样了;聚簇索引能提高多行检索的速度(范围查询),而非聚簇索引对于单行的检索很快。

sql注入

sql注入式攻击,就是攻击者把sql命令插入到web表单的输入域或页面请求的查询字符串中,欺骗服务器执行恶意的sql命令。
防范sql注入:替换单引号,删除用户输入内容中的所有连接符,检查用户输入的合法性。

sql语句

1.找出表p中num最小的数

select * from p where num<= all(select num from p)
select * from p where num=(select min(num) from p)
select top 1 num from p order by num

2.选择表p中num重复的记录

select * from p
where num in (select num from p group by num having (count(num)>1))

3.复制表

--只复制表结构
select * into B from A where 1=0
create table B like A;
-- 复制表数据
select * into B from A

4.在sql sever中创建临时表

--临时表前面加#
create table #Temp(字段1,类型1...)

5.选择一个表的第5-7条记录

select top 7 userid from T where userid>ANY (select top 4 userid from T order by userid) order by userid

标准sql

http://blog.csdn.net/xiaomuworld/article/details/23951747

having 和 where

在查询过程中聚合语句(sum,min,max,avg,count)要比having子句优先执行.而where子句在查询过程中执行优先级别优先于聚合语句(sum,min,max,avg,count)
对分组数据再次判断时要用having。如果不用这些关系就不存在使用having。直接使用where就行了。
当你指定 GROUP BY region 时, 属于同一个region(地区)的一组数据将只能返回一行值.
也就是说,表中所有除region(地区)外的字段,只能通过 SUM, COUNT等聚合函数运算后返回一个值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值