版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/CSDNgaoqingrui/article/details/81058126
mysql部分初级命令笔记
1 | 查看所有数据库 | show databases; |
2 | 使用数据库 | use 数据库名; |
3 | 查看当前使用的数据库 | select database(); |
4 | 创建数据库 | create database 数据库名 CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; |
5 | 删除数据库 | drop database 数据库名; |
6 | 查看当前数据库中所有表 | show tables; |
7 | 查看表结构 | desc 表名; |
8 | 修改表-添加字段 | alter table 表名 add 列名 类型; |
9 | 修改表-修改字段:重命名版 | alter table 表名 change 原名 新名 类型及约束; |
10 | 修改表-修改字段:不重命名版 | alter table 表名 modify 列名 类型及约束; |
11 | 修改表-删除字段 | alter table 表名 drop 列名; |
12 | 删除表 | drop table 表名; |
13 | 查看表的创建语句 | show create table 表名; |
14 | 全列插入:值的顺序与表中字段的顺序对应 | insert into 表名 values(...) |
15 | 部分列插入:值的顺序与给出的列顺序对应 | insert into 表名(列1,...) values(值1,...) |
16 | 全列多行插入:值的顺序与给出的列顺序对应 | insert into 表名 values(...),(...)...; |
17 | 备份 | mysqldump –uroot –p 数据库名 > python.sql; # 按提示输入mysql的密码 |
18 | 恢复 |
连接mysql,创建新的数据库,退出连接,执行如下命令:
mysql -uroot –p 新数据库名 < python.sql # 根据提示输入mysql密码
|
19 | 三范式 |
* 第一范式(1NF):强调的是列的原子性,即列不能够再分成其他几列。
* 第二范式(2NF):首先是 1NF,另外包含两部分内容,一是表必须有一个主键
* 第三范式(3NF):首先是 2NF,另外非主键列必须直接依赖于主键,不能存在传递依赖。
|
20 聚合函数 | 最大值 | max(列)表示求此列的最大值 |
21 | 最小值 | min(列)表示求此列的最小值 |
22 | 求和 | sum(列)表示求此列的和 |
23 | 求平均数 | avg(列)表示求此列的平均值 |
24 | group by + group_concat() | select gender,group_concat(age) from students group by gender; |
25 | group by + having | select gender,count(*) from students group by gender having count(*)>2; |
26 | 分页 | select * from 表名 limit start,count |
27 | 标量子查询 | select * from students where age > (select avg(age) from students); |
28 | 列级子查询 | select name from classes where id in (select cls_id from students); |
29 | 行级子查询 | select * from students where (height,age) = (select max(height),max(age) from students); |
30 | 查看版本 | select version(); |
31 | 显示当前时间 | select now(); |
32 | 定义视图,一般以V开头 | create view 试图名称 as select语句; |
33 | 查看视图 | 1.点击视图, 2.show tables; |
34 | 删除视图 | drop view 视图名称; |
35 | 视图的作用 |
1. 提高了重用性,就像一个函数 2. 对数据库重构,却不影响程序的运行
3. 提高了安全性能,可以对不同的用户 4. 让数据更加清晰
|
36 | 事务四大特性 |
原子性:一个事务必须被视为一个不可分割的最小工作单元,整个事务中的所有操作要么全部提交成功,要么全部失败回滚,对于一个事务来说,不可能只执行其中的一部分操作,这就是事务的原子性。
一致性:数据库总是从一个一致性的状态转换到另一个一致性的状态。
隔离性:一个事务所做的修改在最终提交以前,对其他事务是不可见的。
持久性:一旦事务提交,则其所做的修改会永久保存到数据库。
|
37 | 开启事务命令 |
1.begin; 2. start transaction;
开启事务后执行修改命令,变更会维护到本地缓存中,而不维护到物理表中
|
38 | 提交事务 | commit; 将缓存中的数据变更维护到物理表中 |
39 | 回滚事务 | rollback; 放弃缓存中变更的数据 |
40 | 事务总结 |
1. 修改数据的命令会自动的触发事务,包括insert、update、delete
2. 而在SQL语句中有手动开启事务的原因是:可以进行多次数据的修改,如果成功一起成功,否则一起会滚到之前的数据
|
查看索引 | show index from 表名; | |
创建索引 |
create index 索引名称 on 表名(字段名称(长度))
* 如果指定字段是字符串,需要指定长度,建议长度与定义字段时的长度一致
* 字段类型如果不是字符串,可以不填写长度部分
|
|
删除索引 | drop index 索引名称 on 表名; | |
开启时间监测 | set profiling=1; | |
查看执行的时间 | show profiles; | |
BTREE:平衡树 |