1、数据库简介
-》解决的问题:持久化存储,优化读写,保证数据的有效性
-》关系型数据库:
基于E-R模型(数据关系模型)
使用sql语言进行操作
-》分类:文档型sqlite,服务型
-》数据库设计
三范式:列不可拆分,唯一标识,引用主键
关系及存储:
1对1:1个对象A对应着1个对象B,1个对象B对应着1个对象A
关系可以存入A或B对象中(例如:国家规定的夫妻关系)
1对多:1个对象A对应着n个对象B,1个对象B对应着1个对象A
关系存入B对象中(学生和班级,一个班级可以有多个学生,但一个学生只许有一个班级)
多对多:1个对象A对应着n个对象B,1个对象B对应着m个对象A
关系存入新建的一个关系表中(学生和选课,
1个学生可以有多门选课,一门选课可以有多个学生)

一 :创建数据库

2、登录方式
-》开启服务
-》登录方式及设置
-》添加用户名
-》连接局域网中的数据库:启用TCP/IP协议

创建一个数据文件和一个日志文件(MySchool)

3、界面操作
-》数据库:创建,删除,分离,附加,生成脚本(架构,数据)
-》表:创建、修改、删除
字段类型介绍:int,bit,datetime,decimal(5,2),char/varchar/nvarchar
字符串类型n的区别:有n表示unicode编码,每个字符占一个字节;
没有n表示非unicode编码,英文或数字占一个字节,中文占两个字节
字符串类型var的区别:有var表示可变长度
没有var表示不可变长度,如果长度不够,会在末尾补空格
如果选择int值时,可以设置标识:此列的值为系统帮助维护,更轻松的实现唯一标识
-》约束:实现数据的有效性检查
主键,非空,惟一,默认,检查,外键
-》示例:
班级表ClassInfo(编号cId,名称cTitle nvarchar(10))
学生表(编号,姓名,性别,出生日期,电话,邮箱,班级)

create database MySchool
on primary      –默认属于primary主文件组,可省略
(
–数据文件的具体描述

4、脚本操作
-》不区分大小写,字符串使用单引号,末尾不需要加分号
-》按照功能分类:
DDL:数据定义语言,用于进行各种数据库对象的创建,主要操作包括create、alter、drop
DML:数据管理语言,用于对表数据的添加、修改、删除、查询,主键操作包括insert、update、delete、select
DCL:数据控制语言,用于进行权限分配等
-》注释:–单行注释,/**/多行注释
-》数据库:创建、删除
可以通过查看master数据库中的sysdatabases表,来了解当前存在的数据库
create database 数据库名
on 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
)

name = ‘MySchool_data’    –主数据库文件的逻辑名称
filename = ‘D:projectMySchool_data.mdf’, –主数据库文件的物理名称
size = 5MB,     –主数据库文件的初始大小
maxsize = 100MB,     –主数据库文件增长的最大值
filegrowth = 15%     –主数据文件的增长率

)
log on
(
–日志文件的具体描述,各参数含义同上

name = ‘MySchool_log’,    –主数据库文件的逻辑名称
filename = ‘D:projectMySchool_data.ldf’, –主数据库文件的物理名称
size=2MB,     –主数据库文件的初始大小
filegrowth = 1MB    –主数据文件的增长速度

)
go

 

创建多个数据文件和多个日志文件(employees)
create database employees
on primary
(
–主数据库文件的具体描述
name=’employee1′,
filename=’D:projectemployee1.mdf’,
size=10,
filegrowth=10%
),
(
–次要数据库文件的具体描述
name=’employee2′,
filename=’D:projectemployee2.mdf’,
size=20,
maxsize=100,
filegrowth=1
)          
log on
(
–日志文件1的具体描述
name=’employeelog1′,
filename=’D:projectemployee1_log.ldf’,
size=10,
maxsize=50,
filegrowth=1
),
(
–日志文件2的描述
name=’employeelog2′,
filename=’D:projectempolyee2_log.ldf’,
size=10,
maxsize=50,
filegrowth=1
)
go

 

 

二:删除数据库
usr master
if exists(select * from sysdatabases where name=’….’)
drop database ……

 

 

三:创建和删除表

use MySchool    –在Myschool中创建表
go

create table Student
(
StudentNo int not null.   –学号,int 类型,不允许为空
LoginPwd nvarchar(50) not null,  –密码 nvarchar类型,不允许为空
StudentName nvarchar(50) not null, –名字,nvarchar类型,步允许为空
Sex bit not null,   –性别,取值0或1
Email nvarchar(20)   –邮箱,可为空
)
go

删除表
use MySchool
go
if exists(select * from sysobjects where naem=’Student’)
drop table Student
  
                                                                                                                                                                                                                                                                                                                                                                                                  
四:创建和删除约束
主键约束(Primary Key Constraint)
非空约束(Not Null)
唯一约束(Unique Constaraint)
检查约束(Check Constaraint)
默认约束(Default Constaraint)
外建约束(Foreign Key
Constarint):用于在两表之间建立关系,需要指定引用主表的哪一列

alter table 表名
add constraint 约束名  约束类型 
具体的约束说明

例:
–添加主键约束
alter table Student
add constraint PK_StudentNo Primary
Key(StudentNo)

–添加唯一约束
alter table student
add constraint UQ_IdentityCard unique(IdentityCard)

发表评论

电子邮件地址不会被公开。 必填项已用*标注