0


MySQL的最全常用SQL语句 —— 一文可以快速熟悉、回忆sql语句

📖本篇内容: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 联合查询 特点:后面细讲

特点:

  1. 要求多条查询语句的查询列数是一致的!
  2. 要求多条查询语句的查询的每一列的类型和顺序最好一致
  3. 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字 ~ 对自己也是对大家一起负责

最后

每天进步点 每天收获点

愿诸君 事业有成 学有所获

如果觉得不错 别忘啦一键三连哦~

标签: mysql sql 数据库

本文转载自: https://blog.csdn.net/fuijiawei/article/details/122432727
版权归原作者 猿小付 所有, 如有侵权,请联系我们删除。

“MySQL的最全常用SQL语句 &mdash;&mdash; 一文可以快速熟悉、回忆sql语句”的评论:

还没有评论