Mysql数据库常用基本指令总结

想要通过命令提示符操作数据库,我们要先使用以下命令登录mysql数据库的账户:

mysql -u用户名 -p (按下回车键) (输入密码)

校验通过后即可成功登录。

目录

一、数据库相关指令

二、数据表相关指令(使用此命令前确保已经使用“use 数据库名”选择了数据库)

三、用户相关指令

四、对数据库中的数据表进行增删改查操作的指令

五、外键

六、关联查询

七、去重、分组、排序、分页

八、常用函数


一、数据库相关指令

1.展示所有数据库:show databases;

2.使用数据库:use 数据库名;

3.查看当前使用的数据库:select database();

4.创建数据库:create database 数据库名;

5.删除数据库:drop database 数据库名;

二、数据表相关指令(使用此命令前确保已经使用“use 数据库名”选择了数据库)

1.展示所有数据表:show tables;

2.创建数据表:create table  表名 (列名1 类型 约束, 列名2 类型 约束,......)

可以同时创建多个列,每个列中可以有多个约束

eg:create table user (id int not null auto_increment primary key, name varchar(20) not null unique)

这里是一些常用的约束条件:

主键primary key可以确定唯一的一行
非空not null不能为空
自增auto_increment

每次都+1

唯一unique

列中内容不重复

默认default默认值
外键foreign key与其他表关联,是其他表的主键

3.查看数据表结构:desc 数据表名;

4.修改数据表:(1)增加列:alter table 数据表名 add 列名 类型 约束;

                         (2)删除列:alter table 数据表名 drop 列名;

                         (3)修改列:alter table 数据表名 change 原列名 新列名 类型 约束;

三、用户相关指令

1.创建用户:create user '用户名'@'ip地址' identified by '密码';

eg:create user 'admin'@'%' identified by '123456';

这个例子是在当前登录账户下创建一个用户名为admin,密码为123456的用户,其中@为固定格式,%为默认所有ip都可以使用这个用户名和密码登录该账户。

2.分配权限:grant 权限(可以是多个)on 数据库名.数据表名 to '用户名'@‘ip地址’;

eg: grant all on *.* to 'admin'@'%'

这个例子是授予admin用户管理所有数据库中所有表的所有权限,all为所有权限,*.*为所有数据库中的所有表.

3.删除用户:drop user '用户名'@'ip地址';

如果MySQL版本为8.0.16以上,即使是在root用户下,创建用户并给其分配权限后对其进行删除操作会报错:

Access denied; you need (at least one of) the SYSTEM_USER privilege(s) for this operation

这是因为从8.0.16版本开始,MySQL新增了system_user的账户类型,而且分析报错信息,也是提示我们没有system_user的权限

解决方案是给当前登录用户授权:grant system_user on *.* to ‘用户名’;

这样就可以正常删除用户了

4.修改密码:alter user '用户名'@‘ip地址’ identified by ‘新密码’;

四、对数据库中的数据表进行增删改查操作的指令

1.增:(1)insert into 表名 values (值1,值2,....值n),(值1,值2,....值n);

使用这种方式添加需要保证列的个数与值的个数一致,且无论是否有自增列或者默认值,有几列就要写几个值。

           (2)insert into 表名 (列1,列2,...列n) values (值1,值2,...值n);

使用这种方式添加可以指定添加那些列的数据,没有自增列或者没有默认值的列必须添加

            (3)insert into 表名 set 列1 = 值1, 列2 = 值2;

使用这种方式可以指明插入的列和值

下面是一些常见的where条件举例:

比较运算符= > >= < <= !=
逻辑运算符

and or not

判空is null;is not null
in(python中的成员运算符)in(a,b,c)
between and范围比较
like后面跟占位符,%代表多个字符,_代表一个字符

2.删:delete from 表明 where 条件;

如果没有where条件会清空表

3.改:update 表名 set 列1 = 值1 where 条件;

如果没有条件会修改整个表

4.查:(1)查看表中所有内容:select * from 表名;

          (2)查看表中指定列并为其设置别名:select 列名1 as 新列名,列名2 as 新列明 from 表名;

          (3)查看表中满足指定条件的行:select * from 表名 where 条件;

五、外键

如果一个表中存在主键或者外键,我们在不删除这些键的情况下是没办法直接删除这些表的,

为了解决这个问题,我们可以在创建表时的约束中添加下面这段指令,在添加外键的时候给其加上级联约束,这样在删除的时候会进行级联删除。

创建和添加外键:

constraint 外键名 foreign key (列名) references 其他表(其他表的列) on update cascade on delete cascade;

删除外键:

alter table 表名 drop forign key 外键名;

六、关联查询

1.嵌套查询:第一次查询的结果作为第二次查询的条件

2.内连接:使用关键字inner join

                  select 表1.列1,表1.列2,表2.列1,表2.列2 from 表1名 inner join 表2名 on 条件;

                  eg:select user.id,user.name,role.nick,role.level from user inner join role on user.id =                        role.user_id;

3.外连接:(1)左外连接:以左表为主,使用关键字 left join,将左表中的所有列显示出来,如果右                                          表中有数据与之对应就正常显示,没有就补全为null进行显示。

                     eg: select * from user left join role on user.id = role.user_id;

                  (2)右外连接:以右表为主,使用关键字 left join,将右表中的所有列显示出来,如果左                                          表中有数据与之对应就正常显示,没有就补全为null进行显示。

                      eg: select * from user left join role on user.id = role.user_id;

七、去重、分组、排序、分页

1.去重:distinct

                select distinct 列名 from 表名;(只能使用一个列名,不然去重会失效)

2.分组:group by   一般结合count(*)进行统计

                select 列名, count(*) from 表名 group by 列名;

3.排序:order by    其中asc代表升序(默认),desc代表降序

                select * from 表名 oder by 列名 desc;

4.分页:limit  a,b   其中a代表从索引a开始显示,b代表显示b条数据

                select * from 表名 limit a,b;

八、常用函数

1.查看当前数据库:select database();

2.查看当前用户:select user();

3.查看当前MySQL的版本:select version();

4.查看现在时间:select now();

5.查看当前日期:select curdate();

6.查看当前时间:select curtime();

7.查看当前时间戳:select unix_timestamp();

  • 18
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值