数据库
一个数据库包括三个文件
- 1)基本数据文件 (主数据文件) 有且只有一个 扩展名为.mdf
- 2) 辅助数据文件:自由选择 可有可无 扩展名 .ndf
- 3)日志文件:用于恢复数据库所需要的事务日志信息 至少有一个 扩张名为: .ldf
创建数据库
- create database DB1
- on primary
- name=‘逻辑名’,
- filename=‘文件的物理存放路径’,
- size=数据文件的初始大小,
- maxsize=数据文件的最大大小,
- filegrowth=文件的增长方式
修改数据库
-
修改数据库的名称
-
alter database 原数据库名
-
modify name=新数据库名
-
添加一个辅助文件(add file)
-
添加一个日志文件(add log file)
切换数据库
- use 数据库名字
删除数据库
- 通过sql语句
- drop database 数据库名
创建和删除约束
- 创建约束:
- alter table 表名
- add constraint 约束名 约束类型 具体的约束说明
- 删除约束:
- alter table 表名
- drop constraint 约束名
数据类型
- Bigint 整数类型中存储容量最大
- int (integer) 4个字节
- smallint 2个字节
- tinyint 一个字节
- Bit 是位类型 长度为一个字节
- decimal[(p[,s])]和numeric[p(,s)] 两者类型完全相同 小数类型 p确定精确的总数位 s确定了小数位 P默认为18 S默认为0
- Money 存储货币 8个字节 前4个字节代表整数 后4个字节代表小数
- Smallmoney 与money 数据类型相似 由4个字节组成
- float 8个字节
- datatime 日期和时间
- samlldataime 长度为4个字节
- Real 长度4个字节
- char 定义类型 char()
创建表
修改表
- 添加 (列)属性:
- alter table 表名
- add +属性+数据类型[(长度)][null|not null]
- 修改数据类型:
- alter table 表名
- alter column +属性 + 数据类型
- 删除属性:
- alter table 表名
- drop + column +属性
- 修改列名:
- exec sp_rename’表名.列名’,‘新列名’
- 修改表名:
- exec sp_rename’原表名’,‘新表名’
约束
- 主键约束primary key
- 唯一确定表中每一条记录的标识符
- 外键约束foreign key(需要针对两个表)
- 用于建立和加强两个表数据之间的连接
- 唯一约束 unique
- 指定一个列或多个列的值具有唯一性
- 检查约束条件 check
- 设置检查条件 以限制输入值
- 默认约束 default
- 插入操作中没有提供输入值时系统会自动加上指定值
创建和删除约束
- 创建约束
- alter table 表名
- add constraint 约束名 约束类型 具体的约束说明
- 删除约束
- alter table 表名
- drop constraint 约束名
全局变量
- 全局变量是用户事先设定好的变量 用户可以随时调用
- 用户不能自己创建全局变量
运算符
- 一元>算数>逻辑>赋值 从左向右
begin-----end
- begin
- {
- 两条以上语句
- }
- end
查询
- select 列
- from 表名
使用dinstinct去重复
使用top指定查询前几行
使用别名来查询
使用计算列
where条件查询
between —and–
- 查询在一个范围内
in
通配符
- % 替代0个或多个字符
- _ 仅替代一个字符
- [] 代表指定范围内的单个字符 []中可以是单个字符(如[ansnd]) 也可以是字符范围(如[a-f])
- [^] 代表不在范围内的单个字符 [^] 中可以是单个字符 也可以是字符范围
涉及null的查询
聚合函数
- sum(<列名>)
- avg(<列名>)
- max(<列名>)
- min(<列名>)
- count(<列名>)
- count(*<列名>) 会将空值计算进去 其他函数均会忽略null
数据分组 group by
- having紧跟在group by后 having 可接聚合函数
order by
函数依赖
关系
- 1.描述实体及其属性 实体间的联系
- 2.它是一张二维表
- 3.是所涉及属性的笛卡尔积的一个子集
关系模式
- 学生(学号,姓名,性别,年龄,系)
关系数据库
- 基于关系模型的数据库,利用关系模型来描述现实世界 从形式上看,它由一组关系组成
关系模式的形式化定义
- R(U,D,DOM,F)
- R:关系名(表名)
- U:组成该关系的属性集合(列名)
- D:属性组U中属性所来自的域(数据类型 eg:char() varchar())
- DOM:属性向域的集合
- F:属性间数据的依赖关系集合(约束类型 eg:check unquie)
什么是数据依赖???
- 是通过一个关系中属性间值的相等与否体现出来的数据间的相互关系
- 是实现世界属性间相互联系的抽象
- 是数据内在的性质
- 是语义的体现
数据依赖的主要类型??
- 函数依赖
- 多值依赖
- 连接依赖
平凡函数依赖和非平凡函数依赖
- 如果X->Y,但Y不包含于x,则称X->Y, 非平凡函数依赖
- 如果X->Y,但Y包含于x,则称X->Y, 平凡函数依赖
完全函数依赖与部分函数依赖
传递函数依赖
- 在关系模式中,如果X->Y,Y->Z 则X->Z