数据库的安装和卸载
-
卸载时在客户端卸载
-
安装路径手动删除
-
隐藏路径手动删除
-
mysql数据库服务器端口号默认是3306
-
mysql数据库服务器的字符编码是UTF-8
-
安装数据库时本机的杀毒软件建议关闭
常用命令
-
查看数据库名字 show databases;
-
创建数据库 create databases 数据库名字
-
使用数据库的命令 use 数据库名字
-
查看表的命令 show 表名
-
创建表的命令 create table 表名(属性 属性的类型)
-
删除表的命令 drop table tbalename;
-
删除数据库的命令 drop database databasename;
Naviccat的基本操作
-
创建数据库
-
创建表
-
id 每张表需要有id 主键(唯一,不能重复)
-
double 长度8 小数2 整数就是6
-
data 日期类型(默认格式: 2021-2-3)
约束
-
默认值 null 空 Empty String有值有内容
-
不为空
-
主键:
-
外键
-
唯一 值必须唯一
添加
-
SQL作用:实现对表中数据添加、修改、删除、查询操作
-
INSERT添加语句
-
数据的顺寻必须和表的结构顺序一致
-
INSERT INTO person VALUES(4,'小李',18);
-
INSERT INTO person(id,name) VALUES(8,'小康')
修改
-
修改语句通常必须添加where语句,否则会修改所有的语句
-
UPDATE person SET NAME='ASD',age=15 WHERE id=1;
-
UPDATE person SET age=22 WHERE NAME ='小红';
删除
-
DELETE FROM person WHERE id=8;
-
DELETE FROM person WHERE age=18;
查询
-
select * 字段 别名 表达式
-
SELECT * FROM person;查询所有
-
SELECT name FROM person;查询name
-
SELECT name , age from person;查询name和age
-
SELECT name n,age a from person;查询name和age并把name命名为n age命令为a
-
select age+1 FROM person; 查询age并在值上面加1
分组查询
-
分组的理解:相同的就是一组
-
分组的注意;按照组来显示,显示组的信息
-
分组的注意:通常必须和聚合统计类的函数一起使用
-
分组的注意:如果按照字段分组,select只能写分组的组名或聚合函数
select sex,
max(age),最大值
MIN(age),最小值
SUM(age),求和
AVG( age),平均值
COUNT(*) 总数
from person GROUP BY sex;
having
-
having必须要和group by 一起使用
-
where条件是对表中每一条记录进行过滤
-
having条件对分组之后的每条记录进行过滤
SELECT sex s ,COUNT(*)c from person where name !='小白' GROUP BY sex HAVING c>=2;
ORDER BY
-
select * from person ORDER BY age ; 默认升序
-
select * from person ORDER BY age ASC; 升序
-
select * from person ORDER BY age DESC; 降序
FROM的用法
-
SELECT * FROM person;
-
SELECT name FROM person;
-
select person.name from person;
-
select p.name from person p; 将person改名为p
where
比较运算符
-
select * from person where age >18;
-
select * from person where age <18;
-
select * from person where age =18;
-
select * from person where age !=18;
-
select * from person where age <=18;
-
select * from person where age >=18;
逻辑运算符
AND 逻辑与
select * from person where age>=15 AND age<=18;
OR逻辑或 select * from person where age>15 or name='小白';
SELECT * from person where age is not null; SELECT * from person where name not like '%天%'; select * from person where name not IN ('ASD','小白','小黑')
其他运算符
-
BETWEEN AND查询数字区间、包含边界值 select * from person where age BETWEEN 15 AND 18;
-
IN 查询集合区间 select * from person where name IN ('ASD','小白','小黑') select * from person where name='ASD' OR name='小白' OR name='小黑';
-
LIKE 模糊查询、搜索功能、必须时字符类型varchar 匹配符_:匹配的时一个任意字符(一个字符) 匹配符%:匹配的时零个或任意字符(任意个)不知道的字在哪里下划线就在那里 SELECT * from person where name like '小__'; SELECT * from person where name like '%小%';
-
NULL 空 表示什么也没有、表示未知的意思 SELECT * from person where age is null;
DISTINCT 显示唯一的关键字
-
select DISTINCT age from person;
-
select DISTINCT sex from person;
-
select COUNT(*) from person; 查询一共有多少个记录
-
select COUNT(age) from person;查询记录了多少
-
LIMIT关键字
-
LIMIT n 表示返回前n条记录
LIMIT m,n m表示起始位置、n表示返回的记录数 从m为返回n条记录
-
作用一:top-n分析
第一步按照一个字段排序,然后用关键字截取记录
SELECT * from person ORDER BY age DESC LIMIT 3; 按照age降序取前三个数据
-
作用二:分页
分页功能需要2个参数:页码(第几页 x)和条数(返回的数据 y)
SELECT * from person LIMIT (x-1)*y,y; `
SELECT * from person LIMIT 0,2;
多表查询
表与表之间的关联关系 一对一:1:1 多的一方添加公共列(主表的主键) 公司表 员工表 一 多 公共列:两个表共有的列、相同类型、相同精度、完全相同 如果有n个表至少有n-1个公告列 SELECT * from emp ,com WHERE com.id=emp.comid; SELECT com.name ,emp.name from emp ,com WHERE com.id=emp.comid; 左连接 左连接:以左表为主表、可以把左表中所有记录都查询出来 当左边中不满足条件的需要查询的时候 select * from com LEFT JOIN emp ON com.id=emp.comid; 左外连接 select * from com LEFT OUTER JOIN emp ON com.id=emp.comid;
右连接 右连接:以右表为主表、可以把 右表中所有记录都查询出来 select * from emp RIGHT JOIN com ON com.id=emp.comid; 右外连接 select * from emp RIGHT OUTER JOIN com ON com.id=emp.comid;
内连接 只查询出满足公共列条件的记录、和上边where公共列作为条件结果一样 select * from com INNER JOIN emp on com.id=emp.comid;
一对多:1:M 多对多:M:N
子查询
通过A表查询B表 select (select name from com where id = comid) from emp where name = '小白';
数据库忘记密码
- 先关闭数据库(net stop mysql 或者在服务里面关闭数据库)
- 将路径换到数据库的bin目录后输入mysqld --console --skip-
grant-tables --shared-memory - 再重新打开一个cmd将路径换到数据库的bin目录中输入MySQL就可以进入mysql数据库中
- 输入flush privileges;刷新系统权限
- 输入set password for root@localhost='123456';重置密码为“123456”
grant
浙公网安备 33010602011771号