数据库小知识

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 join | left outer join |
| 右连接 | 右外连接 |
| right join | right outer join |
| 全外连接(匹配+不匹配) | 全外连接(不匹配) |
| full outer join | full 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)

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

相关推荐
倔强的石头_10 小时前
kingbase备份与恢复实战(二)—— sys_dump库级逻辑备份与恢复(Windows详细步骤)
数据库
jiayou642 天前
KingbaseES 实战:深度解析数据库对象访问权限管理
数据库
于眠牧北2 天前
MySQL的锁类型,表锁,行锁,MVCC中所使用的临键锁
mysql
李广坤2 天前
MySQL 大表字段变更实践(改名 + 改类型 + 改长度)
数据库
Turnip12024 天前
深度解析:为什么简单的数据库"写操作"会在 MySQL 中卡住?
后端·mysql
爱可生开源社区4 天前
2026 年,优秀的 DBA 需要具备哪些素质?
数据库·人工智能·dba
随逸1774 天前
《从零搭建NestJS项目》
数据库·typescript
加号34 天前
windows系统下mysql多源数据库同步部署
数据库·windows·mysql
シ風箏4 天前
MySQL【部署 04】Docker部署 MySQL8.0.32 版本(网盘镜像及启动命令分享)
数据库·mysql·docker
李慕婉学姐4 天前
Springboot智慧社区系统设计与开发6n99s526(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
数据库·spring boot·后端