-
分组
分组查询是指使用GROUP BY语句对查询信息进行分组,相同的数据作为一组
SELECT 字段1,字段2,…… FROM 表名 GROUP BY 分组字段 [HAVING 条件];
分组后用having进行条件过滤
GROUP BY 怎么分组的?将分组字段结果中相同内容作为一组
分组和聚合函数一起使用
注意事项:当使用某个字段分组,在查询的时候也需要将这个字段查询出来,否则看不到数据是属于哪组的
SELECT SUM(life),sex FROM hero GROUP BY sex;
having与where的区别
having 是在分组后对数据进行过滤
where 是在分组前对数据进行过滤
having 后面可以使用聚合函数
where 后面不可用使用聚合函数
查看全部 -
分组
分组查询是指使用GROUP BY语句对查询信息进行分组,相同的数据作为一组
SELECT 字段1,字段2,…… FROM 表名 GROUP BY 分组字段 [HAVING 条件];
分组后用having进行条件过滤
GROUP BY 怎么分组的?将分组字段结果中相同内容作为一组
分组和聚合函数一起使用
注意事项:当使用某个字段分组,在查询的时候也需要将这个字段查询出来,否则看不到数据是属于哪组的
SELECT SUM(life),sex FROM hero GROUP BY sex;
having与where的区别
having 是在分组后对数据进行过滤
where 是在分组前对数据进行过滤
having 后面可以使用聚合函数
where 后面不可用使用聚合函数
查看全部 -
分组
分组查询是指使用GROUP BY语句对查询信息进行分组,相同的数据作为一组
SELECT 字段1,字段2,…… FROM 表名 GROUP BY 分组字段 [HAVING 条件];
分组后用having进行条件过滤
GROUP BY 怎么分组的?将分组字段结果中相同内容作为一组
分组和聚合函数一起使用
注意事项:当使用某个字段分组,在查询的时候也需要将这个字段查询出来,否则看不到数据是属于哪组的
SELECT SUM(life),sex FROM hero GROUP BY sex;
having与where的区别
having 是在分组后对数据进行过滤
where 是在分组前对数据进行过滤
having 后面可以使用聚合函数
where 后面不可用使用聚合函数
查看全部 -
聚合函数:是纵向查询,对一列的值进行计算,然后返回一个结果值,会忽略空值
count:统计指定列记录数,记录为null的不统计
sum:计算指定列的数值和,如果不是数值类型,计算结果为0
max:计算指定列的最大值
min:计算指定列的最小值
avg:计算指定列的平均值,如果不是数值类型,那么计算结果为0
聚合函数的使用:写在SQL语句SELECT后 字段名 的地方
SELECT 字段名…… FROM 表名;
SELECT COUNT(age) FROM 表名;
SELECT COUNT(*) FROM 表名;— 统计共有多少行数据(不算表头)
查看全部 -
排序
通过ORDEB BY 可以将查询结果进行排序(排序只是显示方式,不会影响数据库中数据的顺序)
语法:SELECT 字段名 FROM 表名 WHERE 字段=值 ORDER BY 字段名 [ASC|DESC]
ASC:升序,默认是升序
DESC:降序
单列排序:使用一个字段排序
组合排序
SECLECT 字段名 FROM 表名 WHERE 字段=值 ORDER BY 字段名1 [ASC|DESC],字段名2 [ASC|DESC],……;
查看全部 -
LIKE 表示模糊查询
SELECT *FROM 表名 WHERE 字段名 LIKE '通配符字符串';
满足通配符字符串规则的数据就会显示出来
MySQL通配符有两个:
% :表示0个或者多个字符(任意字符) (%笔记本% 苹果笔记本 )
例如:把名字中含“孙”的名字全搜出来:LIKE '%孙%';
_:表示一个字符 (笔记_ 笔记本 笔记1)
例如:把姓孙的且名字是三个字的名字搜出来:LIKE '孙_ _';
查看全部 -
删除表直接用DROP
删除列则须用ALTER TABLE student DROP intro
查看全部 -
逻辑运算符
and 多个条件同时满足
or 多个条件其中一个满足
not 不满足
in关键字
语法格式:SELECT * FROM 表明 WHERE 字段 in(数据1,数据2……);
in里面的每个数据都会作为一次条件,只要满足条件的就会显示
显示除过数据1,数据2之外的数据:
SELECT * FROM 表明 WHERE 字段 not in(数据1,数据2……);
范围运算符:
SELECT * FROM 表名 WHERE 字段名 BETWEEN 值1 AND 值2
表示从值1到值2范围,包头又包尾
查看全部 -
Navicat连接工具的使用
Navicat是一套快速、可靠且价格相当便宜的数据库管理工具
查看全部 -
DQL语句:不会对数据库中的数据进行修改,只是一种显示数据的形式
查询表中所有数据
1、使用*表示所有列:SELECT *FROM 表名;
2、写出要查询的每列的字段名称:SELECT id,name,age FROM 表名;
查询指定列的数据:SELECT id,name,age,…… FROM 表名;
别名查询
1、查询时给列、表指定别名需要使用AS关键字
2、使用别名的好处是方便观看和处理查询到的数据
SELECT 字段名1 AS 别名,字段名2 AS 别名…… FROM 表名;
其中AS可以省了不写
清除重复值
查询指定列并且结果不出现重复数据
SELECT DISTINCT 字段名 FROM 表名;
查询结果参与运算
1、某列数据和固定值运算:SELECT 列名1+固定值 FROM 表名;
2、某列数据和其他列数据参与运算:SELECT 列名1+列名2 FROM 表名;
注意:参与运算的必须是数值类型
查看全部 -
更新表记录
1、不带条件修改数据:UPDATE 表名 SET 字段名=值;
2、带条件修改数据:
UPDATE 表名 SET 字段名=值 WHERE 字段名=值;
3、关键字说明
UPDATE:修改数据
SET:修改哪些数据
WHERE:指定条件
删除表记录
1、不带条件删除数据:DELETE FROM 表名;
2、带条件删除数据:DELETE FROM 表名 WHERE 字段名=值;
truncate删除表记录:TRUNCATE TABLE 表名;
truncate与delete的区别
delete是将表中的数据一条一条的删除
truncate是将整个表摧毁,重新创建一个新的表,新的表结构和原来表结构一模一样
查看全部 -
蠕虫复制:在已有的数据基础之上,将原来的数据进行复制,插入到对应的表中
语法:INSERT INTO 表1 SELECT * FROM 表2;
作用:将表2中的数据复制到表1中
LIKE是复制表结构,无法复制表中的数据
如果只是想复制表1中的某些字段到新表2中
INSERT INTO 表2(name,age)SELECT name,age FROM 表1
查看全部 -
查看创建数据库结构
SHOW CREATE DATABASE 数据库名
查看全部 -
默认UTF字符集
查看全部 -
DDL数据定义语言:数据库、表、列
DML数据操作语言:数据增删改
DQL数据查询语言:数据查询
DCL数据控制语言:权限
查看全部 -
DML语句
1、插入记录
INSERT INTO 表名 (字段1,字段2,……) VALUES(值1,值2,……)
1)值与字段必须对应,个数和类型相同
2)值的数据大小必须在字符的长度范围内
3)除了数据类型外,其他的字段类型的值必须使用引号(建议单引号)
4)如果要插入空值,可以不写字段,或者插入null
2、插入全部字段
1)所有的字段名全写
INSERT INTO 表名 (字段1,字段2,……) VALUES(值1,值2,……)
2)不写字段名:INSERT INTO 表名 VALUES(值1,值2,……)
3、插入部分数据
INSERT INTO 表名 (字段1,字段2,……) VALUES(值1,值2,……)
没有添加数据的字段会使用null,null不要加引号
4、查询是否成功插入数据:SELECT * FROM 表名;
查看全部 -
修改表结构
1、添加表列:ALTER TABLE 表名 ADD 列名 类型;
2、修改列类型:ALTER TABLE 表名 MODIFY 列名 新的类型;
3、修改列名:ALTER TABLE 表名 CHANGE 旧表名 新表名 类型;
4、删除列:ALTER TABLE 表名 DROP 列名;
5、修改表名:RENAME TABLE 表名 To 新表名;
6、修改字符集:ALTER TABLE 表名 CHARACTER SET 字符集;
查看全部 -
DDL操作表
前提是先使用某个数据库:USE
创建表
语法:CREATE TABLE 表名(
字段名1 字段类型1,
字段名2 字段类型2,
……
);
查看数据库中所有的表:SHOW TABLES;
查看表结构:DESC 表名;
查看创建表的SQL语句:SHOW CREATE TABLE 表名;
快速创建一个表结构相同的表:CREATE TABLE 新表名 LIKE 旧表名;
删除数据表:DROP TABLE 表名;
判断表是否存在并删除表:DROP TABLE IF EXISTS 表名;
修改表结构
查看全部
举报