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)
//返回指定的字符串(源字符串,截取位置,截取长度)

