优化MySchool数据库设计总结_myschool数据库设计
优化MySchool数据库设计总结由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“myschool数据库设计”。
优化MySchool数据库设计总结
第一章 :数据库设计
1,什么是数据库设计
数据库设计就是将数据库中的数据实体以及这些数据实体之间的光系,进行规划和结构化的过程。
2.数据库的设计步骤
(1)收集信息
(2)标识实体
(3)标识每个实体需要存储的详细信息
(4)标识实体之间的关系 3.绘制E-R图
实体,属性,联系,映射基数: 一对一 一对多 多对一 多对多
实体关系图 矩形表示实体集
椭圆形表示属性
菱形表示联系集
直线用来连接属性和实体集,也用来连接实体集和联系集
4.绘制数据库模型图
(1),使用pdm工具新建一个数据库模型图
(2),添加实体
(3),添加数据列及相应的属性
(4),添加实体之间的映射关系
5.规范数据库设计三大范式:(1),第一范式
(确保每列的原子性,都是不可再分的最小数据单元)
(2),第二范式
(确保表中的每列都和主键相关,并且除了主键以外其他列都依赖该主键)
(3),第三范式
(确保每列都和主键直接相关,而不是间接相关)
第二章:数据库的实现
1:
使用SQL语句创建和删除数据库
If exists(select * from sysodatabases where name=’ 数据库名’)Drop database数据库名
Create database 数据库名
On primary
(name =’
’
Filename=’
’ Size= Maxsize= Filegrowth=)Log on(name=’
’ Filename=’
‘ Size= Filegrowth=)Go 1.2 :删除数据库
Drop database 数据库名
2:
使用SQL语句创建和删除表
If exists(select * from sysobjects where name=’表名’)表名
Create table 表名
(列名 属性 非空 主键 自动增长)Go 2.2删除表 Drop table 表名
3:
使用SQL语句创建和删除约束
All table 表名
Add constraint 约束名 约束类型 具体的约束说明 1,主键约束(primary key 列名)2,非空约束(not null)3,唯一约束(unique 列名)4,检查约束(check 列名)5,默认约束(default 列名)6,外键约束(foreign key 列名)
3.2:删除约束
Alter table 表名 rop constraint 约束名
第三章:SQL编程
1.变量
1.1 局部变量声明
Declare 变量名(前面加一@符号)类型 Set.赋值变量指定的数据常量 Select.赋值一般从表中查询数据 1.2 全局变量系统自带
2.输出语句
print :输出局部变量和字符串,必须是字符串类型。
Select:一般使用在查询输出。3.数据类型转换
Cast(表达式 as 数据类型)Convert(数据类型[(长度)],表达式[,样式])Cast()和convert()函数都可以将某种数据类型的表达式显示的转换为另一种数据类型,但是convert()函数可以通过第三个参数指定转化后的字符样式。不同的样式显示格式不同。4.逻辑控制语句
1,Begin –end 相当我们C#语言的大括号 2.if-else条件语句根据条件是否成立来确定程序的执行方向,需要与begin-end结合使用。
3.while.循环语句更具条件重复执行,一般在事情要多次执行的时候使用,break跳出循环,contiune跳过contiune后面语句,回到while第一条语句,准备下次循环。
语法: While(条件)Begin 语句块 [break,continue] End 4.case多分支语句与C#开关结构类似 语法: Case When 条件1 then 结果1 When 条件2 then 结果 2 Else 其他结果 End 第四章 :高级查询
1.子查询
表连接查询可以代替所有的子查询,但是子查询不可以代替所有的表查询。2.in和not in子查询
使用in关键字可以使主查询匹配子查询返回多个单列值
使用not in查询取in查询相反的结果 3.exists 和not exists子查询
Exists关键字是检测子查询语句,如果子查询结果非空返回真,否则返回假。
使用Not exists 查询取exists查询相反结果。
第六章:事务,视图和索引 1.事务
事务是一种机制,一个操作序列,它包含了一组数据库操作命令,并且把所有的命令作为一个整体一起向系统提交或撤销操作请求,即这一组数据要么都执行要么都不执行。
事务四大属性 1.原子性
(事务是一个完整的操作,事务的个元素是不可在分的)
2.一致性
(当事务完成时,数据必须处于一致状态。)3.隔离性
(对数据进行操作时所有的并发事务是彼此隔离的)4.持久性
(事务成功完成后,它对于数据库的改变是永久性的。)执行事务语法
Begin transaction(标记事务起始点)Commit transaction(提交事物)Rall back transaction(回滚事务)2.视图
视图是另一种查看数据库一个表和多个表的方法,它是一种虚拟表,可以保证数据库的安全性,结果更容易理解,获得数据更容易,限制数据检索更容易,维护应用程序更方便。
创建视图
Create view 视图名称 As(select 语句)删除视图
Drop view 视图名 查看视图
Select 所需数据 from 视图名称 3.索引 3.1索引类型 1,唯一索引 2.主键索引 3.聚集索引 4.非聚集索引 5.复合索引 6.全文索引 3.2创建索引
Create [索引类型] index 索引名称 On 表名(列名)[with fillfactor=x] 3.2 使用索引查询数据 Select * from 表名 With(index =索引名称)
3.3删除索引
Drop index 表名.索引名称 3.4 查看索引
3.4.1 用系统存储过程sp-helpindex查看 Exec sp-helpindex 表名 3.4.2用视图sys_indexes Select * from sys_indexes 第七章 :存储过程
1.存储过程的概念
存储过程是数据库管理系统中保存。预先编译的并能实现某种功能的sql程序。他是数据库中运用比较广泛的一种数据对象,存储过程可加快查询速度,提高访问数据速度,实现模块化编程,保持一致性和提高安全性。
2.用户定义存储过程
1.不带参数存储过程语法 Create procedure 存储过程名称 As Sql语句 go 1.带参数存储过程语法
Create procedure 存储过程名称 @参数1 数据类型
@参数2 数据类型 output(output关键字代表输出参数)As Sql语句 go
处理错误信息
用raiserror语句用来向用户报告错误