数据库设计1.数据库设计的步骤 第一步:需求分析(收集信息) 第二步:绘制 E-R 图 (标示实体 ,找到实体的属性 第三步:将 E-R 图转换成数据库模型图 第四步:将数据库模型图转换成数据表 2.如何绘制 E-R 图 3.如何绘制数据库模型图 4.三大范式规范数据库设计 5.T-SQL语句回顾(其中[]中的表示可省略) 1.添加数据 insert [into] 表名 (列1,列2,...) values(值1,值2,...) 2.修改数据 update 表名 set 列1=值1,列2=值2,... where (条件) 3.查询数据 select 列1,列2,... from 表名 where (条件) order by 列名 4.删除数据 delete from 表名 where (条件) 6.使用SQL语句创建和删除数据库 1.创建数据库([]表示可以省略,{}表示必需的部分,<>表示解释说明) 语法: create detabase 数据库名 on [primary] ( <数据文件参数> [,......n] [<文件组参数>] ) [log on] ( {<日志文件参数> [,......n]} ) 数据文件的具体参数如下: ([name=逻辑文件名] filename=物理文件名 [,size=大小] [,maxsize={最大容量|unlimited}] [,filengrowth=增长量]) [,.....n] 文件组的具体参数如下: filegroup 文件组名 <文件参数> [,......n] eg: create database stuDB
on primary -- 默认就属于primary文件组,可省略(/*--数据文件的具体描述--*/
name='stuDB_data', -- 主数据文件的逻辑名称
filename='D:\stuDB_data.mdf', -- 主数据文件的物理名称
size=5mb, --主数据文件的初始大小
maxsize=100mb, -- 主数据文件增长的最大值
filegrowth=15%--主数据文件的增长率)log on(/*--日志文件的具体描述,各参数含义同上--*/
name='stuDB_log',
filename='D:\stuDB_log.ldf',
size=2mb,
filegrowth=1mb
) 2.删除数据库 语法: drop database 数据库名 那么如何删除这个数据库呢,SQL Server将数据库的清单存放在master系统数据库的sysdatabases表中,只需要查看该表是否存在于该数据库中就可以,这样在创建数据库的时候也可以先判断,再创建 了,语句如下: use master -- 设置当前数据库为master,以便访问sysdatabases表goif exists(select * from sysdatabases where name='stuDB')drop database stuDBgo 7.使用SQL语句创建和删除表 1.回顾一下我们SQL Server 中的数据类型(转载自http://blog.sina.com.cn/zhanshiqi) 第一大类:整数数据 bit:bit数据类型代表0,1或NULL,就是表示true,false.占用1byte.
numeric:表示的数字可以达到38位,存储数据时所用的字节数目会随着使用权用位数的多少变化. 第三大类:近似浮点数值数据 float:用8个字节来存储数据.最多可为53位.范围为:-1.79E+308至1.79E+308. 第四大类:日期时间数据 datatime:表示时间范围可以表示从1753/1/1至9999/12/31,时间可以表示到3.33/1000秒.使用8个字节. 第五大类:字符串数据 char:长度是设定的,最短为1字节,最长为8000个字节.不足的长度会用空白补上. 第六大类:Unincode字符串数据 nchar:长度是设定的,最短为1字节,最长为4000个字节.不足的长度会用空白补上.储存一个字符需要2个字节. 第七大类:货币数据类型 money:记录金额范围为:-92233720368577.5808至92233720368577.5807.需要8 个字节. 第八大类:标记数据 timestamp:该数据类型在每一个表中是唯一的!当表中的一个记录更改时,该记录的timestamp字段会自动更新. 第九大类:二进制码字符串数据 binary:固定长度的二进制码字符串字段,最短为1,最长为8000. 2.创建表 语法: create table 表名 ( 列1 数据类型 列的特征, 列2 数据类型 列的特征, ...... ) **:数据库中表的清单存放在数据库的系统表sysobjects中. use StuDBgo 其中,列属性"identity(起始值,递增量)" 表示"ExamNo"列为自动编号, 也称为标识列 3.删除表 语法: drop table 表名 use StuDBgo if exists(select * from sysobjects where name='stuMarks')drop table stuMarks 8.使用SQL语句创建和删除约束 1.回顾一下SQL Server 中有关数据完整性 (1)实体完整性:唯一确定表中一行记录 (2)域完整性:表中特定数据的有效性,以保不会输入无效的数值 (3)引用完整性:插入或删除记录时,维护表之间定义的关系 2.添加约束 语法: alter table 表名 add constraint 约束名 约束类型 具体的约束说明 上述语法表示修改某个表,并在其中添加某个约束.其中,约束名的命名规则推荐采用"约束类型_约束列的形式 eg: 为学号(StudentNo)添加主键约束,约束名推荐取名"PK_StudentNo; ...唯一约束=>"UQ_IdentityCard; ...默认约束=>"DF_Address; ...检查约束=>"CK_BornDate; ...外键约束=>"FK_StudentNo. --添加外键约束(主表Student和Result建立关系,关联StudentNo)alter table Resultadd constraint FK_StudentNo foreign key(StudentNo) references Student(StudentNo)Go --添加主键约束(将StudentNo作为主键)alter table Studentadd constraint PK_StudentNo primary key (Student)--添加唯一约束(身份证)alter table Studentadd constraint UQ_IdentityCard unique (IdentityCard)--添加默认约束(不填地址,则默认为"地址不详")alter table Studentadd constraint DF_Address default('地址不详') for Address--添加检查约束alter table Studentadd constraint CK_BornDate ckeck (BornDate>='1980-01-01') 3.删除约束 语法: alter table 表名 drop constraint 约束名 eg: --Student表中地址列默认约束的语句如下alter table Studentdrop constraint DF_Address |
|
来自: 时间剧毒 > 《学习资料_SQL》