数据库学习之路

此博客记录阿伟学习数据库之路

创建数据库(用SQL语言创建)

create database Teach
on
(name=Teach_Data,
filename='D:\TeachData.mdf',
size=10,
maxsize=500,
filegrowth=10)
log on
(name=Teach_Log,
filename='D:\TeachData.ldf',
size=5,
maxsize=500,
filegrowth=5)

关于文件的扩展名
.mdf:主要数据文件
.ndf:次要数据文件
.ldf:事务日志文件

修改数据库

修改文件的增容方式:

alter database Teach
modify file
(name=Teach_Data,
filegrowth=20)

添加次要数据文件:

alter database Teach
add file(
name=Teach_Datanew,
filename='D:\Teach_Datanew.ndf',
size=100,
maxsize=200,
filegrowth=10)

删除次要数据文件:

alter database Teach
remove file Teach_Datanew

用系统存储过程显示

数据库结构:

Sp_helpdb[[@dbname=]'name']

在这里插入图片描述
文件信息:

Sp_helpfile[[@filename=]'name']

文件组信息:

Sp_helpfilegroup[[@filegroupname=]'name']

数据类型

整数型:bigint,int,smallint,tinyint,bit
数值型:精确数值型:numeric,decimal 近似数值型:float,real
ps: numeric(p,s),其中p表示数据长度,s表示小数位数
字符型:char(定长),varchar(非定长),nchar(定长),nvarchar(非定长),text(定长),ntext(非定长)
char,varchar用来存放非Unicode字符(即ASCII字符),一个字符占一个字节
nchar,nvarchar用来存放Unicode字符,一个字符占两个字节
text存放非Unicode字符,ntext存放Unicode字符,最大可存储2GB
二进制数据型:binary(定长),varbinary(非定长),image
前两个最多可表示8000个字节,任何类型的数据都可存储在这种类型的字段中,不需要数据转换
image类型可以存储图片本身,这时需要事先将图片转化为二进制流的形式,也可以存储图片路径
特殊类型:timestamp(时间戳),uniqueidentifier(唯一标识符),sql_varianttable(用于存储对表或视图处理后的结果集,这一类型使得变量可以存储一个表,从而使函数或过程返回查询结果更加方便、快捷)

创建数据表 (用SQL语言创建)

create table S
(SNAME char(6),
SEX nchar(1) default '男',//缺省值为'男',即如果该空为NULL,则以'男'填充
primary key(SNNAME),//设置主键
foreign key(SEX) references T(SEX)//设置外键
)

定义数据表的约束

1.NULL / NOT NULL约束

create table S
(SNAME char(6),
SNUM varchar(6) not null //非空约束
)

2.UNIQUE约束(唯一约束)

指明基本表在某一列或多个列的组合上的取值必须唯一
(使用UNIQUE约束的字段允许为NULL值
一个表中可以允许有多个UNIQUE约束
UNIQUE约束用于强制在指定字段上创建一个UNIQUE索引,缺省为非聚集索引)

列约束:

create table S
(SNAME char(6) unique,//设置SNAME为唯一键,不允许出现重复姓名
SNUM varchar(6) not null
)

表约束:

create table S
(SNAME char(6) unique,//设置SNAME为唯一键,不允许出现重复姓名
SNUM varchar(6) not null,
SEX nchar(1),
constraint S_UNIQ unique(SNAME,SEX) //如果在姓名列上出现了重复姓名,就不能对于这个重复的姓名再有相同的性别
)

3.PRIMARY KEY约束(主键约束)
不能重复,不能为空

列约束:

create table S
(SNAME char(6) primary key,//设置SNAME为主键,不允许出现重复姓名,不能为空,注意和唯一键unique的区别,unique可以允许有一个空
SNUM varchar(6) not null,
SEX nchar(1)
)

表约束:

create table SC
(SNAME varchar(6) not null,
CNAME varchar(6) not null,
SCORE numeric(4,1),
primary key(SNAME,CNAME) //设置SNAME,CNAME为主键
)

4.FOREIGN KEY约束(外键约束)

create table SC
(SNAME varchar(6) not null foreign key references S(SNAME), 
CNAME varchar(6) not null foreign key references C(CNAME), //外键约束
SCORE numeric(4,1)
)

5.CHECK约束

用来检查字段值所允许的范围
一个表中可以定义多个CHECK约束
每个字段只能定义一个CHECK约束
在多个字段上定义的CHECK约束必须为表约束
当执行INSERT,UPDATE语句时,CHECK约束将验证数据

create table SC
(SNAME varchar(6) not null,
CNAME varchar(6) not null,
SCORE numeric(4,1) check( SCORE >= 0 AND SCORE <= 100 )
)

修改数据表

1.增加新列:

alter table S add CLASS varchar(6)

使用这种方法增加的新列自动填充为NULL,因此不能为增加的新列指定NOT NULL约束

2.增加完整性约束:

alter table SC add check(SCOER between 0 and 100)

3.修改数据表结构

把S表中的SNAME列加宽到12个字符:

alter table S alter column SNAME nvarchar(12)

删除S表中的主键:

alter table S drop constraint SNAME

删除数据表

cascade(级联式)方式:执行drop语句时,把其下属的视图、索引等所有元素全部撤销。
restrict(约束式)方式:执行drop语句时,只有其没有任何下属元素时,才能撤销数据表,否则拒绝执行drop语句。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值