MySQL学习笔记(第四节)

1. 通过 like 进行模糊查询:

like需要搭配通配符来使用, 如果对方的字符串满足like所描述的形式, 则可以被查询到, 反之则不能.
通畅和like进行搭配的通配符共有两个, 分别为% _
%代表任意个任意字符, _ 代表任意一个字符.

举例: 查询所有姓孙的学生的信息:
请添加图片描述
  %指这个位置可以是任意个任意字符, 甚至可以是 0个, 而 _ 处只能是任意一个字符.(虽然 _ 只能表示一个字符,但可以同时使用多次, 例如我们可以通过两个 _ 来表示两个字符)

  注意:上述例子中的"sun%“的查询结果必须是"sun"以开头, 如果某个字符串中存在"sun”, 但前面有别的字符, 那么这样的字符串无法被查询到.

2. 和null值进行比较

向student表中添加一个所有成绩均为null的学生, 并通过两种方式查询语文成绩为null的学生.

请添加图片描述
可以看到,通过两种方式查询到的结果是不同的, 是因为 "wuyong"的chinese 成绩为null, 我们之前提到过, null=null 的结果仍为null, 因此不能通过 = 来比较null值, 要想比较null值, 需要用到 <=> , null <=> null的结果为真.

3. 分页查询

SQL中通过limit进行分页查询, 通过分页查询使客户端每次只显示一部分查询结果.

select 列名 from 表名 limit 数字;   (这个数字表示每页显示的结果的个数)

举例:查询学生表并使每页只显示3个结果
请添加图片描述
使用offset来显示后面3个结果:

请添加图片描述
offset 3 即表示从 3下标开始显示结果, 显示的条数为limit 后的数字(需要注意的是, 表格的行数从 0 开始, offset 3 也就是从第4个结果开始显示)
因此, limit 3 也可以写作 limit 3 offset 0.

SQL中的修改操作

  update 表名 set 列名 = 值, 列名 = 值 where 条件; (where后的条件主要针对符合条件的行, 如果省略where就是修改所有的行)

  注意:与select不同, update 会直接修改服务器上的原始数据, 一旦修改完, 这种结果就会一直持续下去.

  update语句在开发中非常常用, 一定要重点掌握!

删除操作

SQL中使用delete进行删除操作:

delete from 表名 where 条件; (如果省略where, 会直接将表中的所有数据删除)

  注意:delete from 表名与 drop table 表名不同, drop table会直接删除数据表, 而delete只会删除表中的数据, 表的结果依然会保留.

MySQL的增删改查(进阶)

数据库的约束, 就是数据库在使用的时候, 对于里面能够存放的数据提出的要求和限制, 程序员可以借助约束来完成更好的校验.

1.约束类型
not null : 指示某列不能存储 NULL 值。

(如果尝试往not null修饰的列中插入空值, 会直接报错)

unique : 保证某列的每行必须有唯一的值。DEFAULT - 规定没有给列赋值时的默认值

(如果尝试插入重复值, 也会报错)

default : 规定没有给列赋值时的默认值
primary key : not null 和 unique 的结合。确保某列(或两个列多个列的结合)有唯一标识,有助于更容易更快速地找到表中的一个特定的记录。

(主键默认, 相当于数据的唯一身份表示, 类似于身份证号码)

foreign key : 保证一个表中的数据匹配另一个表中的值的参照完整性。

(外键, 描述表与表之间的关系, 表一里的数据必须在表二中存在)

check : 保证列中的值符合指定的条件。对于MySQL数据库,对check子句进行分析,但是忽略check子句。

(指定一个条件, 通过条件来对值进行判定)

各种约束类型的举例:
not null:
请添加图片描述
创建一个表m, 将表的id 设置为not null, 通过查看表的属性可以看到 id 一栏的null值为 no.
可以同时为多个列设置not null.

unique:

请添加图片描述
创建一个表m, 将id 设置为unique, 此时表内每个成员的id必须唯一, 当表内出现重复id时, 会直接报错.

此时通过desc查看数据表的属性可以看到key一栏处, id 的属性为UNI, 即为unique:
请添加图片描述
default:
MySQL中, 默认的默认值为null.

创建一个表m, 将 id 的默认属性设置为’000000’:
请添加图片描述
primary key(开发中使用最频繁, 也是最重要的约束):
创建一个表m, 将id 设置为primary key:
请添加图片描述
注意: 与其他约束类型不同, 每个表中仅能有一个列为primary key, 并且这一列的属性不能为空, 也不能重复.

关于主键, 最常用的使用方式就是直接使用1, 2, 3, 4这样整数递增的方式来进行表示, MySQL中对于这种递增的主键是有内置支持的, 称为"自增主键". (auto_increment)

将id设置为自增主键:
请添加图片描述当设定好自增主键之后, 在插入记录时, 我们可以不指定自增主键所在的这一列的值了(直接用null表示), 交给MySQL自动分配即可.

设置自增主键之后再插入元素,并将这一列的值设置为null:
请添加图片描述

可以看出, 当我们把自增主键这一列的元素设为null时, MySQL会自动为其分配主键.

注意:自增主键也可以手动指定, 例如, 我们将第一个id 指定为10, 那么下一个id就会从11开始.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zhanglf6699

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值