数据库学习笔记之创建、约束和删除

数据库学习笔记之创建、约束和删除

寒假自己看黑马的视频自学了MySQL数据库,这学期学校也开了数据库这门课,用的是SqlServer(这里也同样是使用SqlServer),由于疫情原因也没有纸质版的书,本来是做了几次手写的笔记,但是手写真的是很麻烦啊,所以还是决定通过写博客的方式来总结一下,也顺便可以和大家分享一下。
笔记绝大部分都是按照老师上课的PPT写的,由于老师讲课的时候有些例题只有代码没有代码执行过后的结果,平常上课其实干听对于数据库的学习还是有些模糊的,所以笔记里我会再将执行的结果贴出来方便理解。
首先是创建数据库
创建之前当然要了解一些基本的SQL的数据类型辣(数据类型有点多,什么Smallint、Tinyint…各种…),这里就用表格简单总结一下吧

数值型

准确型(整数) 所占字节
Bigint 8
Int 4
Smallint 2
Tintint 1
Bit 1位,存储1或0
准确型(小数) 备注
Numeric/Decimal (p,q) p为数字位长度,q为小数位长度
近似型 所占字节
Float 8
Real 4

字符串型

普通编码字符串类型 备注
char(n) 定长存储,n<=8000
varchar(n) 不定长存储(按实际长度存储),长度最大不超过n,n<=8000
text 存储大于8000字节的文本
统一字符编码字符串类型 备注
nchar(n) 定长存储,n<=4000
nvarchar(n) 不定长存储,长度最大不超过n,n<=4000
ntext 存储大于8000字节的文本
二进制字符串类型 备注
binary(n) 固定长度,n<=8000
varbinary(n) 可变长度,n<=8000
image 大容量、可变长二进制字符数据,可用于存储文件

日期时间型

日期时间型 备注
datetime 8字节,年月日时分秒毫秒
smalldatetime 4字节,年月日时分

说完数据类型,就可以开始着手定义表辣。

定义基本表

一般格式:
CREATE TABLE <表名> (
<列名> <数据类型> [列级完整性约束定义]
{,<列名> <数据类型> [列级完整性约束定义]…}
[,表级完整性约束定义] )

关于约束

约束 说明
NOT NULL 限制列取值非空
DEFAULT 给定列的默认值
UNIQUE 限制列取值不重复
CHECK 限制列的取值范围
PRIMARY KEY 指定本列为主码
FOREIGN KEY 定义本列为引用其他表的外码

其中FOREIGN KEY的使用形式为:
[FOREIGN KEY(<外码列名>)]
REFERENCES <外表名>(<外表列名>)

说明:
1、NOT NULL 和 DEFAULT只能是列级完整性约束
2、其他约束均可在表级完整性约束处定义
3、如果CHECK约束是定义多列之间的取值约束,则只能在表级完整性约束处定义
4、如果表的主码由多个列组成,则也只能在表级完整性约束处定义,并将主码列用括号括起来,即:PRIMARY KEY( 列1{ [,列2 ]…} )
5、如果在表级完整性约束处定义外码,则“FOREING KEY ( <外码列名> )”部分不能省略

几个例子:

列取值非空约束:
用法:<列名> <类型> NOT NULL
例:sname char(10) NOT NULL

表主码约束:
用法:列定义 PRIMARY KEY
1、在定义列是定义主码(仅用于单列主码)
例: Sno char(7) PRIMARY KEY
2、在定义完列时定义主码(用于单列或多列主码)
例:PRIMARY KEY(Sno)
PRIMARY KEY(Sno, Cno)

外码引用约束:
用法:[ FOREIGN KEY ( <本表列名> ) ]
REFERENCES < 外表名 > ( <外表主码列名>)
例:FOREIGN KEY (Sno)
REFERENCES 学生表(Sno)

创建几个表并查看一下内容:
学生表:
在这里插入图片描述
在这里插入图片描述

课程表:
在这里插入图片描述
在这里插入图片描述

选课表:
在这里插入图片描述

在这里插入图片描述

表的删除
语法:
DROP TABLE <表名> { [,<表名> ] … }
例:删除test表:
DROP TABLE test

先这么多吧。。。下次该写表的修改了。。。看了一下,这部分其实还是概念多一点。。。。还是多记吧,之后的有关数据操作的部分的实操应该就会多一些辣。。。。

发布了12 篇原创文章 · 获赞 29 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_44620183/article/details/105134010