数据库总结

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——提交事务

原文地址:https://www.cnblogs.com/981971554nb/p/4309640.html