MySQL
MySQL学习笔记
绝命三郎
代码块总结
展开
-
MySQL学习笔记19——乐观锁(行级锁)设计方案
例如:库存问题,库存中有100件衣服,A购买1件,select出来100件,update进去99件到数据库,然而这个过程可能B同一时间也购买了一件,B也select出来100件,update进去99件到数据库,就会出现卖出两件衣服,库存却剩下99件。第一步:首先我们在表中增加有个lock_version字段,获取要修改的数据时,同时把lock_version也获取出来,用于标记这条数据的版本;分析:这样设计,如果别的用户在我们代码运算的过程中,增减了库存,我们插入时就会发现**原创 2023-02-20 23:49:16 · 724 阅读 · 1 评论 -
MySQL学习笔记18——for update到底是行级锁,还是表锁?
for update是表锁还是行锁?原创 2023-02-19 18:01:39 · 1549 阅读 · 2 评论 -
MySQL学习笔记01——MySQL启动方式(两种方式)
第一种:在电脑服务窗口直接启动(win10为例)(一)在运行窗口输入services.msc回车启动服务窗口(二)在服务窗口找到MySQL80,右键单击启动即可这个每个人的MySQL名称可能不同,安装时可能被你自定义过(三)在DOS窗口输入mysql -V回车如果出现MySQL的版本号,说明启动成功,如下图:第二种:直接在DOS窗口启动(一)在“开始”的搜索框中输入cmd,调出DOS窗口切记:要以管理者身份运行DOS,具体怎么用管理者身份运行DOS自己百度一下(二)在DOS窗口中输入原创 2020-11-17 10:38:50 · 346 阅读 · 0 评论 -
MySQL学习笔记02——DOS窗口登录数据库
第一种:不安全的方法(作为了解)在DOS窗口输入:mysql -u用户名 -p密码 然后回车就连接成功了,如下图:第二种:安全的方法(重点)在DOS窗口输入:mysql -u用户名 -p 然后回车,出现Enter password: 再输入密码连接。至此,就完成了。...原创 2020-11-17 10:50:26 · 233 阅读 · 0 评论 -
MySQL学习笔记03——创建、修改和删除数据库
一、三种创建数据库的SQL语句(一)直接创建语句 :CREATE DATABASE db1;简单说明:这种创建方法是最常用的创建方法,但是值得注意的是如果当前已经存在db1这个数据库,那么这个语句就会报错。(二)判断后再创建语句:CREATE DATABASE IF NOT EXISIS db1;说明:这种创建方法是指在创建数据库之前先判断数据库是否存在,若存在不创建,若不存在才创建,这种语句不会因为数据库已经存在而报错,主要用于数据库的备份和还原。(三)创建数据库并制定编码方式语句:CRE原创 2020-11-19 00:25:58 · 961 阅读 · 0 评论 -
MySQL学习笔记04——创建、修改、删除数据表
一、创建数据表(一)直接创建数据表CREATE TABLE student(id int,name varchar(10),age int,birthday date,sex char(1));(二)创建和旧表结构一样的新表CREATE TABLE student2 LIKE student;二、删除数据表(一)直接删除DROP TABLE student2;//删除了刚刚新建的student2这个表(二)判断表是否存在,再删除表DROP TABLE IF EXISTS studen原创 2020-11-19 14:23:53 · 224 阅读 · 1 评论 -
MySQL学习笔记05——数据插入(增)
INSERT插入语句(一)默认全部字段都插入(输入的值必须和表结构字段顺序一一对应)语句:INSERT INTO teacher values (1,'猪猪侠',25,'1996-05-12','男');(一) 自由选择自己想要插入的字段插入语句: INSERT INTO teacher(id,name,birthday,sex) values (2,'狗狗侠','1997-06-15','女');简简单单小笔记到此结束!...原创 2020-11-20 16:05:28 · 112 阅读 · 0 评论 -
MySQL学习笔记06——蠕虫复制(增)
蠕虫复制原理: SELECT语句和INSERT语句连用(一)整张表复制语句: INSERT INTO student SELECT * FROM teacher;说明:这个语句是将teacher表中的所有数据其全部复制到student表中,前提条件是teacher表和student表的表结构要一致。(二)复制部分字段的数据语句: INSERT INTO student(name,age) SELECT name,age FROM teacher;说明:在做这个操作时一定要指明字段对应关系原创 2020-11-20 16:54:45 · 125 阅读 · 0 评论 -
MySQL学习笔记07——数据更新(改)
UPDATE 更新语句(一)更新某个字段所有值(初始化操作,作为了解,慎用!)语句: UPDATE teacher SET age=18;(二)更新符合条件的数据语句: UPDATE teacher SET age=45,birthday='1975-06-15' WHERE id=1;更新语句简单笔记到此结束!...原创 2020-11-20 20:28:02 · 92 阅读 · 0 评论 -
MySQL学习笔记08——数据删除(删)
(一)DELETE删除数据(一)不带条件删除(危险操作,作为了解,慎用!)语句: DELETE FROM teacher;(二)带条件删除语句: DELETE FROM teacher2 WHERE id=3;(二)TRUNCATE清空数据语句: TRUNCATE TABLE student;说明:它能够达到清空整个数据表的作用,和DELETE不带条件删除效果相同原理不同。TRUNCATE是一次性清空,DELETE是一条一条清空!删除数据语句到此结束!...原创 2020-11-20 20:48:16 · 182 阅读 · 0 评论 -
MySQL学习笔记09——数据查询(查)
SELECT查询语句的奥秘(一)整表查询(两种)语句: SELECT * FROM teacher;说明:*代表查询所有,效率相比下一种低一些。效果如图:语句: SELECT id,name,age,birthday,sex FROM teacher;说明:看似麻烦,但是效率较上一种要高一些。效果如图:(二)查询指定字段(列)的数据语句: SELECT name,birthday,sex FROM teacher;(三)别名查询语句: SELECT id AS 序号,name AS 姓原创 2020-11-20 23:01:04 · 551 阅读 · 0 评论 -
MySQL学习笔记10——WHERE条件语句
WHERE条件语句的奥秘(一)WHERE条件语句——结合——比较运算符比较运算符: >、<、=、>=、<=、!=(或<>)语句: SELECT * FROM teacher WHERE id<2;//其他同理,使用简单(二)WHERE条件语句——结合——逻辑运算符逻辑运算符: and、or、not 就三个!语句: SELECT * FROM teacher WHERE age=45 and sex='男' ;//且语句: SELECT * FROM原创 2020-11-21 13:18:29 · 278 阅读 · 0 评论 -
MySQL学习笔记11——查询结果排序(ORDER BY)
常用的结果排序ASC: 升序(默认)DESC:降序(一)单列排序语句: SELECT * FROM teacher WHERE id>=1 ORDER BY id DESC;//id降序说明: 语句的顺序是SELECT——> WHERE——> ORDER BY。(二)组合排序语句: SELECT * FROM teacher WHERE id>=1 ORDER BY id DESC,age DESC;//id降序,然后age降序。说明:组合排序就是指按照多个字段进行整原创 2020-11-21 13:59:58 · 206 阅读 · 0 评论 -
MySQL学习笔记12——聚合函数
聚合函数的应用场景是数据分析,和增删改查有很大不同,增删改查是对"行"操作,而聚合函数是对"列"操作,主要有这么几个:(一)count: 统计指定字段的行数,值为null的行不会被计入。语句: SELECT COUNT(id) FROM teacher;//以一个字段为判定标准语句: SELECT COUNT(*) FROM teacher;//以所有字段为判定标准语句: SELECT COUNT(*) FROM teacher WHERE age>20;//和WHERE语句搭配使用,查询年龄原创 2020-11-21 18:47:26 · 124 阅读 · 0 评论 -
MySQL学习笔记13——分组查询(GROUP BY)
分组查询要结合聚合函数使用,否则分组意义不大,为了便于理解,我先给出测试用的表和数据如下图:(一)不结合聚合函数的写法语句: SELECT * FROM teacher GROUP BY sex;语句说明: 语句是按照性别分组运行结果:结果分析: 语句没有结合聚合函数,因此结果输出男组第一条数据和女组第一条数据,这个语句没有实际的应用价值。(二)结合聚合函数的写法语句: SELECT SUM(age) FROM teacher GROUP BY sex;说明: 求男性年龄SUM与女性年龄原创 2020-11-21 20:06:04 · 155 阅读 · 0 评论 -
MySQL学习笔记14——WHERE和HAVING的区别
面试常谈:WHERE和HAVING有何区别区别一:WHERE是分组前的条件语句,HAVING是分组后的条件语句。区别二:WHERE后面不可以使用聚合函数,HAVING后可以使用聚合函数。新生请谨记于心!原创 2020-11-21 20:43:35 · 73 阅读 · 0 评论 -
MySQL学习笔记15——LIMIT分页查询
LIMIT分页无处不在,使用起来也不难,简单记录一下第一页 SELECT * FROM teacher LIMIT 0,5 ;第二页 SELECT * FROM teacher LIMIT 5,10 ;第三页 SELECT * FROM teacher LIMIT 10,15 ;第四页 ......以此类推!说明: LIMIT 后的第一个参数是跳过的条数,第二个参数是展示的条数。OK ! 这就是数据分页,需要结合具体的应用场景,记录每次获取数据时应该跳过的条数,在此不过多讲解。...原创 2020-11-21 21:01:13 · 392 阅读 · 0 评论 -
MySQL学习笔记16——数据约束
一、主键约束(一)设置主键主键关键字: PRIMARY KEY主键的选择: 通常不用业务数据作为主键,主键绝对不能重复,通常选择id作为主键。设置语句: CREATE TABLE teacher2(id int PRIMARY KEY,name CHAR(6),age int,birthday DATE,sex char(1));说明: 在创建数据库表的时候在字段后面加上主键关键字即可。(二)删除主键删除语句: ALTER TABLE teacher2 DROP PRIMARY KEY;(原创 2020-11-22 07:43:57 · 116 阅读 · 0 评论 -
MySQL学习笔记17——字段默认值
字段默认值关键字: DEFAULT语句: CREATE TABLE student3(id int,name char(10),additional char(100) DEFAULT '这个用户有点懒,没有设置签名');说明: 如果插入语句有数据则使用数据,插入语句没有数据则使用默认值。OK! 简单笔记,MySQL基础知识到此结束!...原创 2020-11-22 07:53:19 · 157 阅读 · 0 评论