📖本篇内容:MySQL的常用指令 —— 一文可以快速熟悉、回忆Sql语句
📆 最近更新:2022年1月10日 MySQL的常用指令
🙊个人简介:一只二本院校在读的大三程序猿,本着注重基础,打卡算法,分享技术作为个人的经验总结性的博文博主,虽然可能有时会犯懒,但是还是会坚持下去的,如果你很喜欢博文的话,建议看下面一行~(疯狂暗示QwQ)
🌇 点赞 👍 收藏 ⭐留言 📝 一键三连 关爱程序猿,从你我做起
本文目录
MySQL的常用指令
写在前面
因为最近在复习Java的基础框架、也复习到了
数据库的相关知识
、这里就是
整合了
所有小付在开发项目与学习当中用到的最常用
最常用的操作命令
,
囊括了项目实战案例
,也
囊括了所有操作的SQL语句
,可以让你
快速过一遍SQL语句
,
加深基础知识
,学习复习时会更有余力,我也相信这篇文章会让你
快速回忆起绝大部分的操作数据库的知识点
,就说这么多啦~毕竟文章才是重点,小付只是个跑龙套的哦!!!
一、通过命令行操作数据库服务的常用指令
1、启动MySQL服务 net start mysql
1、启动Mysql服务器(这里使用的是PowerShell进行的测试) net start mysql
注意:需要用管理员权限来启动命令行哦~
PS C:\WINDOWS\system32> net start mysql
MySQL 服务正在启动 ....
MySQL 服务已经启动成功。
2、关闭MySQL服务器 net stop mysql
2、关闭MySQL服务器 net stop mysql
PS C:\WINDOWS\system32> net stop mysql
MySQL 服务正在停止..
MySQL 服务已成功停止。
3、连接MySQL服务器 mysql -u root -p
3、连接MySQL服务器 mysql -u root -p
PS C:\WINDOWS\system32> mysql -u root -p #-u 用户名 -p 用户的密码 -h 主机地址
Enter password: ************
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.25 MySQL Community Server - GPL
Type'help;' or '\h'for help.Type'\c' to clear the buffer.
mysql>
4、断开MySQL服务器的连接 exit
4、断开MySQL服务器的连接 exit
mysql>exit
Bye
5、查看当前MySQL服务器的信息 status
5、查看当前MySQL服务器的信息 status
mysql>status--------------
G:\AppServ\MySQL\bin\mysql.exe Ver 14.12 Distrib 5.0.51b,for Win32 (ia32)
Connection id: 10Currentdatabase:
Currentuser: root@localhost
SSL: NotinuseUsingdelimiter: ;
Server version: 8.0.25 MySQL Community Server - GPL
Protocol version: 10
Connection: localhost via TCP/IP
Server characterset: utf8mb4
Db characterset: utf8mb4
Client characterset: utf8mb3
Conn. characterset: utf8mb3
TCP port: 3306
Uptime: 2 min 30 sec
Threads: 2 Questions: 7 Slow queries: 0 Opens: 117 Flush tables: 3Opentables: 36 Queries per second avg: 0.046--------------
二、操作数据库的常用指令
1、查看所有的数据库 show databases
1、查看当前MySQL服务器下的所有的数据库
mysql>showdatabases;+--------------------+|Database|+--------------------+| alascanfudb || information_schema || mybatis || mysql || performance_schema || vhr || vueblog |+--------------------+7rowsinset(0.10 sec)
2 、创建数据库create database 数据库名
2、创建一个数据库 名称为ordertest || create database 数据库名;
mysql>createdatabase ordertest;
Query OK,1row affected (0.17 sec)
3、删除数据库 drop database 数据库名
3、删除名称为ordertest的数据库 drop database 数据库名;
mysql> drop database ordertest;
Query OK, 0 rows affected (0.29 sec)
4、选择数据库 use 数据库名
4、选中指定的数据库进行操作,在创建表之间务必选择数据库 use 数据库名;
mysql> use ordertest;
Database changed
5、显示数据库中的所有表 show
5、显示数据库中的所有表 show tables;
mysql> show tables;
Empty set (0.00 sec)
6 、创建一张表(实战)
6、创建一张表 (实战演示)
CREATETABLE`user`(`id`INT(11)NOTNULLAUTO_INCREMENT,`uid`INT(11)DEFAULTNULL,`Date`dateDEFAULTNULLCOMMENT'入职日期',`Salary`INT(11)DEFAULTNULLCOMMENT'薪资',`remark`VARCHAR(255)DEFAULTNULLCOMMENT'备注',PRIMARYKEY(`id`),CONSTRAINT`adjustsalary_ibfk_1`FOREIGNKEY(`eid`)REFERENCES`employee`(`id`))ENGINE=INNODBDEFAULTCHARSET= utf8;
建表说明
- 可以在字段后
NOT NULL
代表当前键值不能为空,DEFAULT NULL
代表设置了默认值为null,INT ( 11 )
代表此字段为INT类型且占11位
,COMMENT '薪资'
代表的是为当前字段添加备注薪资
,**PRIMARY KEY (id
)**设置 id 字段为主键,同时设置了外键约束。ENGINE = INNODB DEFAULT CHARSET = utf8;
设置了数据库引擎为INNODB 并且默认编码方式为UTF-8。
7、显示表中字段 desc 表名
7、显示表的字段 desc 表明;
mysql>descuser;+--------+--------------+------+-----+---------+----------------+| Field |Type|Null|Key|Default| Extra |+--------+--------------+------+-----+---------+----------------+| id |int|NO| PRI |NULL|auto_increment|| uid |int| YES ||NULL|||Date|date| YES ||NULL||| Salary |int| YES ||NULL||| remark |varchar(255)| YES ||NULL||+--------+--------------+------+-----+---------+----------------+5rowsinset(0.00 sec)
8、删除表 drop table 表名
8、删除表 drop table 表名;
mysql>droptableuser;
Query OK,0rows affected (0.47 sec)
9、查看详细建库信息
9、查看创建库的详细信息 show create database 库名;
mysql>showcreatedatabase ordertest;|Database|CreateDatabase| ordertest |CREATEDATABASE`ordertest`/*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci *//*!80016 DEFAULT ENCRYPTION='N' */|1rowinset(0.00 sec)
10、查看详细建表信息
10 、查看创建表的详细信息 show create table 表名;
mysql>showcreatetableuser;|Table|CreateTable|user|CREATETABLE`user`(`id`intNOTNULLAUTO_INCREMENT,`uid`intDEFAULTNULL,`Date`dateDEFAULTNULLCOMMENT'鍏ヨ亴鏃ユ湡',`Salary`intDEFAULTNULLCOMMENT'钖祫',`remark`varchar(255)DEFAULTNULLCOMMENT'澶囨敞',PRIMARYKEY(`id`))ENGINE=InnoDBDEFAULTCHARSET=utf8mb3 |1rowinset(0.00 sec)
三、操作表的结构常用指令
1、修改字段的类型 alter table 表名 modify 字段 字段类型;
mysql> alter table user modify `Salary` varchar(32);
Query OK, 0 rows affected (1.41 sec)
Records: 0 Duplicates: 0 Warnings: 0
2、添加新的字段 alter table 表名 add 字段 字段类型;
mysql>altertableuseradd age int(8);
Query OK,0rows affected,1 warning (0.65 sec)
Records: 0 Duplicates: 0Warnings: 1
3、添加字段到指定位置之后 alter table 表名 add 字段 字段类型 after 字段;
mysql>altertableuseradd sex int(8)after age;
Query OK,0rows affected,1 warning (1.49 sec)
Records: 0 Duplicates: 0Warnings: 1
4、删除表中字段 alter table 表名 drop 字段;
mysql>altertableuserdrop sex;
Query OK,0rows affected (1.41 sec)
Records: 0 Duplicates: 0Warnings: 0
5、修改指定的字段 alter table 表名 change 原字段名 新字段名 字段的类型;
mysql>altertableuser change uid userid int(8);
Query OK,0rows affected,1 warning (0.63 sec)
Records: 0 Duplicates: 0Warnings: 1
四、操作表中数据的常用指令
先在数据库中创建一张表user
mysql>CREATETABLE`user`(->`id`INT(8)NOTNULLPRIMARYKEY,->`username`varchar(32)DEFAULTNULL,->`password`varchar(32)DEFAULTNULL->)ENGINE=InnoDBDEFAULTCHARSET= utf8;
Query OK,0rows affected,2warnings(1.17 sec)
1、增加数据
1、增加数据
-- 第一种方式 insert into 表名 values(值1,值2,...)
mysql>insertintouservalues(1,'root','root');
Query OK,1row affected (0.59 sec)-- 第二种方式 常用!!!
mysql>insertintouser(id,username,password)values(2,'admin','admin');
Query OK,1row affected (0.89 sec)-- 第三种方式 插入多条数据
mysql>insertintouser(id,username,password)values(1,'root','root'),(2,'admin','admin'),(3,'Alascanfu','123456');
Query OK,3rows affected (0.12 sec)
Records: 3 Duplicates: 0Warnings: 0
2、修改数据
2、删除数据
-- 删除一条数据 delete from 表名 where 条件
mysql>deletefromuserwhere id =2;
Query OK,1row affected (0.04 sec)-- 删除表中所有数据
mysql>deletefromuser;
Query OK,2rows affected (0.36 sec)
3、更新数据
3、更改数据
-- 更新数据 update 表名 set字段1 = 值1, 字段2 = 值2 where 条件
mysql>updateuserset password ='123'where id =3;
Query OK,1row affected (0.54 sec)Rowsmatched: 1 Changed: 1Warnings: 0
4、查询数据
4、查询数据
-- 查询表中所有数据 select * from 表名
mysql>select*fromuser;+----+-----------+----------+| id | username | password |+----+-----------+----------+|1| root | root ||2| admin | admin ||3| Alascanfu |123|+----+-----------+----------+3rowsinset(0.00 sec)-- 查询指定字段数据 select * from
mysql>select username fromuser;+-----------+| username |+-----------+| root || admin || Alascanfu |+-----------+3rowsinset(0.00 sec)-- 条件查询数据 select 字段 from 表名 where 条件 重要!!!-- where 条件后面跟的条件-- 关系:>,<,>=,<=,!= -- 逻辑:or, and -- 区间:id between 4 and 6 ;闭区间,包含边界
5、排序查询
5、排序查询
-- select 字段 from 表 order by 字段 排序关键词(desc 降序 | asc 升序)
mysql>select*fromuserorderby id desc;+----+-----------+----------+| id | username | password |+----+-----------+----------+|3| Alascanfu |123||2| admin | admin ||1| root | root |+----+-----------+----------+3rowsinset(0.00 sec)-- 多字段排序查询select 字段 from 表 orderby 字段1desc|asc,...字段n desc|asc;
6、函数应用查询
6、 常用函数查询
-- 去重 distinct() 统计总数sum() 计算个数count() 平均数avg() 最大值max() 最小数min()
mysql>select a.class,a.score
->from student a
->where(selectcount(*)from student where class=a.class and a.score<score)<3->orderby a.class,a.score desc;+--------+-------+| class | score |+--------+-------+| class1 |95|| class1 |82|| class1 |14|| class2 |95|| class2 |85|| class3 |88|+--------+-------+6rowsinset(0.03 sec)
7、分组数据查询
7、分组进行查询
-- 分组查询
mysql>selectcount(sex)as sexnum,sex fromusergroupby sex;+--------+-------+| sexnum | sex |+--------+-------+|3| man ||1| woman |+--------+-------+2rowsinset(0.00 sec)-- 分组查询带有条件
mysql>selectcount(sex)as sexnum,sex fromusergroupby sex having sexnum >1;+--------+------+| sexnum | sex |+--------+------+|3| man |+--------+------+1rowinset(0.00 sec)
8、分页数据查询
8、分组数量查询
select * from 表名 limit 偏移量,数量
说明:
不写偏移量的话就是默认的为0
实现分页的时候必须写偏移量
偏移量怎么计算?:
limit (n-1)*数量 ,数量
*startIndex = (index-1)3
SELECT * FROM table LIMIT [offset,] [rows] | rows OFFSET offset;
mysql>select*fromuserlimit0,1;+----+------+------+| id | name | sex |+----+------+------+|1| root | man |+----+------+------+1rowinset(0.00 sec)
mysql>select*fromuserlimit0,2;+----+-------+------+| id | name | sex |+----+-------+------+|1| root | man ||2| admin | man |+----+-------+------+2rowsinset(0.00 sec)
mysql>select*fromuserlimit1,1;+----+-------+------+| id | name | sex |+----+-------+------+|2| admin | man |+----+-------+------+1rowinset(0.00 sec)
mysql>select*fromuserlimit2,1;+----+------+-------+| id | name | sex |+----+------+-------+|3| hhxf | woman |+----+------+-------+1rowinset(0.00 sec)
mysql>select*fromuserlimit0;
Empty set(0.00 sec)
mysql>select*fromuserlimit1;+----+------+------+| id | name | sex |+----+------+------+|1| root | man |+----+------+------+1rowinset(0.00 sec)
mysql>
注意找到规律哦~
五、操作数据表与数据之间的连接查询
1、准备工作
准备工作
创建三张表:user、role、user_role
并且插入数据 用于连接查询。
mysql>use test ;Database changed
mysql>createtable`role`(->`id`intnotnullprimarykey,->`name`varchar(64),->`nameZh`varchar(64)->)engine=innodbdefaultcharset= utf8;
Query OK,0rows affected,1 warning (0.18 sec)
mysql>createtable`user`(->`id`intnotnullprimarykey,->`username`varchar(32)->)engine=innodbdefaultcharset= utf8;
Query OK,0rows affected,1 warning (0.30 sec)
mysql>createtable`user_role`(->`id`intnotnullprimarykey,->`uid`intnotnull,->`rid`intnotnull->)engine=innodbdefaultcharset= utf8;
Query OK,0rows affected,1 warning (0.94 sec)
user表:
+----+-----------+| id | username |+----+-----------+|1| Alascanfu |+----+-----------+
role表:
+----+-------+--------------------+| id | name | nameZh |+----+-------+--------------------+|1| admin | 系统管理员 ||2| DBA | 数据库管理员 ||3|user| 普通用户 |+----+-------+--------------------+
user_role表:
+----+-----+-----+| id | uid | rid |+----+-----+-----+|1|1|3|+----+-----+-----+
2、关联查询
关联查询
-- 隐式内连接的方式
mysql>selectuser.username,role.name,role.nameZh fromuser,role,user_role whereuser.id = user_role.uid and user_role.rid = role.id;+-----------+------+--------------+| username | name | nameZh |+-----------+------+--------------+| Alascanfu |user| 普通用户 |+-----------+------+--------------+1rowinset(0.00 sec)
3、左连接、右连接、外连接、全连接 查询
左连接、右连接、外连接、全连接 查询
初始化数据表
mysql>createtable table_a(->`pk`intprimarykeynotnull,->`value`varchar(32)defaultnull->)engine=innodbdefaultcharset= utf8;
Query OK,0rows affected,1 warning (1.37 sec)
mysql>createtable table_b(->`pk`intprimarykeynotnull,->`value`varchar(64)defaultnull->)engine=innodbdefaultcharset= utf8;
Query OK,0rows affected,1 warning (0.62 sec)
mysql>select*from table_a;+----+--------+| pk |value|+----+--------+|1| 小米 ||2| 红米 ||3| 苹果 ||4| 华为 ||5| 华硕 ||6| vivo ||7| oppo ||8| 三星 |+----+--------+8rowsinset(0.00 sec)
mysql>select*from table_b;+----+--------+| pk |value|+----+--------+|1| 小米 ||2| 红米 ||3| 尼康 ||4| 索尼 ||5| 美的 ||6| 格力 |+----+--------+6rowsinset(0.00 sec)
1、内连接 INNER JOIN
内连接是一种映射关系,如果两张表都存在相同的内容,则会显示出来。
在数学中一般被我们称之为:
交集
如图所示:
mysql>SELECT A.PK AS A_PK,A.ValueAS A_Value,B.PK AS B_PK,B.ValueAS B_Value
->FROM table_a A
->INNERJOIN table_b B
->ON A.pk = B.pk;+------+---------+------+---------+| A_PK | A_Value | B_PK | B_Value |+------+---------+------+---------+|1| 小米 |1| 小米 ||2| 红米 |2| 红米 ||3| 苹果 |3| 尼康 ||4| 华为 |4| 索尼 ||5| 华硕 |5| 美的 ||6| vivo |6| 格力 |+------+---------+------+---------+6rowsinset(0.00 sec)
mysql>SELECT A.PK AS A_PK,A.ValueAS A_Value,B.PK AS B_PK,B.ValueAS B_Value
->FROM table_a A
->INNERJOIN table_b B
->ON A.value= B.value;+------+---------+------+---------+| A_PK | A_Value | B_PK | B_Value |+------+---------+------+---------+|1| 小米 |1| 小米 ||2| 红米 |2| 红米 |+------+---------+------+---------+2rowsinset(0.10 sec)
2、左连接 LEFT JOIN
左连接是
将在左边的表中数据都显示出来,右边数据只显示共有的那一部分
,没有的部分只会填空显示,写在LEFT JOIN 左边的表称之为左表。
如图所示:
mysql>SELECT A.PK AS A_PK,A.ValueAS A_Value,B.PK AS B_PK,B.ValueAS B_Value
->FROM table_a A
->LEFTJOIN table_b B
->ON A.PK = B.PK;+------+---------+------+---------+| A_PK | A_Value | B_PK | B_Value |+------+---------+------+---------+|1| 小米 |1| 小米 ||2| 红米 |2| 红米 ||3| 苹果 |3| 尼康 ||4| 华为 |4| 索尼 ||5| 华硕 |5| 美的 ||6| vivo |6| 格力 ||7| oppo |NULL|NULL||8| 三星 |NULL|NULL|+------+---------+------+---------+8rowsinset(0.00 sec)
mysql>SELECT A.PK AS A_PK,A.ValueAS A_Value,B.PK AS B_PK,B.ValueAS B_Value
->FROM table_a A
->LEFTJOIN table_b B
->ON A.VALUE= B.VALUE;+------+---------+------+---------+| A_PK | A_Value | B_PK | B_Value |+------+---------+------+---------+|1| 小米 |1| 小米 ||2| 红米 |2| 红米 ||3| 苹果 |NULL|NULL||4| 华为 |NULL|NULL||5| 华硕 |NULL|NULL||6| vivo |NULL|NULL||7| oppo |NULL|NULL||8| 三星 |NULL|NULL|+------+---------+------+---------+8rowsinset(0.00 sec)
3、右连接 RIGHT JOIN
右连接与左连接恰巧相反,
在RIGHT JOIN 右边的就是右表
,显示右表中的所有数据,显示左表中与右表相同的数据,空填。
mysql>SELECT A.PK AS A_PK,A.ValueAS A_Value,B.PK AS B_PK,B.ValueAS B_Value
->FROM table_a A
->RIGHTJOIN table_b B
->ON A.PK = B.PK;+------+---------+------+---------+| A_PK | A_Value | B_PK | B_Value |+------+---------+------+---------+|1| 小米 |1| 小米 ||2| 红米 |2| 红米 ||3| 苹果 |3| 尼康 ||4| 华为 |4| 索尼 ||5| 华硕 |5| 美的 ||6| vivo |6| 格力 |+------+---------+------+---------+6rowsinset(0.00 sec)
mysql>SELECT A.PK AS A_PK,A.ValueAS A_Value,B.PK AS B_PK,B.ValueAS B_Value
->FROM table_a A
->RIGHTJOIN table_b B
->ON A.value= B.value;+------+---------+------+---------+| A_PK | A_Value | B_PK | B_Value |+------+---------+------+---------+|1| 小米 |1| 小米 ||2| 红米 |2| 红米 ||NULL|NULL|3| 尼康 ||NULL|NULL|4| 索尼 ||NULL|NULL|5| 美的 ||NULL|NULL|6| 格力 |+------+---------+------+---------+6rowsinset(0.00 sec)
4、全连接 也被称之为 外连接 OUTER JOIN
全连接 查询两个表的数据 删除相同数据
UNION 联合查询 特点:后面细讲
特点:
★
- 要求
多条查询语句的查询列数是一致
的! - 要求
多条查询语句的查询的每一列的类型和顺序最好一致
union关键字默认去重
,如果使用union all
可以包含重复项
如图:
mysql>SELECT A.PK AS A_PK,A.ValueAS A_Value,B.PK AS B_PK,B.ValueAS B_Value
->FROM table_a A
->LEFTJOIN table_b B
->ON A.PK = B.PK
->UNION->SELECT A.PK AS A_PK,A.ValueAS A_Value,B.PK AS B_PK,B.ValueAS B_Value
->FROM table_a A
->RIGHTJOIN table_b B
->ON A.PK = B.PK;+------+---------+------+---------+| A_PK | A_Value | B_PK | B_Value |+------+---------+------+---------+|1| 小米 |1| 小米 ||2| 红米 |2| 红米 ||3| 苹果 |3| 尼康 ||4| 华为 |4| 索尼 ||5| 华硕 |5| 美的 ||6| vivo |6| 格力 ||7| oppo |NULL|NULL||8| 三星 |NULL|NULL|+------+---------+------+---------+8rowsinset(0.00 sec)
左连接+右连接+去重 = 全连接
5、左连接不包含内连接 LEFT JOIN EXCLUDING INNER JOIN
左连接不包含内连接:左表独有的数据
mysql> SELECT A.PK AS A_PK,A.Value AS A_Value,->B.Value AS B_Value,B.PK AS B_PK
-> FROM Table_AA-> LEFT JOIN Table_BB-> ON A.PK =B.PK
-> WHERE B.value IS NULL;+------+---------+---------+------+| A_PK |A_Value|B_Value| B_PK |+------+---------+---------+------+|7| oppo | NULL | NULL ||8| 三星 | NULL | NULL |+------+---------+---------+------+2 rows in set (0.00 sec)
6、右连接不包含内连接 RIGHT JOIN EXCLUDING INNER JOIN
右连接不包含内连接:右表独有的数据
mysql> SELECT A.PK AS A_PK, A.Value AS A_Value, B.PK AS B_PK,
-> B.Value AS B_Value
-> FROM Table_A A
-> RIGHT JOIN Table_B B
-> ON A.value = B.value
-> WHERE A.PK IS NULL;
+------+---------+------+---------+
| A_PK | A_Value | B_PK | B_Value |
+------+---------+------+---------+
| NULL | NULL | 3 | 尼康 |
| NULL | NULL | 4 | 索尼 |
| NULL | NULL | 5 | 美的 |
| NULL | NULL | 6 | 格力 |
+------+---------+------+---------+
4 rows in set (0.00 sec)
7、外连接|全连接 不包含内连接 OUTER JOIN EXCLUDING INNER JOIN
说白了就是:全集 - 交集
mysql>SELECT A.PK AS A_PK, A.ValueAS A_Value, B.PK AS B_PK,-> B.ValueAS B_Value
->FROM table_a A
->LEFTJOIN table_b B
->ON A.PK = B.PK
->WHERE B.PK ISNULL->UNIONALL->SELECT*->FROM table_a A
->RIGHTJOIN table_b B
->ON A.PK = B.PK
->WHERE A.PK ISNULL;+------+---------+------+---------+| A_PK | A_Value | B_PK | B_Value |+------+---------+------+---------+|7| oppo |NULL|NULL||8| 三星 |NULL|NULL|+------+---------+------+---------+2rowsinset(0.00 sec)
mysql>SELECT A.PK AS A_PK, A.ValueAS A_Value, B.PK AS B_PK,-> B.ValueAS B_Value
->FROM table_a A
->LEFTJOIN table_b B
->ON A.value= B.value->WHERE B.PK ISNULL->UNIONALL->SELECT*->FROM table_a A
->RIGHTJOIN table_b B
->ON A.value= B.value->WHERE A.PK ISNULL;+------+---------+------+---------+| A_PK | A_Value | B_PK | B_Value |+------+---------+------+---------+|3| 苹果 |NULL|NULL||4| 华为 |NULL|NULL||5| 华硕 |NULL|NULL||6| vivo |NULL|NULL||7| oppo |NULL|NULL||8| 三星 |NULL|NULL||NULL|NULL|3| 尼康 ||NULL|NULL|4| 索尼 ||NULL|NULL|5| 美的 ||NULL|NULL|6| 格力 |+------+---------+------+---------+10rowsinset(0.00 sec)
六、DCL数据控制语言
1、创建用户 (需要在管理员root权限进行创建)
1、创建数据库用户 create user ‘用户名’ @ ‘localhost’ idenified by ‘密码’
create user ‘用户名’ @ ‘localhost’ idenified by '密码’
mysql>createuser'HHXF'@'localhost' identified by'123456';
Query OK,0rows affected (0.19 sec)
mysql>exit
Bye
PS C:\WINDOWS\system32> mysql -u HHXF -p
Enter password: ******
Welcome to the MySQL monitor. Commands endwith;or \g.
Your MySQL connection id is12
Server version: 8.0.25 MySQL Community Server - GPL
Type'help;'or'\h'for help.Type'\c'to clear the buffer.
mysql>
2、授予权限
2、用户授权 指令 grant
mysql>grantallprivilegeson*.*to'Alascanfu'@'%' identified by'123456'withgrantoption;
all privileges
: 表示将所有权限授予给指定用户。也可指定具体的权限,如:SELECT、CREATE、DROP
等on
:表示授予的权限对于哪些数据库中的数据表有效。to
:表示的是授予给哪个指定用户以及可以登录的ip地址
格式:”用户名”@”登录IP或域名”。%表示没有限制,在任何主机都可以登录
。identified by
:指定用户的登录密码
with grant option
:表示允许用户将自己的权限授权给其它用户
3、刷新权限 flush privileges
3、刷新当前权限 flush privileges
mysql> flush privileges;
Query OK,0rows affected (0.10 sec)
4、取消授权 revoke
4、取消指定用户的权限
mysql>revokeallon*.*from'Alascanfu'@'localhost';
5、删除指定用户 drop
5、删除用户
mysql>dropuser'Alascanfu'@'%';
七、DTL数据事务相关操作(遵循ACID原则)
1、开启事务
start transaction
mysql>starttransaction;
Query OK,0rows affected (0.00 sec)
2、查询事务的隔离级别
select @@transaction_isolation
mysql>select @@transaction_isolation;+-------------------------+| @@transaction_isolation|+-------------------------+|REPEATABLE-READ|+-------------------------+1rowinset(0.00 sec)
MySQL下默认的隔离方式为
repeatable-read
隔离性有隔离级别(4个)
读未提交
:read uncommitted读已提交
:read committed可重复读
:repeatable read串行化
:serializable
3、设置隔离级别
mysql>setsessiontransactionisolationlevelreadcommitted;
Query OK,0rows affected (0.04 sec)
mysql>select @@transaction_isolation;+-------------------------+| @@transaction_isolation|+-------------------------+|READ-COMMITTED|+-------------------------+1rowinset(0.00 sec)
**
set session|global transaction isolation level 隔离级别;
**
4、操作回滚
rollback
5、提交事务
commit
mysql>commit;
Query OK,0rows affected (0.00 sec)
写在最后
阿巴阿巴~
这篇文章用时两天整理好啦~
对数据库知识的沉淀 也更加一步了
虽然还没有完全二刷数据库的相关基础知识
但是这也为了我铺下了坚实的基础
最后本文截止17000字 ~ 对自己也是对大家一起负责
最后
每天进步点 每天收获点
愿诸君 事业有成 学有所获
如果觉得不错 别忘啦一键三连哦~
版权归原作者 猿小付 所有, 如有侵权,请联系我们删除。