增删改查
增 : INSERT INTO
INSERT into person(name,stu_no) VALUES
('张六',1000007),
('赵四',1000001)
删:DELETE FROM
DELETE from person WHERE id = 24
改:UPDATE TABLE SET
UPDATE person set name = '张思思' WHERE id = 22
查: select
as 重命名
条件查询 :where
多条件查询 :
1.and : 两个条件必须全部满足才返回
2.or : 只需要满足一个条件
模糊查询 like
- % 相当于正则里的 * 匹配0个或多个
- _匹配一个字符
SELECT * FROM person
SELECT p.name FROM person as p
SELECT * FROM person WHERE name = '张思思'
SELECT * FROM person WHERE name in('张思思','张五')
SELECT * FROM person WHERE name in('张思思','张五') and stu_no = 1000003
SELECT * FROM person WHERE name in('张思思','张五') or stu_no = 1000003
SELECT * FROM person WHERE name LIKE '张%'
SELECT * FROM person WHERE name LIKE '张_'
排序
ORDER BY 字段 DESC 降序
ORDER BY 字段 ASC 升序
SELECT * FROM person ORDER BY column DESC
SELECT * FROM person ORDER BY column ASC
两个字段排序: 会优先已第一个字段排序,然后第二个
SELECT * FROM person ORDER BY sex, stu_no DESC
设置数据唯一性
设置索引类型:UNIQUE mysql添加相同的数据会报错
设置外键的作用
外键是相对于主键说的,是建立表之间 的联系的必须的前提。
例如:有两张表 person(学生) 和grade(成绩)表, person 中stu_no是学生的学号,而stu_no是依赖于grade中的stu_no。那么grade中的stu_no就是person的外键。
也就是当我们给stu_no创建一个外键,这个外键就是grade中的stu_no时,sty_no就必须与grade中stu_no一致,我们可以通过外键使两张表进行关联,进而查询出另一张表对应的数据。
SELECT * FROM person as p
left join grade as g on g.stu_no = p.stu_no
WHERE p.stu_no = 1000003
mysql内置函数
mysql 分页的简单实现
分页实际上使用 LIMIT 来实现的
LIMIT有两个参数:第一个是偏移量(从0开始的),第二个是要返回的最大行数(row_count)
公式: LIMIT (page -1) * row_count , row_count
SELECT * FROM person LIMIT 0,3
SELECT * FROM person LIMIT 3,3
GROUP BY (分组)
语法:你要分组的字段后面跟聚合函数(正常的写法)
select sex, count(*) as sum from person GROUP BY sex
HAVING: 对分组后的数据进行再次筛选
// 筛选出数量小于5的
SELECT sex, count(*) as sum FROM person GROUP BY sex HAVING count(*) < 5
group_concat 配合group by 一起使用,用于将某一列的值用分隔符进行拼接,默认 SEPARATOR ‘,’ 逗号
select sex, GROUP_CONCAT(name) from person GROUP BY sex
// 以分号分割
select sex, GROUP_CONCAT(name SEPARATOR ';') from person GROUP BY sex
DISTINCT (去重)
语法:SELECT DISTINCT column from person
DISTINCT 后面可以跟多个字段,如果是多个字段的话会组合去重
表连接
自连接
一般用于树状查询
用法:pid是省级标记,查出每个城市归属与那个省
SELECT A.pid, A.province, B.province as provinceName
FROM city A, city B
WHERE A.pid = B.id AND A.pid <> 0
mysql忘记root 密码的处理方式
- 关闭mysql服务
- 关闭权限验证登录
- 刷新权限 FLUSH PRIVILEGES
- 修改root用户的密码ALTER USER ‘root’ @ ‘localhost’ IDENTIFIED BY ‘123456’