测试自增长:
一个表中只能有一个自增长,自增长一定是主键,主键不一定是自增长
插入不指定主键值时,插入的是最大值加1
创建自增长:
也可用 INSERT test22 VALUES(NULL,'用户名');
也会自增长
指定自增长开始编号:
如上,则自增长会从100开始编号
修改自增长值:
ALTER TABLE tbl_name AUTO_INCREMENT = num;
非空约束:
NOT NULL:
标志非空的字段不能存在空值
测试非空:
非空约束必填,必须给一个非空值
测试默认值:
DEFAULT +默认值
给出所有值
测试唯一性约束:
NULL值不算重复,若是中途出现插入数据错误,自增长仍然会增长1
约束了唯一性的属性,不能出现重复的数据
重命名数据表:
修改表名:
ALTER TABLE tbl_name(原来) RENAME TO tbl_name(新表名);
ALTER TABLE tbl_name(原来) RENAME TO AS tbl_name(新表名);
ALTER TABLE tbl_name(原来) RENAME tbl_name(新表名);
RENAME TABLE 原表名 TO 新表名;
添加和删除字段:
添加字段:
一次一次添加:
ALTER TABLE tbl_name 字段名 字段类型 (FIRST/AFTER 字段名);
多次添加:
A.选中表:ALTER TABLE tbl_name
B.多次添加:ADD 字段名 字段类型 (FIRST/AFTER 字段名);
ADD 字段名 字段类型 (FIRST/AFTER 字段名);.....
删除字段:
ALTER TABLE tbl_name DROP 字段名;
一次删除多个:
A.ALTER TABLE tbl_name;
B.DROP 字段名;
DROP 字段名;....
修改字段:
关键字 MODIFY与CHANGE:
修改字段:ALTER TABLE tbl_name MODIFY 字段名称 字段类型【完整性约束条件】【FIRST|AFTER 字段名】
修改字段名称:ALTER TABLE tbl_name CHANGE 旧字段名称 新字段名称 字段类型【完整性约束条件】【FIRST|AFTER 字段名称】
添加删除默认值:
添加默认值:
ALTER TABLE tbl_name ALTER 字段名称 SET DEFAULT 默认值;
删除默认值:
ALTER TABLE tbl_name ALTER 字段名称 DROP DEFAULT;
添加删除主键:
添加主键:
ALTER TABLE tbl_name ADD PRIMARY KEY(字段名);
删除主键:
ALTER TABLE tbl_name DROP PRIMARY KEY;
添加删除唯一性约束:
添加唯一性约束:
ALTER TABLE tbl_name ADD UNIQUE [INDEX|KEY][索引名称](字段名称)
删除唯一性约束:
ALTER TABLE tbl_name DROP [INDEX|KEY]index_name
删除唯一索引:
ALTER TABLE tbl_name DROP INDEX index_name;
ALTER TABLE user12 DROP KEY index_name;
修改表存储引擎:
ALTER TABLE tbl_name ENGINE = engine_name;
修改自增长值:
ALTER TABLE tbl_name AUTO_CREMENT = num;
删除数据表:
DROP TABLE tbl_name [,tbl_name...]
插入记录:
A.不指定具体字段名
INSERT [INTO] tbl_name VALUES(字段值,....);
B.列出指定字段
INSERT [INTO] tbl_name(字段名称1) VALUES(字段值1,....);
C.同时插入多条记录
INSERT [INTO] tbl_name VALUES(值...),(值...);
D.通过SET形式插入记录
INSERT [INTO] tbl_name SET 字段名称=值,...
E.将查询结果插入到表中
INSERT [INTO] tbl_name [(字段名称,...)] SELECT 字段名称 FROM tbl_name [WHERE 条件];
更新删除记录:
更新数据记录:
UPDATE tbl_name SET 字段名称=值,...[WHERE 条件][ORDER BY 字段名称][LIMIT 限制条数]
删除数据记录:
A.DELETE FROM tbl_name[WHERE 条件][ORDER BY 字段名称][LIMIT 限制条数]
B.彻底清空数据表:TRUNCATE[TABLE]tbl_name
查询数据操作:
查询记录:
查询表达式:
每一个表达式表示想要的一列,必须至少有一列,多个列之间可以用逗号隔开,*表示所有列,tbl_name.*可以表示命名表的所有列,查询表达式可以使用[AS]alias_name为其赋予别名
WHERE条件:
查询:
等于:
不等于:
检测字段值是否为NULL:
可以用<=>或者 IS NULL
查询符合范围值的字段:
指定集合查询:
适用于数字也适用于字符串
模糊查询
LIKE关键词
%:代表0个或者多个字符
_:代表1个任意字符
查询姓张的用户:
查询用户名中包含in的用户:
查询用户名为3位的用户:
使用三个下划线
分组查询:
关键字GROUP BY
A.SELECT *FROM tbl_name GROUP BY 字段名:
只会显示每个分组的第一个元组
B.按照位置分
SELECT * FROM tbl_name GROUP BY num
分组查询配合聚合函数:
GROUP BY 配合GROUP_CONCAT()得到分组详情
查询id,sex,用户名详情按照性别分组
SELECT id,sex,GROUP_CONCAT(username) FROM tbl_name GROUP BY sex;
聚合函数:
COUNT():统计总数,不统计NULL值
MAX():获取最大值
MIN():获取最小值
AVG():获取平均值
SUM():获取总和值
WITH ROLLUP:记录上面所有记录的总和
HAVING语句:
对分组的二次筛选
只有配合GROUP BY才有意义
基于如上查询二次查询,要求组中人数大于2,且最大年龄大于60的:
还要满足id大于2的用户: