大家好,本章内容主要讲述关于CRUD的练习知识点,希望大家多多提出意见。
![]()
- 重点掌握插入单条记录的语法
- 了解全表插入记录的语法
- 重点掌握修改记录的语法
- 重点掌握删除记录的语法
- 重点掌握主键约束、外键约束
- 了解检查约束、非空约束、唯一约束
- MySQL支持多种数据类型,大致可以分类三类:数值、日期和字符串。
2.1.1 分类
decimal(6,4)表示整数位2位,小数位4位,一共6位,
字节量: m+2
2.1.2 例子
2.2.1 分类
超过6位,可能出错,也可能截断,不足6位,在后面 添加空格 varchar 变长字符串,最大65535个字节,varchar(6)如果指定的最大长度,
在255个字节内,在前面会加1个字节,表示字符串的字节长度最大长度大于255,
在前面加2个字节,表示字符串的字节长度
char和varchar区别:char效率高varchar效率低,读取时,先读取长度值,再取字符串 text 65535个字节
latin1 - 字符数量:65535
gbk - 65535/2 个字符
utf8 - 65535/3 个字符
2.2.2 例子
2.3.1 分类
会在修改这行数据时,自动修改成系统当前时间
2.3.2 例子
- 在数据库中的一个表中增添数据并不是随意的,我们之前在创建表的时候规定过表中可以容纳几列数据,每列数据的类型,我们要根据可以容纳几列数据,每列数据的类型来进行新增数据的操作。
- 在创建表的初期所决定的数据类型是决定整张表数据类型的基础 ,新增数据的基础是创建表的时候所决定的数据类型。
- 使用db2库
- 查看库中person表结构
3.2.1 全表插入单条记录
- 单行的输入数据,把表中一行全部填满,全列输入的意思就是把表中所有字段全部填满。
3.2.1.1 格式
- 插入的值的顺序需要和表中的字段顺序一致
3.2.1.2例子
- 向person表中插入一条记录,name为tom,age为18
3.2.2 指定字段插入单条记录
3.2.2.1 格式
3.2.2.2 例子
- 向person表中插入一条记录,name为jerry,age不传值
3.2.3 全表插入格式
3.2.3.1 格式
3.2.3.2 例子
- 向person表中插入两条记录,分别是name为lucy,age为21的记录和name为lily,age为22的记录
3.2.4 指定字段插入格式
3.2.4.1 格式
3.2.4.2 例子
- 向person表中插入三条记录,分别是name为danny,name为hanmeimei,name为lilei的记录
- 为了方便修改内容,我们提前向person表中插入新的记录
①将name为刘备的记录的age属性,修改为88
②将age为5的记录的name属性,修改为黎明
③将name为关羽的记录的name属性修改为张飞,age属性修改为18
①删除name为张飞的记录
②删除age小于30的记录,也就是删除年龄小于30岁的记录
③删除整张表的记录
但是由于idea担心我们删除整张表的操作太过于危险,会有提示,点击Execute执行即可
- 约束是作用于表中列上的规则,用于限制加入表的数据。
- 约束的存在保证了数据库中数据的正确性、有效性和完整性。
6.3.1 概念
- 主键 : 表示数据唯一性的字段称为主键
- 约束 : 创建表时,给表字段添加的限制条件
- 主键约束 : 限制主键的值唯一且非空
6.3.2 特点
- 主键字段,尽量不使用业务数据
比如这张学生表,本身学号就可以具备主键的功能了,但是学号本身也是业务数据,所以我们建议创建新的id作为主键
- 应使用无意义数据作为主键
- 随机产生的字符串
比如这张人员表,主键就是一串随机生成的字符串
id(PK) 身份证号 姓名 ... tyhe34yd 4 张三 46745eh35u65uj54 7 李四- 自动增加的数字
比如这张电信计费表,主键就是自动增加的数字
id(PK) 手机号 金额 ... 1 4 56 2 8 86 - 随机产生的字符串
6.3.3 添加主键约束语法
- 新建表时,添加主键约束
6.3.4 例子
6.4 自增主键
- 整数主键字段,可以设置成自动增加
6.4.1 添加自增主键语法
6.4.2 例子
6.5.1 概念
- 保证列中所有的数值不能有null值
6.5.2 添加非空约束语法
6.5.3 例子
6.6.1 概念
- 唯一:唯一性,可以为空,但是只能有一个
6.6.2 添加唯一约束语法
6.6.3 例子
6.7.1 概念
- 检查:对该列数据的范围,格式的限制
- 但是MySQL8.0版本以下没有实现检查约束
6.7.2 添加检查约束语法
6.7.3 例子
6.8.1 概念
- 约束一个字段的取值,只能从指定的主键字段中取值
6.8.2 特点
- 取消被引用的主键,必须先取消外键
- 被引用的主键数据,不能删除,必须先删除子数据,或修改子数据
- 删除主表,必须先取消外键引用,或先删除子表
- 外键会降低效率
- 高压力系统中,一般不添加外键约束
6.8.3 创建外键约束语法
6.8.4 例子
- 翻译过来为录入了错误的整数值,字符串"tom",插入到了age列,也就是类型不匹配,需要调整插入的值的顺序
- 遇到上面报错的时候一定是属性和字段不对应的问题!!要么找不到属性,要么找不到数据库的字段!!
7.1.1 模拟问题
- 准备一个名为db3的库,注意不指定编码
- 使用db3库
- 在库中创建一张person表,表中字段为name和age
- 此时插入一条携带中文的记录
INSERT INTO person VALUES("刘德华",50);
- 那么此时插入语句执行时,这条记录会出现报错
7.1.2 问题原因
- 如果我们创建库时,没有指定编码,那么数据库会使用默认的latin1作为编码,所以创建的表就会是latin1的表,那么此时我们插入中文的客户端默认会使用utf8的编码,那么就会发生编码冲突的问题
- 输执行如下命令,查看建表语句
- 可知数据库db3的编码为latin1
- 再次输入命令查看建表语句
- 可知数据表的编码为latin1
- 而客户端默认的编码是gbk,所以我们如果可以将库表的编码都设置为gbk就可以解决这个问题了
7.1.3 解决方案
- 直接删除db3库,重新创建库,指定编码
- 插入数据的语法是什么?
INSERT INTO 表名 VALUES(值1,值2);
- 修改数据的语法是什么?
UPDATE 表名 SET 字段名=值,字段名=值 WHERE 条件;
- 删除数据的语法是什么?
DELETE FROM 表名 WHERE 条件;
- 一张表中的id通常使用什么约束?
id一般都是唯一且不能重复的,所以可以使用主键约束,而主键是一行数据的唯一标识,要求非空且唯一
- 一张表的一个字段不允许为空,如何处理?
如果一张表中的字段要求不能为空,可以将该字段设置为非空约束,保证列中所有的数值不能有null值
- 什么是唯一约束?
保证列中所有数据各不相同
- 什么是检查约束?
保证列中的值满足某一条件
- 什么是外键约束?
外键用来让两个表的数据之间建立链接,保证数据的一致性和完整性
上一篇文章:下一篇文章:
到此这篇增删改查sql语句例子(增删改查sql语句例子大全)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/sqlbc/66243.html