当前位置: 首页 > news >正文

My_SQL day3

知识点:约束

        1.dafault 默认约束

        2.not null 非空约束

        3.unique key 唯一约束

        4.primary key 主键约束

        5.anto_increment 自增长约束

        6.foreign key 外键约束

知识点:表关系

        1.一对一

        2.一对多

        3.多对多

知识点:约束

1.default 默认约束

create table t1(id int default 110,name varchar(10));
insert into t1(name) values("jianqi"),("fufu");+------+--------+
| id   | name   |
+------+--------+
|  110 | jianqi |
|  110 | fufu   |
+------+--------+insert into t1(id,name)values(1,"beibei"),(2,"gangber");+------+---------+
| id   | name    |
+------+---------+
|  110 | jianqi  |
|  110 | fufu    |
|    1 | beibei  |
|    2 | gangber |
+------+---------+

2. not null非空约束

数据不能为空

create table t2(id int not null,name varchar(10));
#即使赋值为空也不行,除非变成字符串;id为int类型,所以不行

3.unique key 唯一约束

create table t3(id unique key,name varchar(10) not null);
insert into t3 value(1,"jianqi");#ok
insert into t3 value(1,"jianqi");#Duplicate entry '1' for key 't3.id'
非空且唯一,第一个非空且唯一的字段会默认为主键(没设置主键的情况)

4.primary key 主键约束

非空且唯一

create table t4(id int primary key,name varchar(20) not null unique key);

5.anto_increment 自增长约束

create table t5 (id int primary key auto_increment,name varchar(20));
create table tb5(id int primary key auto_increment,name varchar(20) not null)auto_increment=100;#如果给定id值之后,后面的自增长就是按照最大的ID进行增长

6.foreign key 外键约束

create table a(a_id int primary key auto_increment,a_name varchar(20) not null);
insert into a(a_name) values ("a1"),("a2");
create table b(b_id int primary key,b_name varchar(20) not null,fy_id int not null,foreign key(fy_id) references a(a_id));
insert into b values(1,"a1",1),(2,"a2",2);
insert into b values(3,"a1",3);#报错,主表中没有#直接删除删不掉a 只能先删除b

知识点:表关系

1.一对一

学生表    课程表

2.一对多

3.多对多

学生表
create table student (s_id int primary key auto_increment,s_name varchar(20) not null);课程表
create table course(course_id int primary key auto_increment,course_name varchar(20) not null)关系表
create table zhongjian(s_id int,course_id int,primary key(s_id,course_id),foreign key(course_id) references course(course_id),);

http://www.lryc.cn/news/485464.html

相关文章:

  • 【代码随想录day31】【C++复健】56. 合并区间;738.单调递增的数字
  • jmeter常用配置元件介绍总结之逻辑控制器
  • 解决Windows远程桌面 “为安全考虑,已锁定该用户账户,原因是登录尝试或密码更改尝试过多。请稍后片刻再重试,或与系统管理员或技术支持联系“问题
  • 中文书籍对《人月神话》的引用(161-210本):微软的秘密
  • 关于写React的一些反思和总结
  • Qt 每日面试题 -10
  • 三正科技笔试题
  • Selective attention improves transformer详细解读
  • git配置用户信息
  • 【eNSP】路由基础与路由来源——静态路由实验
  • Python Web 应用开发基础知识
  • STM32 标准库函数 GPIO_SetBits、GPIO_ResetBits、GPIO_WriteBit、GPIO_Write 区别
  • 【Redis_Day4】内部编码和单线程模型
  • Vue模块化开发的理解
  • 在Ubuntu22.04上源码构建ROS noetic环境
  • 算法--解决二叉树遍历问题
  • [刷题]入门1.矩阵转置
  • Flutter开发之flutter_local_notifications
  • Gradle和maven
  • RabbitMQ教程:发布/订阅模式(Publish/Subscribe)(三)
  • 服务器被挂马怎么办?——解决服务器被挂马的方法和步骤
  • Qt 项目架构设计
  • Elasticsearch:管理和排除 Elasticsearch 内存故障
  • 高级java每日一道面试题-2024年11月07日-Redis篇-Redis有哪些功能?
  • 实用且免费的 IP 地域查询 API 接口推荐
  • STM32学习笔记----SPI协议
  • Ceph的pool有两种类型
  • 推荐一款流程图和图表绘制工具:WizFlow Flowcharter Pro
  • 设计模式之插件模式
  • 深度学习基础—Beam search集束搜索