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

数据库小知识

AUTO_INCREMENT=100 //设置自增从100开始,不指定长度默认是1(当前表)

SET @@auto_increment_increment=5 //设置每次自增的长度为5,不指定长度默认是1(整个数据库)

CREATE TABLE `grade`(

`GradeID` INT(11) NOT NULL AUTO_INCREMENT COMMENT '年级编号',

`GradeName` VARCHAR(50) NOT NULL COMMENT '年纪名称',

PRIMARY KEY (`GradeID`)

)ENGINE=INNODB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;

//声明自增的字段,定义自增的开始数是6

DEFAULT CHARSET=utf8 :设置默认的字符集(MySQL默认的字符集编码Latin1)

ENGINE=InnoDB:表示创建表时使用InnoDB 存储引擎(默认)

DEFAULT NULL:默认是NULL

CREATE TABLE IF NOT EXISTS `student`( 
'字段名' 列类型 [属性] [索引] [注释], 
'字段名' 列类型 [属性] [索引] [注释], 
...... 
'字段名' 列类型 [属性] [索引] [注释] 
)[表的类型][字符集设置][注释]

列类型/列属性:INT(11)

属性字段:例如NOT NULL DEFAULT '匿名' 

索引字段:PRIMARY KEY (`id`)        //如普通索引、唯一索引、主键索引

约束:

约束(如外键约束、唯一约束等)需要通过 CONSTRAINT 关键字单独定义,且通常写在所有字段定义之后,语法形式为:

CONSTRAINT [约束名] 约束类型 (字段名) 关联规则
例如外键约束:CONSTRAINT FK_xxx FOREIGN KEY (字段) REFERENCES 表(字段)

数据查询语言

基础查询

拼接

SELECT CONCAT('姓名',`StudentName`) AS 新名字 FROM student;

//将CONVAT括号中的东西拼起起来,放到字段名StudentName改为新名字的列下

//其本质是搜索StudentName字段这列

自增

-- 查询自增步长(变量)

SELECT @@auto_increment_increment;

连接查询

左连接左外连接
left joinleft outer join
右连接右外连接
right joinright outer join
全外连接(匹配+不匹配)全外连接(不匹配)
full outer joinfull outer join
内连接

Inner join(join)

分页查询

select 查询列表 from 表 
limit offset,pagesize;

offset:本页的前页有多少条数据

pagesize:每页多少条数据

offset=(n-1)*pagesize

limit n 表示从0到n的页面  //n表示的n条数据

MYSQL函数

SELECT RAND();        //(0,1)之间的小数

SELECT INSERT('我喜欢',1,1,'超级')       //结果:超级喜欢

//1:开始位置 1:去除的长度 (MySQL 中字符串位置从 1 开始计数

SELECT INSTR('zsrs','s');         //结果:2     //返回第一次出现字串索引的位置

SELECT SUBSTR('坚持就是胜利',3,6);        //就是胜利(截取的长度是6,但是现有可被截取的字符串长度为4)

//返回指定的字符串(源字符串,截取位置,截取长度)

行锁

共享锁

select * from account where id=1 lock in share mode

排他锁

select * from account where id=1 for update

查看事务的状态

select * from information_schema.INNODB_TRX

查看锁的状态

select * from information_schema.INNODB_LOCKS

查看锁争端状态

show status like `innodb_row_lock%`;

查询等待的锁

select * from information_schema.INNODB_WAITS

查看之前死锁的记录

SHOW ENGINE INNODB STATUS;

查看mysql的隔离级别

show variables like `tx_isolation`

索引

索引的底层数据结构

概念

数据结构

Innodb和myisam存储引擎关于索引的区别

分类

判断语句是否走了索引

explain查看执行计划

实战:最左匹配/索引失效的场景

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

相关文章:

  • C4画图实战案例分享
  • 利用CompletableFuture优化查询效率
  • FreeRTOS硬件中断发生时的现场
  • 逻辑回归在银行贷款审批中的应用:参数选择与实践
  • c++详解(宏与内联函数,nullptr)
  • 查看主板信息的3种方法
  • PL-0功能拓展及基于VSCode的IDE配置
  • QT开发---图形与图像(补充)
  • 逻辑斯蒂回归的模型优化
  • 疯狂星期四文案网第26天运营日记
  • 台式机 Server 20.04 CUDA11.8
  • 上海月赛kk
  • 电力系统与变压器实验知识全总结 | 有功无功、同步发电机、短路空载实验、电压调整率、效率条件全讲透!
  • 学习嵌入式第十七天
  • 基于coze studio开源框架二次定制开发教程
  • 幂等性校验(订单重复提交问题)
  • IOMMU Client设备DMA配置过程分析(九)
  • STM32 使用 RTC 实现实时时钟功能
  • C语言:20250801学习(构造类型)
  • 机器学习:开启智能时代的钥匙
  • MySQL 高并发下如何保证事务提交的绝对顺序?
  • 学习笔记:原子操作与锁以及share_ptr的c++实现
  • synchronized 深度剖析:从语法到锁升级的完整演进
  • 什么是Sedex审核?Sedex审核的主要内容,Sedex审核的流程
  • 通用障碍物调研
  • 【C++进阶】一文吃透静态绑定、动态绑定与多态底层机制(含虚函数、vptr、thunk、RTTI)
  • 测试分类:详解各类测试方式与方法
  • 使用gcc代替v语言的tcc编译器提高编译后二进制文件执行速度
  • Trust Management System (TMS)
  • MySQL锁的分类 MVCC和S/X锁的互补关系