> 技术文档 > linux下简单使用MySQL_linux mysql命令

linux下简单使用MySQL_linux mysql命令


提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、linux下使用MySQL
    • 安装启动操作
    • 数据库操作
      • 1.查看数据库:
      • 2.新建一个数据库命令:
      • 3.使用某个数据库:
    • 表操作
      • 1.查看表命令:
      • 2.建立一个新表:
      • 3.删除一个旧表:
      • 4.查看表结构:
      • 5.添加表的字段
      • 6.修改表的字段:
      • 7.删除表的字段:
      • 8.修改表名:
    • 表中数据操作
      • 1.添加数据
      • 2.修改数据
      • 3.删除数据
      • 4.查询数据
        • 4.1 基本查询
          • 4.1.1查询多个字段:
          • 4.1.2设置别名:
          • 4.1.3去除重复记录:
        • 4.2条件查询
        • 4.3聚合函数
        • 4.4分组查询
          • 语法
          • where 与 having区别
        • 4.5排序查询
          • 语法
          • 排序方式
        • 4.6分页查询
          • 语法
    • 用户相关操作
      • 添加新用户
      • 权限:
        • 1.查询权限
        • 2.授予权限
        • 3.撤销权限

前言

一、linux下使用MySQL

安装启动操作

1.安装mysql命令 :

$ sudo apt-get install -y mysql-server

2.查看mysql的版本命令(注意-V是大写,不然会出现如下错误):

$ mysql -V

3.启动mysql命令(关闭,重启等只需将start换成stop,restart等即可):

$sudo service mysql start

4.登录mysql命令为:

$ mysql -u用户名 -p密码

5.连接远程数据库:

$ mysql -h <host> -P <port> -u<username> -p<password>

数据库操作

1.查看数据库:

show databases; #(注意分号“;”不要落下)

2.新建一个数据库命令:

create database 数据库名称;

删除一个数据库命令:

> drop database 数据库名称;

3.使用某个数据库:

> use 数据库名称;

表操作

1.查看表命令:

> show tables;

2.建立一个新表:

> create table 表名 (字段参数);>create table if not exists 表名(字段参数);create table 表名(字段1 字段1类型[comment 字段1注释],字段2 字段2类型[comment 字段2注释],字段3 字段3类型[comment 字段3注释],......字段n 字段n类型[comment 字段n注释])[comment 表注释];
分类 类型 大小 signed范围 unsigned范围 描述 数值类型 TINYINT 1 byte (-128, 127) 小整数值 SMALLINT 2 byte (-32768, 32767) 大整数值 MEDIUMINT 3 byte (-8388608, 8388607) 大整数值 INT/INTEGER 4 byte (-2147483648, 2147483647) 大整数值 BIGINT 8 byte (-2^63, 2^63-1) 极大整数值 FLOAT 4 byte 单精度浮点数值 DOUBLE 8 byte 双精度浮点数值 DECIMEL 小数值 分类 类型 大小 描述 字符串类型 CHAR 0~255bytes 定长字符串 VARCHAR 0~65535bytes 变长字符串 TINYBLOB 0~255bytes 不超过255个字符的二进制数据 TINYTEXT 0~255bytes 短文本字符串 BLOB 0~65535bytes 二进制形式的长文本数据 TEXT 0~65535bytes 长文本数据 MEDIUMBLOB 0~16777215bytes 二进制形式的中等长度文本数据 MEDIUMTEXT 0~16777215bytes 中等长度文本数据 LONGBLOB 0~4294967295bytes 二进制形式的极大文本数据 LONGTEXT 0~4294967295bytes 极大文本数据 分类 类型 大小 范围 格式 描述 日期类型 DATE 3 1000-01-01至9999-12-31 YYYY-MM-DD 日期值 TIME 3 -838:59:59至838:59:59 HH:MM:SS 时间值或持续时间 YEAR 1 1901至2155 YYYY 年份 DATETIME 8 1000-01-01 00:00:00至9999-12-31 23:59:59 YYYY_MM_DD HH:MM:SS 混合日期和时间值 TIMESTAMP 4 1979-01-01 00:00:01至2038-01-19 03:14:07 YYYY_MM_DD HH:MM:SS 混合日期和时间值

3.删除一个旧表:

删除表:>drop table [if exists] 表名;删除指定表,并重新创建该表(清空)>truncate table 表名;

4.查看表结构:

> desc 表名称;>show columns from 表名称;

5.添加表的字段:

>alter table 表名 add 字段名 类型(长度) [comment 注释] [约束];

6.修改表的字段:

修改数据类型:>alter table 表名 modify 字段名 新数据类型(长度);修改字段名和数据类型:>alter table 表名 change 旧字段名 新字段名 类型(长度)[comment 注释] [约束];

7.删除表的字段:

>alter table 表名 drop 字段名;

8.修改表名:

>alter table 表名 rename to 新表名;

表中数据操作

1.添加数据

给指定字段添加数据:>insert into 表名 (字段名1,字段名2,字段名3......) values(字段名1的值,字段名2的值,字段名3的值......);给全部字段添加数据:>insert into 表名 values(1,值2.....);批量添加数据:>insert into 表名 (字段名1,字段名2,字段名3......) values(字段名1的值,字段名2的值,字段名3的值......),(字段名1的值,字段名2的值,字段名3的值......),(字段名1的值,字段名2的值,字段名3的值......);>insert into 表名 values(1,值2.....),(1,值2.....),(1,值2.....);//字符串和日期型数据带\"\";

2.修改数据

>update 表名 set 字段名1 =1,字段名2 =2...... [where 条件];

3.删除数据

>delete from 表名 [where 条件];

4.查询数据

4.1 基本查询
4.1.1查询多个字段:
>select 字段1,字段2... from 表名;>select * from 表名;
4.1.2设置别名:
>select 字段1 [as 别名1],字段2 [as 别名2],... from 表名;(as可以省略)
4.1.3去除重复记录:
>select distinct 字段列表 from 表名;
4.2条件查询

语法

>select 字段列表 from 表名 where 条件列表;

条件

比较运算符 功能 > 大于 >= 大于等于 < 小于 <= 小于等于 = 等于 或 != 不等于 between…and… 在某个范围之内(闭区间) in(…) 在in之后列表中的值,多选一 like 占位符 模糊匹配(_匹配单个字符,%匹配任意个字符) is null 是NULL 逻辑运算符 功能 and 或 && 并且(多个条件同时成立) or 或 || 或者(任意条件成立) not 或 ! 非,不是
4.3聚合函数

介绍:将一列数据作为一个整体,进行纵向计算。

常见聚合函数:

函数 功能 count 统计数量 max 最大值 min 最小值 avg 平均值 sum 求和

语法

>select 聚合函数(字段列表) from 表名;
4.4分组查询
语法
>select 字段列表 from 表名 [where 条件] group by 分组字段名 [having 分组后过滤条件];
where 与 having区别

​ 执行时机不同:where是分组之前进行过滤,不满足where条件的,不参与分组;而having是分组之后对结果进行过滤。

​ 判断条件不同:where不能对聚合函数进行判断,而having可以。

where > 聚合 > having

4.5排序查询
语法
>select 字段列表 from 表名 order by 字符1 排序方式1,字段2 排序方式2;
排序方式

​ ASC: 升序(默认值)

​ DESC:降序

4.6分页查询
语法
>select 字段列表 from 表名 limit 起始索引,查询记录数;

用户相关操作

注:以下命令均需先以root身份登录

mysql:mysql -uroot -p

添加新用户

(1)创建新用户:

> insert into mysql.user(Host,User,Password) values(\"localhost\",\"user1\",password(\"password1\"));
>create user \'用户名\'@\'主机名\' identified by \'密码\';
修改用户密码:>alter user \'用户名\'@\'主机名\' identified with mysql_native_password by \'新密码\';删除用户:>drop user \'用户名\'@\'主机名\';

权限:

权限 说明 ALL\\ALL PRIVILEGES 所有权限 SELECT 查询数据 INAERT 插入数据 UPDATE 修改数据 DELETE 删除数据 ALTER 修改表 DROP 删除数据库/表/视图 CREATE 创建数据库/表
1.查询权限
>show grants for \'用户名\'@\'主机名\';
2.授予权限
>grant 权限列表 on 数据库名.表名 to \'用户名\'@\'主机名\';
3.撤销权限
>revoke 权限列表 on 数据库.表名 from \'用户名\'@\'主机名\';

2.查看MySql当前所有的用户:

>SELECT DISTINCT User FROM mysql.user;

3.删除用户及其数据字典中包含的数据:

>drop user \'xbb\'@\'localhost\';

4.使用mysql数据库,从user表中查看主机,用户名,密码

– 使用mysql数据库

mysql> use mysql;

– 查询主机用户名密码:5.7版本之前的

mysql> selecthost,user,plugin,password from user;

– 查询主机用户名密码:5.7版本之后的,包括5.7

mysql> select host,user,plugin,authentication_string fromuser;
mysql> select host,user,plugin,authentication_string fromuser\\G;
mysql> select host,user,plugin,authentication_string frommysql.user;

5.修改密码,刷新一下权限

mysql> update user set password=password(\"新密码\") where user=\"root\";mysql> flush privileges;mysql> quit

上面修改密码是在5.7版本之前的。若是5.7版本之后的(包括5.7),没有password这个字段了,则修改方法如下:

mysql> alter user \"root\"@\"localhost\" identified by \"新密码\"; --方法1mysql> update user set authentication_string=password(\"新密码\") where user=\"root\"; -- 方法2mysql> flush privileges;mysql> quit