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 表注释];
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 条件列表;
条件
4.3聚合函数
介绍:将一列数据作为一个整体,进行纵向计算。
常见聚合函数:
语法
>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 \'用户名\'@\'主机名\';
权限:
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