分组查询 //group by area
1. 分组之后查询的字段:分组字段、聚合函数【注意点】
2. where 和 having 的区别?
1. where 在分组之前进行限定,如果不满足条件,则不参与分组。having在分组之后进行限定,如果不满足结果,则不会被查询出来
2. where 后不可以跟聚合函数,having可以进行聚合函数的判断。
创建【数据库】
CREATE DATABASE learndemo;
CREATE DATABASE learndemo IF NOT EXISTS learndemo;
CREATE DATABASE learndemo DEFAULT CHARACTER SET gbk;
CREATE DATABASE IF NOT EXISTS tmpdemo2 CHARACTER SET gbk;
查看数据库
show datebases;
SHOW CREATE DATABASE learndemo;
修改数据库的默认的字符集
ALTER DATABASE learndemo CHARACTER SET utf8;
删除数据库
DROP DATABASE [if exists] learndemo;
查看正在使用的数据库
SELECT DATABASE();
使用/切换数据库
USE learndemo;
int
double(5,2)
date yyyy-MM-dd
datetime yyyy-MM-dd HH:mm:ss
timestamp yyyy-MM-dd HH:mm:ss //如果没有指定,默认系统当前时间
varchar(20)
创建【数据表】
create table student(
id int,
name varchar(32),
age int ,
score double(4,1),
birthday date,
insert_time timestamp
);
快速创建一个表结构相同的表
CREATE TABLE studentlike LIKE student;
查看当前数据库的所有表
SHOW TABLES;
查看表结构
DESC student;
查看创建表的sql语句
SHOW CREATE TABLE student;
修改表名
alter table student rename to newtablename;
修改表的字符集
alter table student character set utf8;
增加一列
alter table student add gender varchar(20);
修改列名称 名称
alter table 表名 change 列名 新列别 新数据类型;
alter table 表名 modify 列名 新数据类型;
删除列
alter table 表名 drop 列名;
删除表
DROP TABLE [IF EXISTS] studentlike;
04 【DML】
插入数据
INSERT INTO student
(id,NAME)
VALUES
(1,'成龙');
查询数据
SELECT id,NAME,birthday
FROM student;
更新数据
UPDATE student
SET
NAME = '迪丽热巴',
id = 2
WHERE id = 1;
删除数据
DELETE FROM student
WHERE id = 2;
清空表中的全部数据
TRUNCATE TABLE student;【推荐】
DELETE FROM student;
05 【DQL】
查询数据
select 字段列表
from 表名
where 条件列表
group by 分组字段
having 分组之后的条件
order by 排序的字段
limit 分页限定
某一列数据与固定值运算
SELECT
id+10
FROM student;
某一列数据与其他列数据运算
SELECT
*,(math+english) AS 总成绩
FROM student;
06 【条件查询】
CREATE TABLE student3 (
id INT, -- 编号
NAME VARCHAR(20), -- 姓名
age INT, -- 年龄
sex VARCHAR(5), -- 性别
address VARCHAR(100), -- 地址
math INT, -- 数学
english INT -- 英语
);