目录
7.聚合(最大max,最小min,平均avg,计数count,求和sum)
一、数据库
1.测试mysql是否可用
mysql -V
2.打开mysql服务
mysql -uroot -p123456 -h192.168.88.161
3.数据库的创建
CREATE DATABASE Student;
4.查看当前所有数据库
SHOW DATABASES;
5.使用数据库
USE Student;
6.查看当前数据库
SELECT DATABASE();
7.删除数据库
DROP DATABASE Student;
二、数据表
1.创建数据表
CREATE TABLE students ( id INT NOT NULL, name VARCHAR(30), gender VARCHAR(30) );
2.查看当前数据库中所有的数据表名称
SHOW TABLES;
3.使用in 查询指定数据库中所有的表名称.
SHOW TABLES IN test_db;
4.查询表中字段的详细信息
DESC students;
5.删除数据表
DROP TABLE students;
6.新增列
ALTER TABLE students ADD height DOUBLE;
7.修改列
ALTER TABLE students CHANGE id stu_id VARCHAR(30) not null;
8.删除列
ALTER TABLE students DROP gender;
9.修改表名
ALTER TABLE students RENAME TO heros;
10.中文
USE test_db_utf8;
三、数据
1.插入
INSERT INTO student VALUE (1, '小明', '男');
INSERT INTO student(id, name) VALUE (2, '小芳');
2.修改
UPDATE student SET gender = '女' WHERE id = 4;
3.删除
DELETE FROM student WHERE id = 5;
4.删一个格(删除表中id=6的gender字段的值)
UPDATE student SET gender = NULL WHERE id = 6;
5.删除所有的数据
DELETE FROM student;
四、主键
1.主键
primary key(既不重复,也不为空,放字段后)
2.删主键
ALTER TABLE heros DROP PRIMARY KEY ;
3.自增
auto increment(放字段后)
4.标签
comment = ' '(放字段后)
5.非空
not null(放字段后)
6.唯一约束
unique(该字段不能重复,放字段后)
五、初级查询
1.查看表
select * from 表名;
2.指定列
SELECT pname, price FROM product;(列可计算,可常数)
3.比较
SELECT * FROM product WHERE price > 600;(可 between and 或 in 范围)
4.模糊
SELECT * FROM product WHERE name LIKE '香%';
5.不空
······ WHERE price IS NOT NULL;
6.排序
select 列 from 表 [where] order by 条件(age) (Asc升/Desc降);
二级:select 列 from 表 [where] order by 条件(1) Asc , 条件(2) Asc;
7.聚合(最大max,最小min,平均avg,计数count,求和sum)
select max(age) from 表 where [条件];查询该表共多少数据:select count (*) from 表 ;
8.分组
select 列,[聚合结果] from 表 group by 分组条件列;
select 列,[聚合结果] from 表 where 条件 group by 分组条件列 order by 条件(age) (Asc升/Desc降);
9.注意事项
在开发中使用where筛选,要使用在 group by 之前,order by要用在group by 之后
10.同类单独聚合
select group_count(聚合列) from 表 group by 分组列,按照分组列分组后,同组内不同属性记录放到一条中
六、中级查询
1.排序查询
格式:select 列 from 表 [where] order by 条件(age) (Asc升/Desc降);
二级排序:select 列 from 表 [where] order by 条件(1) Asc , 条件(2) Asc;
2.聚合查询
最大max(······),最小min(······),平均avg(······),计数count(······),求和sum(······)
格式:select max(age) from 表 where [条件];
查询该表共多少数据:select count (*) from 表 ;
3.分组查询
格式:select 列,[聚合结果] from 表 group by 分组条件列;
与聚合函数合并:select 列,[聚合结果] from 表 where 条件 group by 分组条件列 order by 条件(age) (Asc升/Desc降);
4.同类单独聚合
函数:group_count(聚合列)
格式:select group_count(聚合列) from 表 group by 分组列;
5.分页查询
格式:select 列名 from 表名 limit m , n;
6.外键约束
外键(建表时末尾直接加):foreign key (外键字段) references category (主表主键)
7.后添加
后加外键:ALTER TABLE 表 ADD CONSTRAINT 外键名 FOREIGN KEY (外键字段) REFERENCES category(主表主键);
8.删外键
ALTER TABLE 表 DROP FOREIGN KEY 外键名;
9.使用的外键值,必须是主表中存在的
先添加主表主键:INSERT INTO category VALUES (2,'办公用品');
再添加从表数据:INSERT INTO productsVALUES (1,'雕牌打字机',23.55,2);
10.删除主表数据
先删除从表中,使用该id值的从表记录 :DELETE FROM 从表 WHERE 外键 = 2;
再副除主表中的该记录即可 :DELETE FROM 主表 WHERE id = 2;
11.内连接
格式:select 字段列表 from 左表 inner join 右表 on 连接规则;
连接规则:左表.列 = 右表.列
12.左外连接
关键字 : left outer join
格式 : select 列名 from 左表 left outer join 右表 on 连接规则;
13.右外连接
关键字 : right outer join
格式 : select 列名 from 左表 right outer join 右表 on 连接规则;
七、高级查询
1.as别名
表别名:在from 后的表名 后添加 as 别名 表名 as 别名
字段别名:在select 之后的字段名 添加 as 列名 as 别名
2.子查询
select 列 from 表 (select........)
3.sql语句的执行顺序
目标列(第七)
SELECT 列1,列2.....
来自表名(第一)
from 表1
表连接(第二)
(LEFT/RIGHT) JOIN 表2 ON 表1.字段1 = 表2.字段2
外部条件(第三)
WHERE 筛选条件
分组(第四)
GROUP BY 分组字段
内部条件(第五)
HAVING 分组后筛选条件
排序(第六)
ORDER BY 排序
选取(第八)
LIMIT 起始索引, 条目数;