数据库总结
SQLServer数据库:
一、体系结构:
文件--服务--界面
文件——.mdf,.ldf,.ndf
服务——MSSqlserver,别名(实例名)
界面——SQLServer和Windows身份验证。如何从windows身份验证变为Sqlserver验证。
二、创建
建库create database、改库 alter database、删除 drop database
建表create table、改表alter table、删表drop table
(一)库与表
库:文件位置、初始大小、增长方式、次数据文件
表:列的类型。
int,smallint,bigint
float,real,decimal,numeric
bit
char,varchar,text
binary,image
datetime,smalldatetime
(二)约束:
主键:建立?唯一、不空、不重、排序、组合主键 primary key
外键:主表与从表,用主表约束从表。 references 表名(列名)
外键建在从表上。
建立方式:两种。
级联更新与级联删除?
非空:必须要填。空与空字符串不一样。 not null
自增:类型:整理。起始值和步长。identity
方法:列的属性
任何试图向自增列中添加数据的行为都错误。
检查:对填入的数据做进一步的规则检查。check(表达式)
方法:在列上右击,选择check约束
唯一:内容不能重,可以为空。一表中可以有多个唯一约束。 unique。
方法:在列上右击,选择“索引/键”
默认值:如果这一列不填内容,将用默认值填充。 default
三、操作
(一)SQL语句
1.增
insert into 表名[(列,列,列...)] values (值,值,值...)
2.删
delete from 表名[ where 条件]
3.改
update 表名 set 列=值,列=值,列=值.. [where 条件]
4.查
简单查询:
select * from 表
select top n *|列 from 表
投影:
select 列名,列名,... from 表
select distinct 列名 from 表
筛选:where子句
1.等值与不等值。
where 列=值 = != <> > < >= <=
2.范围
where between ... and...
where 列 in(值,值,值)
3.多条件查询
and,or
where 条件1 and 条件2 or 条件3
4.模糊查询:like % _ []
排序:order by 子句
order by 列 ASC|DESC,列 ASC|DESC,....
分组:group by子句(五个统计函数count(),max(),min(),sum(),avg())
group by 列 having 条件(带统计函数)
注意:一旦使用分组,select后面只能跟两样东西:1.group by 后的列名。2.统计函数。
注意:一般来说我们使用分组的目的是为了统计。
复杂查询:
连接查询:把两个表横向接起来。
原理:选求笛卡尔积,再根据两个表的相关列进行筛选。
语法:
1.select * from 表1,表2...表n where 联接的条件
2.select * from 表1 join 表2 on 联接的条件 join 表3 on 联接的条件。 3.左连,右连,全连
联合查询
原理:求并集。
union
把两个查询用union连起来。要求两查询的列要一致。
嵌套查询(子查询)
原理:分层查询
在父查询里再包括子查询。它的分方法:等量代换。
(二)SQL函数
1.数学类:ceiling(),floor(),round()
2.日期时间类:year(),month(),day(),getdate(),datediff(),datepart(),dateadd()
3.字符串:len(),left(),right(),upper(),lower(),
4.转换函数:cast( 值 as 类型 )
四、高级的内容:
索引
簇索引,非簇索引。
索引的优劣势:
语法:create index ...on 表(列)
手动建索引:与建唯一约束非常相似
视图
视图就一段查询语句的查询结果。
视图本身并不装有数据,视图的结果是从相关的表中查出来的。
视图可以表或其它的视图中建立起来。
视图的优劣势:查询方便,增删改不放便。
语法:create view ...
手动建视图:
存储过程
一段可能带有一定逻辑的SQL语句。
它里面可以包含复杂的程序逻辑。
语法: 创建:create proc 存储过程名 @参数,,, as
调用:存储过程名 参数
触发器
也是一段带有逻辑SQL语句。
它不需要用代码去调用,当相应的表执行相关操作时,会自动触发触发器的程序。
语法:create trigger ...
事务
一段完整的工作,需要一次性完整执行。
四个特点:ACID 原子性,一致性,隔离性,持久性
begin tran——开始事务
rollback——回滚事务
commit——提交事务