数据库学习第四课
来源:互联网 发布:软件打不开闪退怎么办 编辑:程序博客网 时间:2024/06/11 04:49
1,主键与唯一键配合使用
drop table student4 --删除student4表
create table student4
(
stu_id int primary key identity, --主键递增,其中identity表示递增,在数据量很大的时候很实用
stu_name nvarchar(50) unique not null,
stu_email nvarchar(50) not null unique,--唯一键unique可在not null 前也可在其后
stu_address nvarchar(50)
)
2,not null 定义
要求用户必须为该属性赋一个值,否则语法出错
注意空(不写null和not null) 和 default 的区别
相同点:
都允许用户不赋值
不同点:
null 修饰的字段如果用户不赋值则默认是null
default修饰的字段如果用户不赋值则默认是default的值
如果一个字段不写null,也不写not null,则默认是null 即默认允许为空,用户可以不给该字段赋值
如果用户没有为该字段赋值,则该字段的值默认是null
3,表和约束的区别
数据库是通过表来解决事物的存储问题的
数据库是通过约束来解决事物取值的有效性和合法性的问题
建表的过程就是指定事物属性及其事物属性各种约束的过程
4,什么是关系
定义:表和表之间的联系
实现方式:通过设置不同形式的外键来体现表和表的不同关系
分类:
一对一
既可以把表A的主键充当表B的外键
也可以把表B的主键充当表A的外键
一对多
国民老公系列
把表A的主键充当表B的外键
或者讲:把A表的主键添加到B表来充当B表的外键
在多的一方添加外键
多对多
学生VS老师
班级VS老师
--班级
create table banji
(
banji_id int primary key,
banji_num int not null,
banji_name nvarchar(100)
)--教师
create table jiaoshi
(
jiaoshi_id int primary key,
jiaoshi_name nvarchar(200)
)--第三张表 用来模拟班级和教师的关系映射
create table banji_jiaoshi_mapping
(
banji_id int constraint fk_banji_id foreign key references banji(banji_id) ,--以班级编号为外键
jiaoshi_id int constraint fk_jiaoshi_id foreign key references jiaoshi(jiaoshi_id),--以教师编号为外键
kecheng nvarchar(20),
constraint pk_banji_id_jiaoshi_id primary key (banji_id,jiaoshi_id,kecheng)--以整体为主键
)
insert into banji(banji_id ,banji_num) values (1,20)
insert into banji(banji_id ,banji_num) values (2,30)
insert into banji(banji_id ,banji_num) values (3,15)
insert into banji(banji_id ,banji_num) values (4,50)
insert into jiaoshi values (1001,'aa') --字符串需要加引号
insert into jiaoshi values (1002,'bb')
insert into jiaoshi values (1003,'cc')
insert into jiaoshi values (1004,'dd')--删除表
drop table banji_jiaoshi_mapping
- 数据库学习第四课
- 数据库第四课
- 数据库学习第四天之多表查询
- 笔记:ORACLE数据库基础学习 第四天
- 第四课学习
- java学习第四课
- OpenGL学习:第四课
- C++学习第四课
- Drupal学习 第四课
- Java学习第四课
- 机器学习第四课
- 学习淘淘商城第四十三课(实现从数据库导入数据到索引库)
- Python菜鸟学习第四课
- 韩语学习之第四课
- JAVA学习第四课(数组)
- JAVA学习第四课(数组)
- JavaScript学习第四课--语句
- 易语言学习第四课
- markdown编辑器中公式和表格
- 无题
- 《后台开发核心技术与应用实践》(二)
- 文件存储
- 数据结构课程设计————校园导航系统
- 数据库学习第四课
- 不在 sudoers 文件中。此事将被报告。
- 金牌银票铜牌
- python介绍
- 为什么看起来不是很复杂的网站,淘宝、腾讯却需要大量顶尖高手来开发?
- git 切换remote
- Linux下简易进度条的实现
- 2014年第五届蓝桥杯C/C++程序设计本科B组省赛-奇怪的分式(结果填空)
- 签到