MYSQL语法2

**①单表查询:


1.排序

*ASC升序/DESC降序=>SELECT * FROM 表名 ORDER BY 字段 ASC|DESC


2.聚合

*count:统计指定列记录数,记录为NULL的不统计

例:SELECT COUNT(*) FROM student; -- 哪列最多返回哪列

*sum:计算指定列的数值和,如果不是数值类型,那么计算结果为0

例:SELECT SUM(math) FROM student;

*max:计算指定列的最大值,如果是字符串类型,那么使用字符串排序运算

例:SELECT MAX(math) FROM student;

*min:计算指定列的最小值

例:SELECT MIN(math) FROM student;

*avg:计算指定列的平均值,如果不是数值类型,那么计算结果为0

例:SELECT AVG(math) FROM student;



3.分组

*将分组字段结果中不同内容作为一组

例:SELECT * FROM student GROUP BY sex;#只显示男和女两列

*SELECT MAX(age), COUNT(sex), sex FROM student GROUP BY sex;#显示男和女的平均分、条数、性别


4.Having:

having与where的区别

having是在分组后对数据进行过滤.

where是在分组前对数据进行过滤

having后面可以使用分组函数(统计函数)

where后面不可以使用分组函数


代码例示:
#1 按性别分组
SELECT sex FROM student GROUP BY sex;

#2 查询男女各多少人
-- 分成男女2组, 分别统计每组人数
SELECT sex, COUNT(*) 总数 FROM student GROUP BY sex;

#3 查询男女各多少人,并且查出每组的最大年龄
SELECT sex, COUNT(*), MAX(age) FROM student GROUP BY sex;

#4 查询每种性别各多少人,并只显示性别人数>1的数据
SELECT sex, COUNT(*) FROM student GROUP BY sex HAVING COUNT(*) > 1;

# 查询年龄大于30岁的人,按性别分组,统计每组的人数, 并只显示性别人数>1的数据
SELECT sex, COUNT(*) FROM student WHERE age > 30 GROUP BY sex HAVING COUNT(*) >


**②数据库还原与备份

1.备份数据库:语法格式(没有登录mysq的情况下):mysqldump -u用户名 -p密码 -B 数据库 > 文件的路径;

2.语法格式(没有登录mysq的情况下):mysql -u用户名 -p密码 < 文件的路径;



**③SQL约束


1.分类:

*DEFAULT:默认值约束#address VARCHAR(50) DEFAULT '广州'#默认值就是广州

*NOT NULL: 不为空约束#NAME VARCHAR(10) NOT NULL,

*UNIQUE: 唯一约束#NAME VARCHAR(10) UNIQUE

*PRIMARY KEY: 主键约束

*FOREIGN KEY: 外键约束

*AUTO_INCREMENT:自动增长#id INT PRIMARY KEY AUTO_INCREMENT,



**④多表操作(重点,以后工作常用)


1.外键约束:一个表中的字段,引用另一表中的主键

2.新建表时添加外键约束步骤:

主表: 约束别人, 表结构不变

副表/从表: 被别人约束,修改表结构添加外键约束

DROP TABLE employee;

CREATE TABLE employee (
id INT PRIMARY KEY AUTO_INCREMENT,
NAME VARCHAR(30),
age INT,
dep_id INT,

-- 添加外键约束
-- CONSTRAINT: 添加约束
-- fk_emp_dep 外键名称
-- FOREIGN KEY(dep_id) 添加外键
-- dep_id哪个字段作为外键
-- REFERENCES 外键参照
-- department(id) 外键是哪张表的那个字段#department是一个表名
CONSTRAINT fk_emp_dep FOREIGN KEY(dep_id) REFERENCES department(id)
);


3.删除外键约束

*alter table 从表 drop foreign key 外键名称;

例:ALTER TABLE employee DROP FOREIGN KEY fk_emp_dep;

相关文档
最新文档