欢迎光临散文网 会员登陆 & 注册

【D1n910】(7/42)学习【MySQL数据库】C++语言程序设计 - MySQL数据库的笔记

2023-03-31 17:22 作者:爱交作业的D1N910  | 我要投稿

正常操作,正常分析,大家好,我是D1N910。

本文是我学习【MySQL数据库】C++语言程序设计 - MySQL数据库所做的文字笔记。

之前提要


外键约束

    主要用于定义表与表之间的关系

  • 主表:提供数据的表

  • 从表:使用主表中数据的表

  • 外键字段的值,要么是NULL,要么来自于主表的主键

比如

A表表示所有的班级及班级的名称,是主表,有班号和班级名称;

B表表示所有的学生,是从表,学生有班号,班号必须是来自A表中的数据,或者是为空(用以表示学生还没分配班级)。

举例说明:A表只有班号 1~3,B表中新来个学生,班号是4,那么就是错了,因为4号在A表中不存在。这就是所谓的外键约束。B表的班号被A表的班号约束了。

语法规则

示例

将学生表student的class _no设置为外键,引用classes表中的class _no字段,可以在创建student表时添加如下SQL语句:

》 现在先是一个错误的用法,不添加主键的

这时候报送没有index错误,实际上就是要加主键


下面是正确的,添加了主键的

这里限制的是

  • 外键字段的值,要么是NULL,要么来自于主表的主键

在刚刚创建好的表后插入一串数据,其中 c_no 的值对应 1

这时候报错了

-- 错误 违反了外键约束 在主表 classes 中不存在 class_no = 1 的班级

加了以后就可以了。


可以输入null!


删表时,需要先删除子表,然后删除主表!直接删除主表会报错!

P7 1.4 表结构管理(二)~2

自增长字段

如果要求数据库表的某个字段依次递增,且不重复,则可以将该字段设置为自增型字段。

语法:

》字段名 数据类型 auto_increment

示例

》将班级表classes的class_no字段设置为主键,并且设置为自增型字段,SQL语句如下class_no int auto_increment primary key

自增型字段的数据类型必须是整数。

》向自增型字段插入一个NULL值 (推荐)或0时,该字段值会自动设置为比上一次插入值更大的值。如果新增加的记录时表中的第一条记录,则该值为1。

自增型字段必须是主键

比如QQ号,每次注册一个新的QQ时,对应的QQ号段会++,然后不会重复。


当然可以自行定义一个数字

复制表结构

在create table语句的末尾添加like子句

》语法

-- create table 表名 like 源表

示例

-- 将student表的表结构复制成新表stu1,可以使用下面的create table语句:

在create table语句的末尾添加select语句

》语法

create table 表名 select *from 源表

示例

- 将stu1表的表结构及其所有记录复制成新表stu2,可以使用下面的create table语句

- create table stu2 select * from stul;


只有非空复制才能复制,其他的限制不能够复制

基础现在学完了,开始做个课程!

学习进度

(7/42)学习【MySQL数据库】C++语言程序设计 - MySQL数据库的笔记

【D1n910】(7/42)学习【MySQL数据库】C++语言程序设计 - MySQL数据库的笔记的评论 (共 条)

分享到微博请遵守国家法律