• mysql数据库管理

【注:大部分命令不区分大小写】

  • SQL语言的作用是什么?

结构化查询语言(structured query  language)简称SQL
数据查询语言(DQL)= 查
数据定义语言(DDL)= 增删改
数据操纵语言(DML)= 插入  更新
数据控制语言(DCL)= 控制用户访问权控制
  • 使用SQL语言的常见错误?

SQL语句语法错误,如缺少标点、括号等
表或视图不存在
SQL语句中混入了不合法的关键词
字段定义模糊
完整性约束冲突
不能创建操作系统文件
  • 常见MySQL字段含义

自增长:auto_increment
非空:not null
默认值:default
唯一:unique
指定字符集:charset
主键:primary key

  • 常见的MySQL语句命令

进入mysql 命令行:mysql -uroot -p;
查看所有数据库:show databases;
创建数据库:create database niu charset utf8;
删除数据库:drop database niu;
选择数据库:use databases;
查看所有表:show tables;
查看创建数据库的语句:show create database databasename;
查看创建表的语句:show create table tablename;
查看表结构:desc tablenmae;

  • 库操作

创建数据库:create database shujukuba;
创建带字符集的数据库:create database mydb2 CHARACTER SET=utf8;
创建带校验的数据库:create database mydb3 CHARACTER SET=utf8 COLLATE utf8_general_ci;
显示数据库:show databases;
删除数据库:DROP DATABASE shujukuba;
修改数据库编码:ALTER DATABASE shujukuba character set gb2312;

  • 查看数据库默认是什么引擎和支持哪些引擎

mysql> show engines;
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| Engine             | Support | Comment                                                        | Transactions | XA   | Savepoints |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| InnoDB             | DEFAULT | Supports transactions, row-level locking, and foreign keys     | YES          | YES  | YES        |
| MRG_MYISAM         | YES     | Collection of identical MyISAM tables                          | NO           | NO   | NO         |
| MEMORY             | YES     | Hash based, stored in memory, useful for temporary tables      | NO           | NO   | NO         |
| BLACKHOLE          | YES     | /dev/null storage engine (anything you write to it disappears) | NO           | NO   | NO         |
| MyISAM             | YES     | MyISAM storage engine                                          | NO           | NO   | NO         |
| CSV                | YES     | CSV storage engine                                             | NO           | NO   | NO         |
| ARCHIVE            | YES     | Archive storage engine                                         | NO           | NO   | NO         |
| PERFORMANCE_SCHEMA | YES     | Performance Schema                                             | NO           | NO   | NO         |
| FEDERATED          | NO      | Federated MySQL storage engine                                 | NULL         | NULL | NULL       |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
9 rows in set (0.03 sec)
默认为innoDB引擎

  • 查看数据库结构;查看数据库列表信息;格式:show databases

root@mysql ~]# netstat -anpt|grep 3306

tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      2131/mysqld

[root@mysql ~]# mysql -uroot -p123123

mysql> show databases;

  • 查看数据库中的数据表信息;格式:use 数据库名;show tables

mysql> use mysql;

mysql> show tables;

| ndb_binlog_index          |

| user                      |

24 rows in set (0.01 sec)

  • 显示数据表的结构(字段);格式:describ [数据库.]表名

mysql> describe mysql.user;

+------------------------+-----------------------------------+------+-----+---------+-------+

| Field                  | Type                              | Null | Key | Default | Extra |

+------------------------+-----------------------------------+------+-----+---------+-------+

| Host                   | char(60)                          | NO   | PRI |         |

| Select_priv            | enum('N','Y')                     | NO   |     | N       |       |

| authentication_string  | text                              | YES  |     | NULL    |       |

+------------------------+-----------------------------------+------+-----+---------+-------+

42 rows in set (0.00 sec)

mysql> use mysql;

Database changed

mysql> describe user;

+------------------------+-----------------------------------+------+-----+---------+-------+

| Field                  | Type                              | Null | Key | Default | Extra |

+------------------------+-----------------------------------+------+-----+---------+-------+

| Host                   | char(60)                          | NO   | PRI |

  • DDL语句操作

数据定义语言,用于增删改数据库的对象,如库、表、索引等

  • create 创建新库、创建新表

create table 表名(

列名1 类型(长度) [约束],  );

格式: create database 数据库名;create tables表名(定义字段);

mysql> create database auth;  【新建一个名为auth的数据库】

Query OK, 1 row affected (0.00 sec)

mysql> use auth;  【使用auth 这个数据库】

Database changed

mysql> create table users (user_name char(20) not null, user_passwd char(30) default '', primary key (user_name));【其中''是俩个单引号,这个的意思是在auth库中,创建名为users的表,表内两个字段为(user_name最多20个字节 不能为空,user_passwd 最多30个字节 默认为空,索引关键字user_name)】

  • 长度区别
  • int类型带长度:不影响存取值,即使设定的值超出了长度的范畴,也能存,如果没有达到设定的长度,则使用空格自动填充到设定的长度
  • char类型:不可变字符,设定的长度就是规定当前字段能存的数据的最大长度,若超出长度,则会报错,若没有达到长度,使用空格填充到设定的长度
  • varchar:可变字符,设定的长度同样是规定当前字段能存的数据的最大长度,若超出长度,则会报错,若没有达到长度,不会使用空格填充,实际多长就是多长
  • 表约束

1.非空约束    NOT NULL

2.默认值约束  DEFAULT '男'

3.唯一约束    UNIQUE

4.主键约束    PRIMARY KEY

  • 查看表结构

DESC 表名

mysql> desc user;
+-----------+----------+------+-----+---------+-------+
| Field     | Type     | Null | Key | Default | Extra |
+-----------+----------+------+-----+---------+-------+
| user_name | char(20) | NO   |     | NULL    |       |
+-----------+----------+------+-----+---------+-------+
1 row in set (0.00 sec)

  • 同时对多表名进行改名

mysql> rename table ali to ali0,deng to deng0;  ##同时把表名ali改为ali0,deng改为deng0
Query OK, 0 rows affected (0.01 sec)

  • 删除库、删除表

格式: drop tables [数据库名.]表名;drop database 数据库名;

mysql> drop table auth.users;【删除auth库的users表】

Query OK, 0 rows affected (0.00 sec)

mysql> drop database auth;【删除auth数据库】

Query OK, 0 rows affected (0.00 sec)

修改表名(前提是进入数据库中)

alter table user ios;  ##把表名user修改为ios
或者
mysql> rename table ios to you;   ##把表名ios修改为you
Query OK, 0 rows affected (0.01 sec)


修改列名

Alter table 表名  change  列名  新列名 类型;

修改列类型

Alter table 表名  change 列名  列名  新类型;

修改列类型

Alter table 表名  modify  列名  新类型;

  • 数据查询-单表

查询表中全部信息

select * from 表名;

mysql> select * from zt_team;
+----+------+---------+----------------+--------------+---------+------------+------+-------+----------+----------+------+-------+
| id | root | type    | account        | role         | limited | join       | days | hours | estimate | consumed | left | order |
+----+------+---------+----------------+--------------+---------+------------+------+-------+----------+----------+------+-------+
|  1 |    1 | project | dev3           | 研发         | no      | 2013-02-20 |  184 |   7.0 |     0.00 |     0.00 | 0.00 |     0 |
|  2 |    1 | project | productManager | 产品经理     | no      | 2013-02-20 |  184 |   7.0 |     0.00 |     0.00 | 0.00 |     0 |
|  3 |    1 | project | tester2        | 测试         | no      | 2013-02-20 |  184 |   7.0 |     0.00 |     0.00 | 0.00 |     0 |
|  4 |    1 | project | tester1        | 测试         | no      | 2013-02-20 |  184 |   7.0 |     0.00 |     0.00 | 0.00 |     0 |
|  5 |    2 | project | projectManager | 项目经理     | no      | 2013-02-20 |  365 |   7.0 |     0.00 |     0.00 | 0.00 |     0 |
5 rows in set (0.00 sec)

查询表中指定列的信息

select 列1,列2 from 表名;

mysql> select type,role from zt_team;    ##查看表zt_team中tpye和role列的信息
+---------+--------------+
| type    | role         |
+---------+--------------+
| project | 研发         |
| project | 产品经理     |
| project | 测试         |

数据去重

select distinct 列…. From 表名;

mysql> select distinct type from zt_team;   ##只查看表zt_team中列type中的不重复的数据
ERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect...
Connection id:    229
Current database: zentao

+---------+
| type    |
+---------+
| project |
+---------+
1 row in set (0.10 sec)

拼接结果

select concat(列1,列2) from 表名;

mysql> select concat (type,role) from zt_team;   ##把表zt_team中type列和role列的数据拼接在一起
ERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect...
Connection id:    230
Current database: zentao

+---------------------+
| concat (type,role)  |
+---------------------+
| project研发         |
| project产品经理     |
| project测试         |
| project测试         |


运算符优先级:
1.乘法和除法的优先级高于加法和减法
2.同级运算的顺序是从左到右
3.表达式中使用"括号"可强行改变优先级的运算顺序

select 列1[+-*/]列2 from 表名;
设置别名(注意:关键字as可以省略)

select 列 as 别名 from 表名;   
select 列 别名 from 表名;


  • 条件查询
select 列… from 表名 where 条件; 

mysql> select id  from zt_team where id>10;

+----+
| id |
+----+
| 11 |
| 12 |
| 13 |
| 14 |

  • 条件中比较运算符:( 等于:=  大于:>  大于等于:>=  小于:<  小于等于:<=  不等于:!= 或 <>  )
where 列  比较运算符  值;

mysql> select id from zt_team where id = 10;
+----+
| id |
+----+
| 10 |
+----+
1 row in set (0.01 sec)

注意:字符串、日期需使用单引号括起来
语句的执行顺序:from—>where—>select

  • 逻辑运算符( 并且:and 或 &&   或:or    非:not 或 !    )
where 条件1  逻辑运算符  条件2;
where not 条件;

mysql> select id from zt_team where id=1 or id=10;

+----+
| id |
+----+
|  1 |
| 10 |
+----+
2 rows in set (0.01 sec)

mysql> select id from zt_team where not id>2;
+----+
| id |
+----+
|  1 |
|  2 |
+----+
2 rows in set (0.05 sec)

  • 范围查询
where 列 between 条件1  and 条件2;          //列在这个区间的值
where 列 not between 条件1 and 条件2;    //不在这个区间
where !( 列 between 条件1 and 条件2 );     //同样表示不在这个区间

mysql> select id from zt_team where id between 5 and 10 ;
+----+
| id |
+----+
|  5 |
|  6 |
|  7 |
|  8 |
|  9 |
| 10 |
+----+
6 rows in set (0.00 sec)

mysql> select id from zt_team where id not between  2 and 23;
+----+
| id |
+----+
|  1 |
| 24 |
| 25 |
| 26 |
+----+
4 rows in set (0.01 sec)

mysql> select id from zt_team where !(id between  2 and 23);
+----+
| id |
+----+
|  1 |
| 24 |
| 25 |
| 26 |
+----+
4 rows in set (0.00 sec)

  • 设置别名(注意:关键字as可以省略)
select 列 as 别名 from 表名;
select 列 别名 from 表名;

mysql> select account as act from zt_team;  ##不改变数据库表的列名,只在命令输入后显示时改变别名
+----------------+
| act            |
+----------------+
| dev1           |
| dev2           |
| dev3           |
| productManager |
mysql> select * from zt_team;    ##查看时还是原来的列名
+----+------+---------+----------------+--------------+---------+------------+------+-------+----------+----------+------+-------+
| id | root | type    | account        | role         | limited | join       | days | hours | estimate | consumed | left | order |
+----+------+---------+----------------+--------------+---------+------------+------+-------+----------+----------+------+-------+
|  1 |    1 | project | dev3           | 研发         | no      | 2013-02-20 |  184 |   7.0 |     0.00 |     0.00 | 0.00 |     0 |
mysql> select account zct from zt_team;   ##同第一条
+----------------+
| zct            |
+----------------+
| dev1           |
| dev2           |

  • 集合查询( 判断列的值是否在指定的集合中 )
where 列 in(值1,值2);          //列中的数据是in后的值里面的
where 列 not in(值1,值2);   //不是in中指定值的数据

mysql> select id from zt_team where id in(1,5);
+----+
| id |
+----+
|  1 |
|  5 |
+----+
2 rows in set (0.00 sec)

mysql> select id from zt_team where id not in(3,4,5,6,7,8);
+----+
| id |
+----+
|  1 |
|  2 |

  • NULL值查询( 注意:列中值为null不能使用=去查询 )
where 列 is null;  //查询列中值为null的数据
  • 模糊查询
%:表示0到多个字符,示例:
where 列 like '%0';   //表示以0结尾
where 列 like  '0%';   //表示以0开头
where 列 like  '%0%';   //表示数据中包含0
  • _:表示一个字符,可多次使用,示例:
where 列 like '%0_';   //数据结尾第二位是0
  • 结果排序( 对查询出的结果按照一列或多列进行升序还是降序排列 升序:asc  降序:desc    注意:不能使用中文的别名排序)
where 条件 order by 列 [asc/desc]

mysql> select id from zt_team where id>10  order by id desc;
+----+
| id |
+----+
| 26 |
| 25 |
| 24 |
| 23 |
| 22 |
| 21 |
| 20 |
| 18 |
| 17 |
| 16 |
| 15 |
| 14 |
| 13 |
| 12 |
| 11 |
+----+
15 rows in set (0.00 sec)

语句的执行顺序:from—>where—>select—>order by

  • 分页查询( beginIndex:表示从第多少条数据开始   pageSize:表示每页显示的数据条数 )
where [条件] limit beginIndex,pageSize;

mysql> select id from zt_team where id>0 limit 0,3;
+----+
| id |
+----+
|  1 |
|  2 |
|  3 |
+----+
3 rows in set (0.00 sec)

beginIndex公式:(当前页数-1)*pageSize

  • 聚集函数( 作用于一组数据,并对一组数据返回一个值 )

COUNT:统计结果记录数,若统计的是列,列中为Null,那么count将不会计算值

MAX:  统计计算最大值

MIN:  统计计算最小值

SUM:  统计计算求和

AVG:  统计计算平均值

分组函数( 注意:如果要对分组后的数据进行筛选,那么必须使用having关键字,条件写在having后 )

select 聚集函数 from 表名 where [条件] group by 列 having 分组后的条件
语句的执行顺序:FROM—> WHERE—>group by---->Having—>SELECT-->ORDER BY


Where和having的区别:
Where: 先过滤已有的数据(数据是已经存在的),在进行分组,在聚集计算
Having:先分组,在对每组进行计算,根据得到结果在过滤(分组把数据算出之后,在过滤)
注意:使用having的时候,它是可以使用别名的


  • 数据查询-多表

  • 交叉连接:又名笛卡尔积,使用交叉连接会产生笛卡尔积
  • 假设集合A={a, b},集合B={0, 1, 2},则两个集合的笛卡尔积为{(a, 0), (a, 1), (a, 2), (b, 0), (b, 1), (b, 2)}。
select *  from 表1,表2

mysql> select * from zt_team,zt_todo;

+----+------+---------+----------------+--------------+---------+------------+------+-------+----------+----------+------+-------+----+-----------+------------+-------+------+--------+-------+---------+-----+--------------+------+--------+---------+--------+------------+------------+---------------------+------------+---------------------+----------+---------------------+

| id | root | type    | account        | role         | limited | join       | days | hours | estimate | consumed | left | order | id | account   | date       | begin | end  | type   | cycle | idvalue | pri | name         | desc | status | private | config | assignedTo | assignedBy | assignedDate        | finishedBy | finishedDate        | closedBy | closedDate          |

+----+------+---------+----------------+--------------+---------+------------+------+-------+----------+----------+------+-------+----+-----------+------------+-------+------+--------+-------+---------+-----+--------------+------+--------+---------+--------+------------+------------+---------------------+------------+---------------------+----------+---------------------+

|  1 |    1 | project | dev3           | 研发         | no      | 2013-02-20 |  184 |   7.0 |     0.00 |     0.00 | 0.00 |     0 |  1 | liusiyuan | 2030-01-01 |  2400 | 2400 | custom |     0 |       0 |   3 | 熟悉项目     |      | doing  |       0 |        |            |            | 0000-00-00 00:00:00 |            | 0000-00-00 00:00:00 |          | 0000-00-00 00:00:00 |

|  2 |    1 | project | productManager | 产品经理     | no      | 2013-02-20 |  184 |   7.0 |     0.00 |     0.00 | 0.00 |     0 |  1 | liusiyuan | 2030-01-01 |  2400 | 2400 | custom |     0 |       0 |   3 | 熟悉项目     |      | doing  |       0 |        |            |            | 0000-00-00 00:00:00 |            | 0000-00-00 00:00:00 |          | 0000-00-00 00:00:00 |

|  3 |    1 | project | tester2        | 测试         | no      | 2013-02-20 |  184 |   7.0 |     0.00 |     0.00 | 0.00 |     0 |  1 | liusiyuan | 2030-01-01 |  2400 | 2400 | custom |     0 |       0 |   3 | 熟悉项目     |      | doing  |       0 |        |            |            | 0000-00-00 00:00:00 |            | 0000-00-00 00:00:00 |          | 0000-00-00 00:00:00 |

|  4 |    1 | project | tester1        | 测试         | no      | 2013-02-20 |  184 |   7.0 |     0.00 |     0.00 | 0.00 |     0 |  1 | liusiyuan | 2030-01-01 |  2400 | 2400 | custom |     0 |       0 |   3 | 熟悉项目     |      | doing  |       0 |        |            |            | 0000-00-00 00:00:00 |            | 0000-00-00 00:00:00 |          | 0000-00-00 00:00:00 |

|  5 |    2 | project | projectManager | 项目经理     | no      | 2013-02-20 |  365 |   7.0 |     0.00 |     0.00 | 0.00 |     0 |  1 | liusiyuan | 2030-01-01 |  2400 | 2400 | custom |     0 |       0 |   3 | 熟悉项目     |      | doing  |       0 |        |            |            | 0000-00-00 00:00:00 |            | 0000-00-00 00:00:00 |          | 0000-00-00 00:00:00 |

|  6 |    2 | project | tester2        | 测试         | no      | 2013-02-20 |  365 |   7.0 |     0.00 |     0.00 | 0.00 |     0 |  1 | liusiyuan | 2030-01-01 |  2400 | 2400 | custom |     0 |       0 |   3 | 熟悉项目     |      | doing  |       0 |        |            |            | 0000-00-00 00:00:00 |            | 0000-00-00 00:00:00 |          | 0000-00-00 00:00:00 |

|  7 |    2 | project | tester1        | 测试         | no      | 2013-02-20 |  365 |   7.0 |     0.00 |     0.00 | 0.00 |     0 |  1 | liusiyuan | 2030-01-01 |  2400 | 2400 | custom |     0 |       0 |   3 | 熟悉项目     |      | doing  |       0 |        |            |            | 0000-00-00 00:00:00 |            | 0000-00-00 00:00:00 |          | 0000-00-00 00:00:00 |

|  8 |    2 | project | dev3           | 研发         | no      | 2013-02-20 |  365 |   7.0 |     0.00 |     0.00 | 0.00 |     0 |  1 | liusiyuan | 2030-01-01 |  2400 | 2400 | custom |     0 |       0 |   3 | 熟悉项目     |      | doing  |       0 |        |            |            | 0000-00-00 00:00:00 |            | 0000-00-00 00:00:00 |          | 0000-00-00 00:00:00 |

|  9 |    2 | project | dev2           | 研发         | no      | 2013-02-20 |  365 |   7.0 |     0.00 |     0.00 | 0.00 |     0 |  1 | liusiyuan | 2030-01-01 |  2400 | 2400 | custom |     0 |       0 |   3 | 熟悉项目     |      | doing  |       0 |        |            |            | 0000-00-00 00:00:00 |            | 0000-00-00 00:00:00 |          | 0000-00-00 00:00:00 |

| 10 |    2 | project | dev1           | 研发         | no      | 2013-02-20 |  365 |   7.0 |     0.00 |     0.00 | 0.00 |     0 |  1 | liusiyuan | 2030-01-01 |  2400 | 2400 | custom |     0 |       0 |   3 | 熟悉项目     |      | doing  |       0 |        |            |            | 0000-00-00 00:00:00 |            | 0000-00-00 00:00:00 |          | 0000-00-00 00:00:00 |

| 11 |    1 | project | dev1           | 研发         | no      | 2013-02-20 |  184 |   7.0 |     0.00 |     0.00 | 0.00 |     0 |  1 | liusiyuan | 2030-01-01 |  2400 | 2400 | custom |     0 |       0 |   3 | 熟悉项目     |      | doing  |       0 |        |            |            | 0000-00-00 00:00:00 |            | 0000-00-00 00:00:00 |          | 0000-00-00 00:00:00 |

| 12 |    1 | project | dev2           | 研发         | no      | 2013-02-20 |  184 |   7.0 |     0.00 |     0.00 | 0.00 |     0 |  1 | liusiyuan | 2030-01-01 |  2400 | 2400 | custom |     0 |       0 |   3 | 熟悉项目     |      | doing  |       0 |        |            |            | 0000-00-00 00:00:00 |            | 0000-00-00 00:00:00 |          | 0000-00-00 00:00:00 |

| 13 |    1 | project | projectManager | 项目经理     | no      | 2013-02-20 |  184 |   7.0 |     0.00 |     0.00 | 0.00 |     0 |  1 | liusiyuan | 2030-01-01 |  2400 | 2400 | custom |     0 |       0 |   3 | 熟悉项目     |      | doing  |       0 |        |            |            | 0000-00-00 00:00:00 |            | 0000-00-00 00:00:00 |          | 0000-00-00 00:00:00 |

| 14 |    1 | project | testManager    | 测试主管     | no      | 2013-02-20 |  184 |   7.0 |     0.00 |     0.00 | 0.00 |     0 |  1 | liusiyuan | 2030-01-01 |  2400 | 2400 | custom |     0 |       0 |   3 | 熟悉项目     |      | doing  |       0 |        |            |            | 0000-00-00 00:00:00 |            | 0000-00-00 00:00:00 |          | 0000-00-00 00:00:00 |

| 15 |    2 | project | productManager | 产品经理     | no      | 2013-02-20 |  365 |   7.0 |     0.00 |     0.00 | 0.00 |     0 |  1 | liusiyuan | 2030-01-01 |  2400 | 2400 | custom |     0 |       0 |   3 | 熟悉项目     |      | doing  |       0 |        |            |            | 0000-00-00 00:00:00 |            | 0000-00-00 00:00:00 |          | 0000-00-00 00:00:00 |

| 16 |    3 | project | admin          |              | no      | 2019-05-06 |   40 |   8.0 |     0.00 |     0.00 | 0.00 |     0 |  1 | liusiyuan | 2030-01-01 |  2400 | 2400 | custom |     0 |       0 |   3 | 熟悉项目     |      | doing  |       0 |        |            |            | 0000-00-00 00:00:00 |            | 0000-00-00 00:00:00 |          | 0000-00-00 00:00:00 |

| 17 |    3 | project | cuichengqun    | 研发         | no      | 2019-05-06 |   40 |   8.0 |     0.00 |     0.00 | 0.00 |     0 |  1 | liusiyuan | 2030-01-01 |  2400 | 2400 | custom |     0 |       0 |   3 | 熟悉项目     |      | doing  |       0 |        |            |            | 0000-00-00 00:00:00 |            | 0000-00-00 00:00:00 |          | 0000-00-00 00:00:00 |

| 18 |    3 | project | lijun          | 研发         | no      | 2019-05-06 |   40 |   8.0 |     0.00 |     0.00 | 0.00 |     0 |  1 | liusiyuan | 2030-01-01 |  2400 | 2400 | custom |     0 |       0 |   3 | 熟悉项目     |      | doing  |       0 |        |            |            | 0000-00-00 00:00:00 |            | 0000-00-00 00:00:00 |          | 0000-00-00 00:00:00 |

| 20 |    3 | project | wangheng       | 研发         | no      | 2019-05-06 |   40 |   8.0 |     0.00 |     0.00 | 0.00 |     0 |  1 | liusiyuan | 2030-01-01 |  2400 | 2400 | custom |     0 |       0 |   3 | 熟悉项目     |      | doing  |       0 |        |            |            | 0000-00-00 00:00:00 |            | 0000-00-00 00:00:00 |          | 0000-00-00 00:00:00 |

| 21 |    3 | project | xiehongxin     | 项目经理     | no      | 2019-05-06 |   40 |   8.0 |     0.00 |     0.00 | 0.00 |     0 |  1 | liusiyuan | 2030-01-01 |  2400 | 2400 | custom |     0 |       0 |   3 | 熟悉项目     |      | doing  |       0 |        |            |            | 0000-00-00 00:00:00 |            | 0000-00-00 00:00:00 |          | 0000-00-00 00:00:00 |

| 22 |    3 | project | wuxuewen       | 研发主管     | no      | 2019-05-06 |   40 |   8.0 |     0.00 |     0.00 | 0.00 |     0 |  1 | liusiyuan | 2030-01-01 |  2400 | 2400 | custom |     0 |       0 |   3 | 熟悉项目     |      | doing  |       0 |        |            |            | 0000-00-00 00:00:00 |            | 0000-00-00 00:00:00 |          | 0000-00-00 00:00:00 |

| 23 |    3 | project | liusiyuan      | 研发         | no      | 2019-05-13 |   40 |   7.0 |     0.00 |     0.00 | 0.00 |     0 |  1 | liusiyuan | 2030-01-01 |  2400 | 2400 | custom |     0 |       0 |   3 | 熟悉项目     |      | doing  |       0 |        |            |            | 0000-00-00 00:00:00 |            | 0000-00-00 00:00:00 |          | 0000-00-00 00:00:00 |

| 24 |    3 | project | youshuo        | 产品经理     | no      | 2019-05-13 |   40 |   7.0 |     0.00 |     0.00 | 0.00 |     0 |  1 | liusiyuan | 2030-01-01 |  2400 | 2400 | custom |     0 |       0 |   3 | 熟悉项目     |      | doing  |       0 |        |            |            | 0000-00-00 00:00:00 |            | 0000-00-00 00:00:00 |          | 0000-00-00 00:00:00 |

| 25 |    3 | project | liweifang      | 研发         | no      | 2019-05-20 |   40 |   7.0 |     0.00 |     0.00 | 0.00 |     0 |  1 | liusiyuan | 2030-01-01 |  2400 | 2400 | custom |     0 |       0 |   3 | 熟悉项目     |      | doing  |       0 |        |            |            | 0000-00-00 00:00:00 |            | 0000-00-00 00:00:00 |          | 0000-00-00 00:00:00 |

| 26 |    3 | project | lizeqing       | 研发         | no      | 2019-05-21 |   40 |   7.0 |     0.00 |     0.00 | 0.00 |     0 |  1 | liusiyuan | 2030-01-01 |  2400 | 2400 | custom |     0 |       0 |   3 | 熟悉项目     |      | doing  |       0 |        |            |            | 0000-00-00 00:00:00 |            | 0000-00-00 00:00:00 |          | 0000-00-00 00:00:00 |

+----+------+---------+----------------+--------------+---------+------------+------+-------+----------+----------+------+-------+----+-----------+------------+-------+------+--------+-------+---------+-----+--------------+------+--------+---------+--------+------------+------------+---------------------+------------+---------------------+----------+---------------------+

25 rows in set (0.00 sec)

  • 内连接:过滤为空的数据(查询的实际上是两张表数据的交集部分)    目的 ==》解决笛卡尔积现象,正确查询了需要的数据
select * from 表1,表2  where 表1.字段=表2.字段;  //隐式内连接,使用where条件消除笛卡尔积
select * from 表1 [inner] join 表2 on 表1.字段=表2.字段;  //显式内连接,如果是多张表,则一直在join..on后依次添加join..on即可,inner关键字可被省略

mysql> select * from zt_file,zt_burn where addedDate = date;     ##隐式内连接
+----+-----------------------------+---------------------------+-----------+--------+------------+----------+---------+---------------------+-----------+--------+---------+---------+------+------------+----------+------+----------+
| id | pathname                    | title                     | extension | size   | objectType | objectID | addedBy | addedDate           | downloads | extra  | deleted | project | task | date       | estimate | left | consumed |
+----+-----------------------------+---------------------------+-----------+--------+------------+----------+---------+---------------------+-----------+--------+---------+---------+------+------------+----------+------+----------+
|  1 | 201905/1216211706947kjq.png | 1216211706947kjq          | png       |  42133 |            |        0 | admin   | 2019-05-12 00:00:00 |         0 |        | 0       |       3 |    0 | 2019-05-12 |      547 |  491 |       36 |
|  2 | 201905/121625460623ava.png  | 加盟店详情首页.png        | png       | 432411 | task       |      126 | lijun   | 2019-05-12 00:00:00 |         0 | editor | 0       |       3 |    0 | 2019-05-12 |      547 |  491 |       36 |
|  3 | 201905/1216282404775a1e.png | 合伙加盟.png              | png       | 240805 | task       |      125 | lijun   | 2019-05-12 00:00:00 |         0 | editor | 0       |       3 |    0 | 2019-05-12 |      547 |  491 |       36 |
|  4 | 201905/1216330804347ava.png | 加盟详情.png              | png       | 145126 | task       |      126 | lijun   | 2019-05-12 00:00:00 |         0 | editor | 0       |       3 |    0 | 2019-05-12 |      547 |  491 |       36 |
|  5 | 201905/1216344802235kiu.png | 加盟店详情首页.png        | png       | 432411 | task       |      124 | lijun   | 2019-05-12 00:00:00 |         0 | editor | 0       |       3 |    0 | 2019-05-12 |      547 |  491 |       36 |
|  6 | 201905/12163541072352rk.png | 加盟店列表.png            | png       | 294887 | task       |      123 | lijun   | 2019-05-12 00:00:00 |         0 | editor | 0       |       3 |    0 | 2019-05-12 |      547 |  491 |       36 |
|  7 | 201905/1216392106995vgv.png | 加盟详情.png              | png       | 145126 | task       |      126 | lijun   | 2019-05-12 00:00:00 |         0 |        | 0       |       3 |    0 | 2019-05-12 |      547 |  491 |       36 |
|  8 | 201905/1216402309418e2r.png | 加盟详情.png              | png       | 145126 | task       |      126 | lijun   | 2019-05-12 00:00:00 |         0 | editor | 0       |       3 |    0 | 2019-05-12 |      547 |  491 |       36 |
+----+-----------------------------+---------------------------+-----------+--------+------------+----------+---------+---------------------+-----------+--------+---------+---------+------+------------+----------+------+----------+
8 rows in set (0.03 sec)

mysql> select * from zt_file  inner join zt_burn  on  addedDate=date;     ##显示内连接
+----+-----------------------------+---------------------------+-----------+--------+------------+----------+---------+---------------------+-----------+--------+---------+---------+------+------------+----------+------+----------+
| id | pathname                    | title                     | extension | size   | objectType | objectID | addedBy | addedDate           | downloads | extra  | deleted | project | task | date       | estimate | left | consumed |
+----+-----------------------------+---------------------------+-----------+--------+------------+----------+---------+---------------------+-----------+--------+---------+---------+------+------------+----------+------+----------+
|  1 | 201905/1216211706947kjq.png | 1216211706947kjq          | png       |  42133 |            |        0 | admin   | 2019-05-12 00:00:00 |         0 |        | 0       |       3 |    0 | 2019-05-12 |      547 |  491 |       36 |
|  2 | 201905/121625460623ava.png  | 加盟店详情首页.png        | png       | 432411 | task       |      126 | lijun   | 2019-05-12 00:00:00 |         0 | editor | 0       |       3 |    0 | 2019-05-12 |      547 |  491 |       36 |
|  3 | 201905/1216282404775a1e.png | 合伙加盟.png              | png       | 240805 | task       |      125 | lijun   | 2019-05-12 00:00:00 |         0 | editor | 0       |       3 |    0 | 2019-05-12 |      547 |  491 |       36 |
|  4 | 201905/1216330804347ava.png | 加盟详情.png              | png       | 145126 | task       |      126 | lijun   | 2019-05-12 00:00:00 |         0 | editor | 0       |       3 |    0 | 2019-05-12 |      547 |  491 |       36 |
|  5 | 201905/1216344802235kiu.png | 加盟店详情首页.png        | png       | 432411 | task       |      124 | lijun   | 2019-05-12 00:00:00 |         0 | editor | 0       |       3 |    0 | 2019-05-12 |      547 |  491 |       36 |
|  6 | 201905/12163541072352rk.png | 加盟店列表.png            | png       | 294887 | task       |      123 | lijun   | 2019-05-12 00:00:00 |         0 | editor | 0       |       3 |    0 | 2019-05-12 |      547 |  491 |       36 |
|  7 | 201905/1216392106995vgv.png | 加盟详情.png              | png       | 145126 | task       |      126 | lijun   | 2019-05-12 00:00:00 |         0 |        | 0       |       3 |    0 | 2019-05-12 |      547 |  491 |       36 |
|  8 | 201905/1216402309418e2r.png | 加盟详情.png              | png       | 145126 | task       |      126 | lijun   | 2019-05-12 00:00:00 |         0 | editor | 0       |       3 |    0 | 2019-05-12 |      547 |  491 |       36 |
+----+-----------------------------+---------------------------+-----------+--------+------------+----------+---------+---------------------+-----------+--------+---------+---------+------+------------+----------+------+----------+
8 rows in set (0.00 sec)

  • 外连接:左外连接、右外连接、全外连接
左外连接:以左边表为主,返回左边表中所有数据,若右表中无数据,则显示为NULL,请参考实际查询结果来理解
select * from 表1 left [outer] join 表2 on 表1.字段=表2.字段;   //表1为左表,表2为右表,outer关键字可被省略

mysql> select * from zt_file left outer join zt_burn  on  addedDate=date;
+----+-----------------------------+---------------------------+-----------+--------+------------+----------+---------+---------------------+-----------+--------+---------+---------+------+------------+----------+------+----------+
| id | pathname                    | title                     | extension | size   | objectType | objectID | addedBy | addedDate           | downloads | extra  | deleted | project | task | date       | estimate | left | consumed |
+----+-----------------------------+---------------------------+-----------+--------+------------+----------+---------+---------------------+-----------+--------+---------+---------+------+------------+----------+------+----------+
|  1 | 201905/1216211706947kjq.png | 1216211706947kjq          | png       |  42133 |            |        0 | admin   | 2019-05-12 00:00:00 |         0 |        | 0       |       3 |    0 | 2019-05-12 |      547 |  491 |       36 |
|  2 | 201905/121625460623ava.png  | 加盟店详情首页.png        | png       | 432411 | task       |      126 | lijun   | 2019-05-12 00:00:00 |         0 | editor | 0       |       3 |    0 | 2019-05-12 |      547 |  491 |       36 |
|  3 | 201905/1216282404775a1e.png | 合伙加盟.png              | png       | 240805 | task       |      125 | lijun   | 2019-05-12 00:00:00 |         0 | editor | 0       |       3 |    0 | 2019-05-12 |      547 |  491 |       36 |
|  4 | 201905/1216330804347ava.png | 加盟详情.png              | png       | 145126 | task       |      126 | lijun   | 2019-05-12 00:00:00 |         0 | editor | 0       |       3 |    0 | 2019-05-12 |      547 |  491 |       36 |
|  5 | 201905/1216344802235kiu.png | 加盟店详情首页.png        | png       | 432411 | task       |      124 | lijun   | 2019-05-12 00:00:00 |         0 | editor | 0       |       3 |    0 | 2019-05-12 |      547 |  491 |       36 |
|  6 | 201905/12163541072352rk.png | 加盟店列表.png            | png       | 294887 | task       |      123 | lijun   | 2019-05-12 00:00:00 |         0 | editor | 0       |       3 |    0 | 2019-05-12 |      547 |  491 |       36 |
|  7 | 201905/1216392106995vgv.png | 加盟详情.png              | png       | 145126 | task       |      126 | lijun   | 2019-05-12 00:00:00 |         0 |        | 0       |       3 |    0 | 2019-05-12 |      547 |  491 |       36 |
|  8 | 201905/1216402309418e2r.png | 加盟详情.png              | png       | 145126 | task       |      126 | lijun   | 2019-05-12 00:00:00 |         0 | editor | 0       |       3 |    0 | 2019-05-12 |      547 |  491 |       36 |
+----+-----------------------------+---------------------------+-----------+--------+------------+----------+---------+---------------------+-----------+--------+---------+---------+------+------------+----------+------+----------+
8 rows in set (0.00 sec)

  • 右外连接:以右边表为主,返回右表中所有数据,若左表中无数据,则显示为NULL,结合实际查询结果来理解
select * from 表1 right [outer] join 表2 on 表1.字段=表2.字段;  //表1为左表,表2为右表,outer关键字可被省略

select * from zt_file right outer join zt_burn on zt_file.addedDate=zt_burn.date;  和 select * from zt_file right outer join zt_burn on addedDate=date;得到的结果一致,同理左连接也是。

mysql> select * from zt_file right outer join zt_burn on addedDate=date;
+------+-----------------------------+---------------------------+-----------+--------+------------+----------+---------+---------------------+-----------+--------+---------+---------+------+------------+----------+------+----------+
| id   | pathname                    | title                     | extension | size   | objectType | objectID | addedBy | addedDate           | downloads | extra  | deleted | project | task | date       | estimate | left | consumed |
+------+-----------------------------+---------------------------+-----------+--------+------------+----------+---------+---------------------+-----------+--------+---------+---------+------+------------+----------+------+----------+
|    1 | 201905/1216211706947kjq.png | 1216211706947kjq          | png       |  42133 |            |        0 | admin   | 2019-05-12 00:00:00 |         0 |        | 0       |       3 |    0 | 2019-05-12 |      547 |  491 |       36 |
|    2 | 201905/121625460623ava.png  | 加盟店详情首页.png        | png       | 432411 | task       |      126 | lijun   | 2019-05-12 00:00:00 |         0 | editor | 0       |       3 |    0 | 2019-05-12 |      547 |  491 |       36 |
|    3 | 201905/1216282404775a1e.png | 合伙加盟.png              | png       | 240805 | task       |      125 | lijun   | 2019-05-12 00:00:00 |         0 | editor | 0       |       3 |    0 | 2019-05-12 |      547 |  491 |       36 |
|    4 | 201905/1216330804347ava.png | 加盟详情.png              | png       | 145126 | task       |      126 | lijun   | 2019-05-12 00:00:00 |         0 | editor | 0       |       3 |    0 | 2019-05-12 |      547 |  491 |       36 |
|    5 | 201905/1216344802235kiu.png | 加盟店详情首页.png        | png       | 432411 | task       |      124 | lijun   | 2019-05-12 00:00:00 |         0 | editor | 0       |       3 |    0 | 2019-05-12 |      547 |  491 |       36 |
|    6 | 201905/12163541072352rk.png | 加盟店列表.png            | png       | 294887 | task       |      123 | lijun   | 2019-05-12 00:00:00 |         0 | editor | 0       |       3 |    0 | 2019-05-12 |      547 |  491 |       36 |
|    7 | 201905/1216392106995vgv.png | 加盟详情.png              | png       | 145126 | task       |      126 | lijun   | 2019-05-12 00:00:00 |         0 |        | 0       |       3 |    0 | 2019-05-12 |      547 |  491 |       36 |
|    8 | 201905/1216402309418e2r.png | 加盟详情.png              | png       | 145126 | task       |      126 | lijun   | 2019-05-12 00:00:00 |         0 | editor | 0       |       3 |    0 | 2019-05-12 |      547 |  491 |       36 |
| NULL | NULL                        | NULL                      | NULL      |   NULL | NULL       |     NULL | NULL    | NULL                |      NULL | NULL   | NULL    |       1 |    0 | 2012-06-05 |        0 |    0 |       38 |
| NULL | NULL                        | NULL                      | NULL      |   NULL | NULL       |     NULL | NULL    | NULL                |      NULL | NULL   | NULL    |       3 |    0 | 2019-05-06 |       86 |   78 |        6 |
| NULL | NULL                        | NULL                      | NULL      |   NULL | NULL       |     NULL | NULL    | NULL                |      NULL | NULL   | NULL    |       3 |    0 | 2019-05-07 |      544 |  528 |       11 |
| NULL | NULL                        | NULL                      | NULL      |   NULL | NULL       |     NULL | NULL    | NULL                |      NULL | NULL   | NULL    |       3 |    0 | 2019-05-08 |      544 |  516 |       19 |
| NULL | NULL                        | NULL                      | NULL      |   NULL | NULL       |     NULL | NULL    | NULL                |      NULL | NULL   | NULL    |       3 |    0 | 2019-05-09 |      544 |  504 |       26 |
| NULL | NULL                        | NULL                      | NULL      |   NULL | NULL       |     NULL | NULL    | NULL                |      NULL | NULL   | NULL    |       3 |    0 | 2019-05-10 |      544 |  504 |       26 |
| NULL | NULL                        | NULL                      | NULL      |   NULL | NULL       |     NULL | NULL    | NULL                |      NULL | NULL   | NULL    |       3 |    0 | 2019-05-11 |      544 |  504 |       26 |
| NULL | NULL                        | NULL                      | NULL      |   NULL | NULL       |     NULL | NULL    | NULL                |      NULL | NULL   | NULL    |       3 |    0 | 2019-05-14 |      547 |  469 |       70 |
| NULL | NULL                        | NULL                      | NULL      |   NULL | NULL       |     NULL | NULL    | NULL                |      NULL | NULL   | NULL    |       3 |    0 | 2019-05-16 |      547 |  469 |       70 |
| NULL | NULL                        | NULL                      | NULL      |   NULL | NULL       |     NULL | NULL    | NULL                |      NULL | NULL   | NULL    |       3 |    0 | 2019-05-17 |      547 |  469 |       70 |
| NULL | NULL                        | NULL                      | NULL      |   NULL | NULL       |     NULL | NULL    | NULL                |      NULL | NULL   | NULL    |       3 |    0 | 2019-05-18 |      547 |  469 |       70 |
| NULL | NULL                        | NULL                      | NULL      |   NULL | NULL       |     NULL | NULL    | NULL                |      NULL | NULL   | NULL    |       3 |    0 | 2019-05-19 |      547 |  469 |       70 |
| NULL | NULL                        | NULL                      | NULL      |   NULL | NULL       |     NULL | NULL    | NULL                |      NULL | NULL   | NULL    |       3 |    0 | 2019-05-20 |      547 |  469 |       74 |
| NULL | NULL                        | NULL                      | NULL      |   NULL | NULL       |     NULL | NULL    | NULL                |      NULL | NULL   | NULL    |       3 |    0 | 2019-05-21 |      547 |  491 |      104 |
| NULL | NULL                        | NULL                      | NULL      |   NULL | NULL       |     NULL | NULL    | NULL                |      NULL | NULL   | NULL    |       3 |    0 | 2019-05-22 |      547 |  491 |      149 |
| NULL | NULL                        | NULL                      | NULL      |   NULL | NULL       |     NULL | NULL    | NULL                |      NULL | NULL   | NULL    |       3 |    0 | 2019-05-23 |      547 |  463 |      177 |
| NULL | NULL                        | NULL                      | NULL      |   NULL | NULL       |     NULL | NULL    | NULL                |      NULL | NULL   | NULL    |       3 |    0 | 2019-05-24 |      547 |  463 |      215 |
| NULL | NULL                        | NULL                      | NULL      |   NULL | NULL       |     NULL | NULL    | NULL                |      NULL | NULL   | NULL    |       3 |    0 | 2019-05-25 |      547 |  463 |      215 |
| NULL | NULL                        | NULL                      | NULL      |   NULL | NULL       |     NULL | NULL    | NULL                |      NULL | NULL   | NULL    |       3 |    0 | 2019-05-26 |      547 |  463 |      215 |
| NULL | NULL                        | NULL                      | NULL      |   NULL | NULL       |     NULL | NULL    | NULL                |      NULL | NULL   | NULL    |       3 |    0 | 2019-05-27 |      547 |  431 |      243 |
| NULL | NULL                        | NULL                      | NULL      |   NULL | NULL       |     NULL | NULL    | NULL                |      NULL | NULL   | NULL    |       3 |    0 | 2019-05-28 |      549 |  451 |      296 |
| NULL | NULL                        | NULL                      | NULL      |   NULL | NULL       |     NULL | NULL    | NULL                |      NULL | NULL   | NULL    |       3 |    0 | 2019-05-29 |      549 |  393 |      312 |
| NULL | NULL                        | NULL                      | NULL      |   NULL | NULL       |     NULL | NULL    | NULL                |      NULL | NULL   | NULL    |       3 |    0 | 2019-05-30 |      549 |  401 |      330 |
| NULL | NULL                        | NULL                      | NULL      |   NULL | NULL       |     NULL | NULL    | NULL                |      NULL | NULL   | NULL    |       3 |    0 | 2019-05-31 |      549 |  397 |      330 |
| NULL | NULL                        | NULL                      | NULL      |   NULL | NULL       |     NULL | NULL    | NULL                |      NULL | NULL   | NULL    |       3 |    0 | 2019-06-03 |      549 |  397 |      330 |
| NULL | NULL                        | NULL                      | NULL      |   NULL | NULL       |     NULL | NULL    | NULL                |      NULL | NULL   | NULL    |       3 |    0 | 2019-06-04 |      549 |  397 |      330 |
| NULL | NULL                        | NULL                      | NULL      |   NULL | NULL       |     NULL | NULL    | NULL                |      NULL | NULL   | NULL    |       3 |    0 | 2019-06-05 |      549 |  397 |      330 |
+------+-----------------------------+---------------------------+-----------+--------+------------+----------+---------+---------------------+-----------+--------+---------+---------+------+------------+----------+------+----------+
35 rows in set (0.00 sec)

  • 全外连接:返回涉及的多表中的所有数据,MYSQL中不支持该查询,仅限了解自连接:单表当作多表查询,直白的讲就是一张表中数据含有多种关系,使用多表查询的语法,来查询一张表,查询过程中一定要使用别名
  • 多用在分类数据、省市县分类数据、权限…
select 表1.字段1,表2.字段2 from 表名 as 表1,表名 as 表2 where 表1.字段1=表2.字段2

全外连接

select   表1.字段1,表2.字段2   from   表名,表名    where   表1.字段1=表2.字段2

mysql> select it_Development.*,it_Operate.* from it_Development,it_Operate where it_Development.年龄=it_Operate.年龄;
+-----------+--------+----------+-----------+--------+-----------+--------+----------+--------+--------+
| 姓名      | 年龄   | 员工id   | 学历      | 薪资   | 姓名      | 年龄   | 员工id   | 学历   | 薪资   |
+-----------+--------+----------+-----------+--------+-----------+--------+----------+--------+--------+
| 小小春    |     22 |      123 | 研究生    |  10000 | 小小东    |     22 |      131 | 本科   |   9000 |
| 小小夏    |     23 |      123 | 研究生    |  11000 | 小小西    |     23 |      132 | 本科   |  10000 |
+-----------+--------+----------+-----------+--------+-----------+--------+----------+--------+--------+
2 rows in set (0.00 sec)

  • 子查询:将一个查询结果作为另一个查询的对象,直白的讲就是SQL语句嵌套

什么是子查询?子查询就是嵌套在主查询中的查询。

子查询可以嵌套在主查询中所有位置,包括SELECT、FROM、WHERE、GROUP BY、HAVING、ORDER BY。

select * from (select * from 表名) as 别名
select * from where 条件->条件中包含查询语句

注意:1.查询结果的虚拟表必须取别名
           2.字段与关键字一样,冲突时,需要给字段名加``,(Esc键下面、1的左边)
           3.如果给虚拟结果表中的字段取了别名,则对虚拟结果表查询时,应该用 表别名.虚拟表字段别名


  • 创建新的数据库和表(及怎么解决mysql数据库不支持中文)

mysql> create database test;
Query OK, 1 row affected (0.00 sec)
mysql> use test
Database changed
mysql> show tables;
Empty set (0.00 sec)

  • 在数据库test中创建表it_Development和it_Operate

create table it_Development(姓名 char(10)not null,年龄 int(3)not null,员工id int(6)not null,学历 char(5)not null,薪资 int(8)not null);
create table it_Operate(姓名 char(10)not null,年龄 int(3)not null,员工id int(6)not null,学历 char(5)not null,薪资 int(8)not null);

mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| it_Development |
| it_Operate     |
+----------------+
2 rows in set (0.00 sec)

  • 查看表it_Development的结构

mysql> desc it_Development;
+----------+----------+------+-----+---------+-------+
| Field    | Type     | Null | Key | Default | Extra |
+----------+----------+------+-----+---------+-------+
| 姓名     | char(10) | NO   |     | NULL    |       |
| 年龄     | int(3)   | NO   |     | NULL    |       |
| 员工id   | int(6)   | NO   |     | NULL    |       |
| 学历     | char(5)  | NO   |     | NULL    |       |
| 薪资     | int(8)   | NO   |     | NULL    |       |
+----------+----------+------+-----+---------+-------+
5 rows in set (0.00 sec)

  • 查看表it_Operate的结构

mysql> desc it_Operate;
+----------+----------+------+-----+---------+-------+
| Field    | Type     | Null | Key | Default | Extra |
+----------+----------+------+-----+---------+-------+
| 姓名     | char(10) | NO   |     | NULL    |       |
| 年龄     | int(3)   | NO   |     | NULL    |       |
| 员工id   | int(6)   | NO   |     | NULL    |       |
| 学历     | char(5)  | NO   |     | NULL    |       |
| 薪资     | int(8)   | NO   |     | NULL    |       |
+----------+----------+------+-----+---------+-------+
5 rows in set (0.00 sec)

  • 查看mysql数据库的编码是什么语言

mysql> show variables like '%char%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | latin1                     |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | latin1                     |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)

  • 一次性修改使数据库支持中文,重启数据库后失效!
set character_set_database = utf8;
set character_set_server = utf8;
set character_set_client = utf8;
set character_set_server = utf8;
set character_set_connection = utf8;
set character_set_database = utf8;
set character_set_results = utf8;
set collation_connection = utf8_general_ci;
set collation_database = utf8_general_ci;
set collation_server = utf8_general_ci;

mysql> show create table it_Development;
+----------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table          | Create Table                                                                                                                                                                                                           |
+----------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| it_Development | CREATE TABLE `it_Development` (
  `姓名` char(10) NOT NULL,
  `年龄` int(3) NOT NULL,
  `员工id` int(6) NOT NULL,
  `学历` char(5) NOT NULL,
  `薪资` int(8) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1           |
+----------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

  • 修改it_Development表的编码为utf8,默认为拉丁语(latinl)

mysql> alter table it_Development default character set utf8;  
ERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect...
Connection id:    287
Current database: test

Query OK, 0 rows affected (0.03 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> show create table it_Development;
+----------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table          | Create Table                                                                                                                                                                                                                                                   |
+----------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| it_Development | CREATE TABLE `it_Development` (
  `姓名` char(10) CHARACTER SET latin1 NOT NULL,
  `年龄` int(3) NOT NULL,
  `员工id` int(6) NOT NULL,
  `学历` char(5) CHARACTER SET latin1 NOT NULL,
  `薪资` int(8) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8           |
+----------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

  • 修改列的编码为utf8,注意 tdb_goods_cates 的编码仍然为 latinl,虽然此时表的编码已经是 utf8,姓名和学历的编码依然为latinl,需要把这俩个也修改为utf8
alter table it_Development change 学历 学历 char(5) character set utf8;
alter table it_Development change 姓名 姓名 char(10) character set utf8;

mysql> show create table it_Development;
+----------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table          | Create Table                                                                                                                                                                                                                 |
+----------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| it_Development | CREATE TABLE `it_Development` (
  `姓名` char(10) DEFAULT NULL,
  `年龄` int(3) NOT NULL,
  `员工id` int(6) NOT NULL,
  `学历` char(5) DEFAULT NULL,
  `薪资` int(8) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8           |
+----------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

  • 在表it_Development中插入数据

insert into it_Development(姓名,年龄,员工id,学历,薪资)values('小小春',22,000123,'研究生',10000);
insert into it_Development(姓名,年龄,员工id,学历,薪资)values('小小夏',23,000123,'研究生',11000);
insert into it_Development(姓名,年龄,员工id,学历,薪资)values('小小秋',24,000123,'研究生',12000);
insert into it_Development(姓名,年龄,员工id,学历,薪资)values('小小冬',25,000123,'研究生',13000);

  • 查看数据库test中的表it_Development的数据

mysql> select * from it_Development;
+-----------+--------+----------+-----------+--------+
| 姓名      | 年龄   | 员工id   | 学历      | 薪资   |
+-----------+--------+----------+-----------+--------+
| 小小春    |     22 |      123 | 研究生    |  10000 |
| 小小夏    |     23 |      123 | 研究生    |  11000 |
| 小小秋    |     24 |      123 | 研究生    |  12000 |
| 小小冬    |     25 |      123 | 研究生    |  13000 |
+-----------+--------+----------+-----------+--------+
4 rows in set (0.00 sec)

  • 查看it_Operate表的编码语言,修改拉丁语为utf8

mysql> show create table it_Operate;
+------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table      | Create Table                                                                                                                                                                                                       |
+------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| it_Operate | CREATE TABLE `it_Operate` (
  `姓名` char(10) NOT NULL,
  `年龄` int(3) NOT NULL,
  `员工id` int(6) NOT NULL,
  `学历` char(5) NOT NULL,
  `薪资` int(8) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1           |
+------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

  • 修改表的编码语言为utf8

mysql> alter table it_Operate default  character set utf8;
Query OK, 0 rows affected (0.00 sec)
Records: 0  Duplicates: 0  Warnings: 0

  • 把表的编码拉丁语修改为utf8后,发现列姓名和列学历的编码变为拉丁语

mysql> show create table it_Operate;
+------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table      | Create Table                                                                                                                                                                                                                                               |
+------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| it_Operate | CREATE TABLE `it_Operate` (
  `姓名` char(10) CHARACTER SET latin1 NOT NULL,
  `年龄` int(3) NOT NULL,
  `员工id` int(6) NOT NULL,
  `学历` char(5) CHARACTER SET latin1 NOT NULL,
  `薪资` int(8) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8           |
+------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

  • 修改列的编码语言为utf8

mysql> alter table it_Operate change 姓名 姓名 char(10) character set utf8;
Query OK, 0 rows affected (0.05 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> alter table it_Operate change 学历 学历 char(5) character set utf8;
Query OK, 0 rows affected (0.05 sec)

  • 插入数据到it_Operate表里

insert into it_Operate(姓名,年龄,员工id,学历,薪资)values('小小东',22,000131,'本科',9000);
insert into it_Operate(姓名,年龄,员工id,学历,薪资)values('小小西',23,000132,'本科',10000);
insert into it_Operate(姓名,年龄,员工id,学历,薪资)values('小小南',20,000133,'本科',8500);
insert into it_Operate(姓名,年龄,员工id,学历,薪资)values('小小北',21,000134,'本科',8000);

  • 查看表it_Operate的数据

mysql> select * from it_Operate;
+-----------+--------+----------+--------+--------+
| 姓名      | 年龄   | 员工id   | 学历   | 薪资   |
+-----------+--------+----------+--------+--------+
| 小小东    |     22 |      131 | 本科   |   9000 |
| 小小西    |     23 |      132 | 本科   |  10000 |
| 小小南    |     20 |      133 | 本科   |   8500 |
| 小小北    |     21 |      134 | 本科   |   8000 |
+-----------+--------+----------+--------+--------+
4 rows in set (0.00 sec)


  • DML语句操作

数据操纵语言,用于对表中的数据进行增删改

  •  insert 插入新数据

注意: 1.如果插入的表中的主键是自增类型的,可以不用插入值
            2.如果主键是非自增 ,插入的数据则是填补主键字段值空余的值
            3.如果主键设置了自动递增,会从主键字段最大值开始插入数据

格式:insert into 表名(字段1,字段2,.......)values('字段1的值',‘字段2的值’......);

其他插入方式:

insert into 表名(字段1,字段2) values(值1,值2),(值1,值2);     //插入多条数据【MYSQL】
insert into 表名 values(值1,值2);                    //针对全表所有字段进行插入操作
insert into 表名(字段) select 字段 from 表2;         //查询结果插入
insert into 表名 select 字段 from 表2;               //查询结果,全表插入

mysql> create database auth;

Query OK, 1 row affected (0.00 sec)

mysql> use auth;

Database changed

mysql> create table users (user_name char(20) not null, user_passwd char(30) default '', primary key (user_name));

Query OK, 0 rows affected (0.01 sec)

mysql> desc users;

+-------------+----------+------+-----+---------+-------+

| Field       | Type     | Null | Key | Default | Extra |

+-------------+----------+------+-----+---------+-------+

| user_name   | char(20) | NO   | PRI | NULL    |       |

| user_passwd | char(30) | YES  |     |         |       |

+-------------+----------+------+-----+---------+-------+

2 rows in set (0.00 sec)

mysql> insert into users(user_name,user_passwd)values('zhangsan',password('123123'));【在users表的(字段user_name,字段user_passwd)中添加(‘zjangsan’,条用函数password(‘123123’));】

Query OK, 1 row affected, 1 warning (0.01 sec)

mysql> insert into users values('lisi',password('123123'));【字段内容可省略】【表名users返回值李四】

Query OK, 1 row affected, 1 warning (0.00 sec)【询问ok,1行收到影响,1警告,0.00秒】

mysql> select*from users;【挑选来自users表的】

+-----------+--------------------------------+

| user_name | user_passwd                    |

+-----------+--------------------------------+

| lisi      | *E56A114692FE0DE073F9A1DD68A00 |

| zhangsan  | *E56A114692FE0DE073F9A1DD68A00 |

+-----------+--------------------------------+

2 rows in set (0.00 sec)

  •  update更改原有数据

格式:upfate 表名 set 字段名 1=值1[,字段2=值2]where  条件表达式;      ##带条件修改指定数据,否则修改全表

mysql> update auth.users set user_passwd=password('')where user_name='lisi';【更改zuth库的users表指定密码为密码 定位用户为李四】

Query OK, 1 row affected (0.29 sec)

Rows matched: 1  Changed: 1  Warnings: 0【匹配行1被改变1行被警告】

【where定位对谁做修改】

mysql> update mysql.user set password=password('123123')where user='root';【修改mysql登录root定位用户密码为123123】

Query OK, 0 rows affected (0.04 sec)

Rows matched: 4  Changed: 0  Warnings: 0【匹配行4 被改变0 被警告0】

mysql> flush privileges;【刷新权限】

Query OK, 0 rows affected (0.30 sec)【询问ok 0行警告】

  • delete 删除不需要的数据

格式:delete from 表名 where 条件表达式;      ##删除数据带条件指定数据,否则删除全表数据

mysql> delete from auth.users where user_name='lisi';【在auth库中的users表中,删除用户名为lisi的记录】

Query OK, 1 row affected (0.03 sec)

mysql> select * from auth.users;

+-----------+--------------------------------+

| user_name | user_passwd                    |

+-----------+--------------------------------+

| zhangsan  | *E56A114692FE0DE073F9A1DD68A00 |

+-----------+--------------------------------+

1 row in set (0.00 sec)

mysql> delete from mysql.user where user='';【在mysql库中的user表中,删除空的用户名的记录】

Query OK, 2 rows affected (0.00 sec)

  • DDL语句操作

数据查询语言,用于数据查询

  • select 查询语句

格式: select 字段名1,字段名2,......from 表名;

selete字段名1,字段名2,........from 表名 where 条件表达式

mysql> select user_name from auth.users;

+-----------+

| user_name |

+-----------+

| zhangsan  |

+-----------+

1 row in set (0.00 sec)

mysql> select * from auth.users where user_name='zhangsan';

+-----------+--------------------------------+

| user_name | user_passwd                    |

+-----------+--------------------------------+

| zhangsan  | *E56A114692FE0DE073F9A1DD68A00 |

+-----------+--------------------------------+

1 row in set (0.00 sec)


  • 数据备份

在命令行窗口进行,若操作系统版本高,则使用管理员模式

导出:

mysqldump -u账户 -p密码 数据库名称>脚本文件存储地
ex:         mysqldump -uroot -proot jdbcdemo> C:/shop_bak.sql
导入:

mysql -u账户 -p密码 数据库名称< 脚本文件存储地址
ex:         mysql -uroot -proot jdbcdemo< C:/shop_bak.sql
使用可视化导入导出:
Navicat工具的导入和导出/Navicat工具的备份和还原

  • 数据索引

索引的作用相当于图书的目录,可以根据目录中的页码快速找到所需的内容。

什么列适合建索引??
1.表的主键、外键必须有索引;
2.数据量超过30000的表应该有索引;
3.经常与其他表进行连接的表,在连接字段上应该建立索引;
4.经常出现在Where子句中的字段,特别是大表的字段,应该建立索引;
5.索引应该建在选择性高的字段上;
6.索引应该建在小字段上,对于大的文本字段甚至超长字段,不要建索引;

sql语句创建和删除索引
创建索引: 

CREATE INDEX 索引名称 ON 表名 (列名)

删除索引:

方式一:

DROP INDEX 索引名 ON 表名

方式二:  

ALTER TABLE 表名 DROP INDEX 索引名


  • 建立公司IT运营部工资数据表

需求描述:为公司建立员工工资数据库imployee_salary,在imployee_salary数据库中,建立IT_salary数据表,以保存IT 运营部员工的工资信息,如下表所示:

  •  建立数据库 imployee_salary

mysql> show databases

-> ;

+--------------------+

| Database           |

+--------------------+

| information_schema |

| auth               |

| libai              |

| mysql              |

| performance_schema |

| test               |

+--------------------+

6 rows in set (0.00 sec)

mysql> create database imployee_salary;

Query OK, 1 row affected (0.00 sec)

mysql> use imployee_salary;

Database changed

  •   建立数据库表IT_salary

mysql> create table IT_salary(岗位类别 char(20)not null,姓名 char(15)not null,年龄 int, 员工ID int not null, 学历 char(6), 年限 int, 薪资 int not null,primary key (员工ID));

Query OK, 0 rows affected (0.02 sec)

【int数字类型、char字符串类型、not null不能为空、char()指定最多字节个数、primary key()指定索引字段】

mysql> desc IT_salary;

+--------------+----------+------+-----+---------+-------+

| Field        | Type     | Null | Key | Default | Extra |

+--------------+----------+------+-----+---------+-------+

| 岗位类别     | char(20) | NO   |     | NULL    |       |

| 姓名         | char(15) | NO   |     | NULL    |       |

| 年龄         | int(11)  | YES  |     | NULL    |       |

| 员工ID       | int(11)  | NO   | PRI | NULL    |       |

| 学历         | char(6)  | YES  |     | NULL    |       |

| 年限         | int(11)  | YES  |     | NULL    |       |

| 薪资         | int(11)  | NO   |     | NULL    |       |

+--------------+----------+------+-----+---------+-------+

7 rows in set (0.01 sec)

  •  IT运营部的员工工资信息插入到IT_salary

mysql> insert into IT_salary(岗位类别,姓名,年龄,员工ID,学历,年限,薪资)values('网络工程师','孙悟空',27,011,'本科',3,4800);

Query OK, 1 row affected (0.01 sec)

mysql> insert into IT_salary(岗位类别,姓名,年龄,员工ID,学历,年限,薪资)values('windows工程师','貂蝉',19,012,'中专',2,3500);

3,'本科',8,15000);

insert into IT_salary(岗位类别,姓名,年龄,员工ID,学历,年限,薪资)values('java工程师','赵云',38,014,'本科',10,17000);

insert into IT_salary(岗位类别,姓名,年龄,员工ID,学历,年限,薪资)values('硬件驱动工程师','诸葛亮',29,015,'本科',9,16500);

Query OK, 1 row affected (0.41 sec)

mysql> insert into IT_salary(岗位类别,姓名,年龄,员工ID,学历,年限,薪资)values('linux工程师','卢布',32,013,'本科',8,15000);

Query OK, 1 row affected (0.02 sec)

mysql> insert into IT_salary(岗位类别,姓名,年龄,员工ID,学历,年限,薪资)values('java工程师','赵云',38,014,' 本科',10,17000);

Query OK, 1 row affected (0.00 sec)

mysql> insert into IT_salary(岗位类别,姓名,年龄,员工ID,学历,年限,薪资)values('硬件驱动工程师','诸葛亮',29,015,'本科',9,16500);

Query OK, 1 row affected (0.01 sec)

  • 在记事本中编辑号如下内容,复制粘贴进数据库

insert into IT_salary(岗位类别,姓名,年龄,员工ID,学历,年限,薪资)values('windows工程师','貂蝉',19,012,'中专',2,3500);

insert into IT_salary(岗位类别,姓名,年龄,员工ID,学历,年限,薪资)values('linux工程师','卢布',32,013,'本科',8,15000);

insert into IT_salary(岗位类别,姓名,年龄,员工ID,学历,年限,薪资)values('java工程师','赵云',38,014,'本科',10,17000);

insert into IT_salary(岗位类别,姓名,年龄,员工ID,学历,年限,薪资)values('硬件驱动工程师','诸葛亮',29,015,'本科',9,16500);

  • 查看核对信息

mysql> select * from IT_salary;

+-----------------------+-----------+--------+----------+--------+--------+--------+

| 岗位类别              | 姓名      | 年龄   | 员工ID   | 学历   | 年限   | 薪资   |

+-----------------------+-----------+--------+----------+--------+--------+--------+

| 网络工程师            | 孙悟空    |     27 |       11 | 本科   |      3 |   4800 |

| windows工程师         | 貂蝉      |     19 |       12 | 中专   |      2 |   3500 |

| linux工程师           | 卢布      |     32 |       13 | 本科   |      8 |  15000 |

| java工程师            | 赵云      |     38 |       14 | 本科   |     10 |  17000 |

| 硬件驱动工程师        | 诸葛亮    |     29 |       15 | 本科   |      9 |  16500 |

+-----------------------+-----------+--------+----------+--------+--------+--------+

5 rows in set (0.00 sec)

  • 用户权限设置grand
  •  设置用户权限(用户不存在的,则新建用户)

mysql> grant all on*.* to 'root'@'192.168.1.139'IDENTIFIED BY'123456';

Query OK, 0 rows affected (0.00 sec)

mysql> GRANT select ON imployee_salary.* TO 'amber'@'localhost'IDENTIFIED BY'123456';

Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec)

mysql> quit

Bye

[root@mysql ~]# mysql -uamber -p123456

mysql> select * from imployee_salary.IT_salary;

+-----------------------+-----------+--------+----------+--------+--------+--------+

| 岗位类别              | 姓名      | 年龄   | 员工ID   | 学历   | 年限   | 薪资   |

+-----------------------+-----------+--------+----------+--------+--------+--------+

| 网络工程师            | 孙悟空    |     27 |       11 | 本科   |      3 |   4800 |

| windows工程师         | 貂蝉      |     19 |       12 | 中专   |      2 |   3500 |

| linux工程师           | 卢布      |     32 |       13 | 本科   |      8 |  15000 |

| java工程师            | 赵云      |     38 |       14 | 本科   |     10 |  17000 |

| 硬件驱动工程师        | 诸葛亮    |     29 |       15 | 本科   |      9 |  16500 |

+-----------------------+-----------+--------+----------+--------+--------+--------+

5 rows in set (0.00 sec)

mysql> quit

Bye

[root@mysql ~]# mysql -uroot -p123123

mysql> grant all on*.* to 'root'@'192.168.1.138'IDENTIFIED BY'123456';【允许用户root用123456作为密码,从ip192.168.1.138的主机连接到mysql服务器】【此root只是个名字,和超级管理员root不是一个root】

Query OK, 0 rows affected (0.00 sec)

mysql> GRANT select ON imployee_salary.* TO 'yun'@'192.168.1.138'IDENTIFIED BY'123456';【允许用户yun用123456作为密码从ip192.168.1.138的主机连接到mysql服务器的imployee­_salary数据库】【用户不存在的则自动新建用户】

Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec)

mysql> exit

Bye

[root@mysql ~]# mysql -uyun -p123456

mysql> select * from imployee_salary.IT_salary;

+-----------------------+-----------+--------+----------+--------+--------+--------+

| 岗位类别              | 姓名      | 年龄   | 员工ID   | 学历   | 年限   | 薪资   |

+-----------------------+-----------+--------+----------+--------+--------+--------+

| 网络工程师            | 孙悟空    |     27 |       11 | 本科   |      3 |   4800 |

| windows工程师         | 貂蝉      |     19 |       12 | 中专   |      2 |   3500 |

| linux工程师           | 卢布      |     32 |       13 | 本科   |      8 |  15000 |

| java工程师            | 赵云      |     38 |       14 | 本科   |     10 |  17000 |

| 硬件驱动工程师        | 诸葛亮    |     29 |       15 | 本科   |      9 |  16500 |

+-----------------------+-----------+--------+----------+--------+--------+--------+

5 rows in set (0.00 sec)

mysql> quit

Bye

  • 查看用户权限

[root@mysql ~]# mysql -uyun -p123456

mysql> show grants;

+------------------------------------------------------------------------------------------------------------+

| Grants for yun@localhost                                                                                   |

+------------------------------------------------------------------------------------------------------------+

| GRANT USAGE ON *.* TO 'yun'@'localhost' IDENTIFIED BY PASSWORD '*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9' |

| GRANT SELECT ON `imployee_salary`.* TO 'yun'@'localhost'                                                   |

+------------------------------------------------------------------------------------------------------------+

2 rows in set (0.00 sec)

mysql> show grants for 'yun'@'localhost';

+------------------------------------------------------------------------------------------------------------+

| Grants for yun@localhost                                                                                   |

+------------------------------------------------------------------------------------------------------------+

| GRANT USAGE ON *.* TO 'yun'@'localhost' IDENTIFIED BY PASSWORD '*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9' |

| GRANT SELECT ON `imployee_salary`.* TO 'yun'@'localhost'                                                   |

+------------------------------------------------------------------------------------------------------------+

2 rows in set (0.00 sec)

  • 撤销用户权限

若宿主机连接报错,查看权限设置是否正确,可尝试如下命令:

【admin超级管理员的意思,administrator的缩写】

  • mysql的其他常用命令
  • 查看mysql的登录用户

方法一

mysql> select * from mysql.user;

localhost     | root  | *E56A114692FE0DE073F9A1DD68A00EEB9703F3F1

mysql         | root  | *E56A114692FE0DE073F9A1DD68A00EEB9703F3F1

127.0.0.1     | root  | *E56A114692FE0DE073F9A1DD68A00EEB9703F3F1

::1           | root  | *E56A114692FE0DE073F9A1DD68A00EEB9703F3F1

192.168.1.139 | root  | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9

localhost     | amber | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9

192.168.1.138 | root  | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9

localhost     | yun   | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9

方法二

mysql> select user,host from mysql.user;

+-------+---------------+

| user  | host          |

+-------+---------------+

| root  | 127.0.0.1     |

| root  | 192.168.1.138 |

| root  | 192.168.1.139 |

| root  | ::1           |

| amber | localhost     |

| root  | localhost     |

| yun   | localhost     |

| root  | mysql         |

+-------+---------------+

8 rows in set (0.00 sec)

mysql> select * from auth.users; 【查询auth库里的所有用户】

+-----------+--------------------------------+

| user_name | user_passwd                    |

+-----------+--------------------------------+

| zhangsan  | *E56A114692FE0DE073F9A1DD68A00 |

+-----------+--------------------------------+

1 row in set (0.00 sec)

  • 修改mysql用户名
语法:rename user '用户名'@'主机名' to  '用户名'@'主机名';

【如果不指定用户的主机(用户名@主机),则默认为所有,即:%(用户名@%)】

mysql> select user,host from mysql.user;【修改前查看mysql用户名和主机】

+-------+---------------+

| user  | host          |

+-------+---------------+

| root  | 127.0.0.1     |

| root  | 192.168.1.138 |

| root  | 192.168.1.139 |

| root  | ::1           |

| amber | localhost     |

| root  | localhost     |

| yun   | localhost     |

| root  | mysql         |

+-------+---------------+

8 rows in set (0.00 sec)

mysql> rename user'yun'@'localhost' to 'cun'@'localhost';【修改用户yun为用户cun】

Query OK, 0 rows affected (0.00 sec)

mysql> select user,host from mysql.user;【修改后,查看mysql用户名和主机】

+-------+---------------+

| user  | host          |

+-------+---------------+

| root  | 127.0.0.1     |

| root  | 192.168.1.138 |

| root  | 192.168.1.139 |

| root  | ::1           |

| amber | localhost     |

| cun   | localhost     |

| root  | localhost     |

| root  | mysql         |

+-------+---------------+

8 rows in set (0.01 s

mysql> rename user'cun'@'localhost' to 'yun'@'%';【用户cun主机为localhost的改为用户yun,主机为所有主机】

Query OK, 0 rows affected (0.00 sec)

mysql> select user,host from mysql.user;

+-------+---------------+

| user  | host          |

+-------+---------------+

| yun   | %             |

| root  | 127.0.0.1     |

| root  | 192.168.1.138 |

| root  | 192.168.1.139 |

| root  | ::1           |

| amber | localhost     |

| root  | localhost     |

| root  | mysql         |

+-------+---------------+

8 rows in set (0.00 sec)

  • 删除用户名

mysql> select user,host from mysql.user;

+-------+---------------+

| user  | host          |

+-------+---------------+

| yun   | %             |

| root  | 127.0.0.1     |

| root  | 192.168.1.138 |

| root  | 192.168.1.139 |

| root  | ::1           |

| amber | localhost     |

| root  | localhost     |

| root  | mysql         |

+-------+---------------+

8 rows in set (0.00 sec)

mysql> delete from mysql.user where user='yun';【删除用户yun】

Query OK, 1 row affected (0.00 sec)

mysql> select user,host from mysql.user;

+-------+---------------+

| user  | host          |

+-------+---------------+

| root  | 127.0.0.1     |

| root  | 192.168.1.138 |

| root  | 192.168.1.139 |

| root  | ::1           |

| amber | localhost     |

| root  | localhost     |

| root  | mysql         |

+-------+---------------+

7 rows in set (0.00 sec)

mysql> select user,host from mysql.user;【删除前】

+-------+---------------+

| user  | host          |

+-------+---------------+

| root  | 127.0.0.1     |

| root  | 192.168.1.138 |

| root  | 192.168.1.139 |

| root  | ::1           |

| amber | localhost     |

| root  | localhost     |

| root  | mysql         |

+-------+---------------+

7 rows in set (0.00 sec)

mysql> delete from mysql.user where user='root';【删除用户root,默认会把所有root用户都删除】

Query OK, 6 rows affected (0.00 sec)

mysql> select user,host from mysql.user;【删除后】

+-------+-----------+

| user  | host      |

+-------+-----------+

| amber | localhost |

+-------+-----------+

1 row in set (0.01 sec)

mysql> delete from mysql.user where user='amber';【删除最后的amber用户】

Query OK, 1 row affected (0.00 sec)

mysql> select user,host from mysql.user;【查看mysql的用户。显示为空】

Empty set (0.00 sec)

mysql> flush privileges;【更新权限】

Query OK, 0 rows affected (0.00 sec

mysql> quit

Bye

【删除所有用户后用原来的所有用户密码登录失败,意味着数据库报废】
【用其他用户yun登录后,不能查看mysql的用户】

[root@mysql ~]# mysql -uyun -p123456

mysql> select user,host from mysql.user;

ERROR 1142 (42000): SELECT command denied to user 'yun'@'localhost' for table 'user'

mysql> show databases;

+--------------------+

| Database           |

+--------------------+

| information_schema |

| imployee_salary    |

| test               |

+--------------------+

3 rows in set (0.00 sec)

  • 数据库知识补充
  1. 在数据库创建数据表的时候,字段后必须指定char(30),否则会报错
  2. Mysql数据库查看帮助命令help create
  3. 索引项最多不会超过255字符
  4. Default ‘’ 俩个单引号中间为空,是没有设置密码
  5. Primary key 代表创建索引,(指定键下不能为空,不能重名)
  6. Insert into users()括号中也可为空
  7. Password (‘12313’)括号代表加密 password后是函数变量
  8. 数据库会损坏是因为索引功能
  9. Mysql -uroot -p123123 -e ‘source  ./test.sql’【把脚本(表)写入数据库,此处也可用“”】
  10. %代表所有的主机都可以登录
  11. *.*代表  所有数据库.所有表
  12. Grep “user” 绝对路径  可以搜索该字符
  13. Char是字符集的缩写,set 重置 utf8万国语言
  14. Show databases 加“s”代表复数 所有的数据库
  15. Show  tables 看数据表
  16. Describe mysql.user;查看mysql的user表
  17. [mysql]对登录的mysql起作用
  18. Where 定位对谁作修改
  19. 命令  \G 分行显示【一直未成功】
  20. On后根范围
  • 在数据库外修改数据库里的数据

[root@mysql ~]# mysql -uroot -p123123 -e 'show databases;'

+--------------------+

| Database           |

+--------------------+

| information_schema |

| auth               |

| mysql              |

| performance_schema |

| test               |

+--------------------+

[root@mysql ~]# mysql -uroot -p123123 -e "show databases;"

+--------------------+

| Database           |

+--------------------+

| information_schema |

| auth               |

| mysql              |

| performance_schema |

| test               |

+--------------------+

[root@mysql ~]# mysql -uroot -p123123 -e "create database libai;show databases;"【libai创建成功】

+--------------------+

| Database           |

+--------------------+

| information_schema |

| auth               |

| libai              |

| mysql              |

| performance_schema |

| test               |

+--------------------+

&&修改数据库密码与修改虚拟机的root密码是一致的

  • 删除数据库的所有用户后出现的问题

yum失效,镜像不再挂载 mount /dev/sr0 /var/ftp/centos7/执行此命令挂载即可解决

数据库报废

【执行此命令后发现已经关闭】

[root@mysql ~]# /etc/init.d/mysqld stop

ERROR! MySQL server PID file could not be found!

【再次查看进程发现还有mysql进程运行】

[root@mysql ~]# netstat -anpt|grep mysql

tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      2131/mysqld

[root@mysql ~]# killall mysqld   【执行此命令杀死所有mysql进程】

[root@mysql ~]# mysqld_safe --skip-grant-tables &【进入安全模式】

[1] 11921

[root@mysql ~]# 190510 02:24:27 mysqld_safe Logging to '/usr/local/mysql/data/mysql.err'.

190510 02:24:27 mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/data

[root@mysql ~]# mysql

mysql> use mysql;

Reading table information for completion of table and column names

You can turn off this feature to get a quicker startup with -A

Database changed

mysql> insert into user set user='root',ssl_cipher='',x509_issuer='',x509_subject='';【创建一个root用户】

Query OK, 1 row affected (0.00 sec)

mysql> update user set Host='localhost',select_priv='y',

-> insert_priv='y',update_priv='y',Alter_priv='y',delete_priv='y',create_priv='y',

-> drop_priv='y',reload_priv='y',shutdown_priv='y',Process_priv='y',file_priv='y',grant_priv='y',References_priv='y',index_priv='y',

-> create_user_priv='y',show_db_priv='y',super_priv='y',create_tmp_table_priv='y',Lock_tables_priv='y',execute_priv='y',

-> repl_slave_priv='y',repl_client_priv='y',create_view_priv='y',show_view_priv='y',create_routine_priv='y',alter_routine_priv='y',

->

Event_priv='y',Trigger_priv='y',Create_tablespace_priv='y',

-> create_user_priv='y' where user='root';

Query OK, 1 row affected (0.01 sec)【设置root用户的权限,所有权限为'y',即拥有最高权限】

Rows matched: 1  Changed: 1  Warnings: 0

[root@mysql ~]# /etc/init.d/mysqld restart

Shutting down MySQL.190510 03:27:05 mysqld_safe mysqld from pid file /usr/local/mysql/data/mysql.pid ended

SUCCESS!

Starting MySQL.. SUCCESS!

[1]+  完成                  mysqld_safe --skip-grant-tables

mysql> use mysql【使用mysql数据库】

Reading table information for completion of table and column names

You can turn off this feature to get a quicker startup with -A

Database changed

mysql> update user set password=password('123123')where user='root';【修改root密码为123123】

Query OK, 1 row affected (0.00 sec)

Rows matched: 1  Changed: 1  Warnings: 0

mysql> flush privileges;【刷新用户权限】【这里也可以重启mysql】

Query OK, 0 rows affected (0.00 sec)

mysql> select * from user\G【查看所有用户的所有权限】

*************************** 1. row ***************************

Host: localhost

User: root

Password: *E56A114692FE0DE073F9A1DD68A00EEB9703F3F1

Select_priv: Y

Insert_priv: Y

[root@mysql ~]# mysql -uroot -p123123

mysql> use mysql;

Reading table information for completion of table and column names

You can turn off this feature to get a quicker startup with -A

Database changed

mysql> grant all on *.* to 'root'@'192.168.1.139' identified by '123456';【允许root用户用密码123456从192.168.1.139登录,此处的密码和用户都是随便的,默认没有的用户会自动创建,此处ip为测试端ip 也可以是本机ip,此处为了方便理解用其他主机ip,并且这个测试机也必须有mysql数据库】

Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;【更新权限】

Query OK, 0 rows affected (0.01 sec)

mysql> grant select on imployee_salary.* to 'amber'@'localhost' identified by '12345';

Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec)

【在192.168.1.139主机测试】

[root@client ~]# mysql -uroot -p123456 -h 192.168.1.138【登录192.168.1.138主机的mysql数据库】

mysql> quit

Bye

【在本机测试】

[root@mysql ~]# mysql -uamber  -p12345【登录成功】

mysql> show databases;

+--------------------+

| Database           |

+--------------------+

| information_schema |

| imployee_salary    |

| test               |

+--------------------+

3 rows in set (0.00 sec)

mysql> use mysql;【因为只授权登录imployee_salary 所以登录其他数据库都会报错】

ERROR 1044 (42000): Access denied for user 'amber'@'localhost' to database 'mysql'

mysql> use imployee_salary【登录成功】

Reading table information for completion of table and column names

You can turn off this feature to get a quicker startup with -A

Database changed

mysql> select * from IT_salary;【查看表IT_salary】

+-----------------------+-----------+--------+----------+--------+--------+--------+

| 岗位类别              | 姓名      | 年龄   | 员工ID   | 学历   | 年限   | 薪资   |

+-----------------------+-----------+--------+----------+--------+--------+--------+

| 网络工程师            | 孙悟空    |     27 |       11 | 本科   |      3 |   4800 |

| windows工程师         | 貂蝉      |     19 |       12 | 中专   |      2 |   3500 |

| linux工程师           | 卢布      |     32 |       13 | 本科   |      8 |  15000 |

| java工程师            | 赵云      |     38 |       14 | 本科   |     10 |  17000 |

| 硬件驱动工程师        | 诸葛亮    |     29 |       15 | 本科   |      9 |  16500 |

+-----------------------+-----------+--------+----------+--------+--------+--------+

5 rows in set (0.00 sec)

mysql> delete from imployee_salary.IT_salary where 姓名='吕布';【删除表中吕布失败,此账户只有读权限】

ERROR 1142 (42000): DELETE command denied to user 'amber'@'localhost' for table 'IT_salary'

  • 查看用户权限【只能查看已经拥有的用户】只能在root用户登录的mysql查看

mysql> show grants for 'root'@'192.168.1.139'\G【】

*************************** 1. row ***************************

Grants for root@192.168.1.139: GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.1.139' IDENTIFIED BY PASSWORD '*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9'

1 row in set (0.00 sec)

mysql> show grants for 'amber'@'localhost'\G

*************************** 1. row ***************************

Grants for amber@localhost: GRANT USAGE ON *.* TO 'amber'@'localhost' IDENTIFIED BY PASSWORD '*00A51F3F48415C7D4E8908980D443C29C69B60C9'

*************************** 2. row ***************************

Grants for amber@localhost: GRANT SELECT ON `imployee_salary`.* TO 'amber'@'localhost'

2 rows in set (0.00 sec)

mysql> show grants\G

*************************** 1. row ***************************

Grants for root@localhost: GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY PASSWORD '*E56A114692FE0DE073F9A1DD68A00EEB9703F3F1' WITH GRANT OPTION

*************************** 2. row ***************************

Grants for root@localhost: GRANT PROXY ON ''@'' TO 'root'@'localhost' WITH GRANT OPTION

2 rows in set (0.00 sec)

  • 撤销用户权限

mysql> revoke select on imployee_salary.* from 'amber'@'localhost';【撤销用户amber登录权限】

Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;【更新权限】

Query OK, 0 rows affected (0.00 sec)

【mysql通配符:  _: 任意但个字符, &:  任意长度的任意字符】

mysql> grant all on *.* to 'amber'@'%' identified by '1234';【允许用户amber用密码1234从任意主机登录mysql数据库】

Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec)

mysql> select user,host from user;

+-------+---------------+

| user  | host          |

+-------+---------------+

| amber | %             |

| root  | 192.168.1.139 |

| amber | localhost     |

| root  | localhost     |

| xiao  | localhost     |

+-------+---------------+

5 rows in set (0.00 sec)

【在客户机192.168.1.139测试,】

[root@localhost ~]# mysql -uamber -p12345 -h localhost【登录成功】

ERROR 1045 (28000): Access denied for user 'amber'@'localhost' (using password: YES)

[root@localhost ~]# mysql -uamber -p1234 -h 192.168.1.138

Welcome to the MariaDB monitor.  Commands end with ; or \g.

Your MySQL connection id is 12

Server version: 5.5.22-log Source distribution

Copyright (c) 2000, 2014, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MySQL [(none)]> quit

Bye

【测试:在win系统安装navicat软件用用户amber密码1234登录】

  • 【若宿主机连接报错,查看权限设置是否正确,可尝试如下命令】

mysql> grant all privileges on *.* to 'amber'@'%' identified by '1234' WITH GRANT OPTION;

mysql> flush privileges;

  • 修复root  密码 后的mysql数据库后的数据库

[root@mysql ~]# mysql -uroot -p123123

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 5

Server version: 5.5.22-log Source distribution

Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective

owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> use mysql

Reading table information for completion of table and column names

You can turn off this feature to get a quicker startup with -A

Database changed

mysql> select user,host from mysql.user;【查看mysql的数据库表,修复之后的数据库只有一个root用户】

+------+-----------+

| user | host      |

+------+-----------+

| root | localhost |

+------+-----------+

1 row in set (0.00 sec)

mysql> grant all on *.* to 'root'@'192.168.1.138' IDENTIFIED BY '123456';【之所以会报错,是因为root为超级管理员,禁止其他用户访问,需要创建其他root用户】

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

mysql> CREATE USER 'root'@'127.0.0.1' IDENTIFIED BY '123456';【创建普通用户root密码123456】

Query OK, 0 rows affected (0.00 sec)

mysql> create user 'xiao'@'localhost' identified by '123456';【创建普通用户xiao 密码123456】

Query OK, 0 rows affected (0.00 sec)

mysql> select user,host from mysql.user;【再次查看mysql的用户多了俩】

+------+-----------+

| user | host      |

+------+-----------+

| root | 127.0.0.1 |

| root | localhost |

| xiao | localhost |

+------+-----------+

3 rows in set (0.00 sec)

mysql> grant replication slave on *.*  to root@'127.0.0.1';

Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec)

mysql> grant replication slave on *.*  to 'root'@'192.168.1.139' identified by '123456';【赋予root用户用密码123456从.139ip登录mysql】

Query OK, 0 rows affected (0.01 sec)

mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec)

mysql> show tables;【查看数据库中的数据表信息】

+---------------------------+

| Tables_in_mysql           |

+---------------------------+

| columns_priv              |

| db                        |

| event                     |

| func                      |

| general_log               |

| help_category             |

| help_keyword              |

| help_relation             |

| help_topic                |

| host                      |

| ndb_binlog_index          |

| plugin                    |

| proc                      |

| procs_priv                |

| proxies_priv              |

| servers                   |

| slow_log                  |

| tables_priv               |

| time_zone                 |

| time_zone_leap_second     |

| time_zone_name            |

| time_zone_transition      |

| time_zone_transition_type |

| user                      |

+---------------------------+

24 rows in set (0.00 sec)

mysql> describe mysql.user\G 【显示数据库中数据表的结构】

*************************** 1. row ***************************

Field: Host

Type: char(60)

Null: NO

Key: PRI

Default:

Extra:

*************************** 2. row ***************************

Field: User

Type: char(16)

Null: NO

Key: PRI

Default:

Extra:

mysql> describe user\g

+------------------------+-----------------------------------+------+-----+---------+-------+

| Field                  | Type                              | Null | Key | Default | Extra |

+------------------------+-----------------------------------+------+-----+---------+-------+

| Host                   | char(60)                          | NO   | PRI |         |       |

| User                   | char(16)                          | NO   | PRI |         |       |

| Password               | char(41)                          | NO   |     |         |       |

| Select_priv            | enum('N','Y')                     | NO   |     | N       |       |

| Insert_priv            | enum('N','Y')                     | NO   |     | N       |       |

mysql> use auth

Reading table information for completion of table and column names

You can turn off this feature to get a quicker startup with -A

Database changed

mysql> desc users;

+-------------+----------+------+-----+---------+-------+

| Field       | Type     | Null | Key | Default | Extra |

+-------------+----------+------+-----+---------+-------+

| user_name   | char(20) | NO   | PRI | NULL    |       |

| user_passwd | char(30) | YES  |     |         |       |

+-------------+----------+------+-----+---------+-------+

2 rows in set (0.00 sec)

mysql> insert into users(user_name,user_passwd) values('zhang',password('123456'));【在users表的(字段user_name,字段user_passwd)中添加('zhang',调用函数password('123456'))】

Query OK, 1 row affected, 1 warning (0.00 sec)

mysql> insert into users values('li',password('123456'));【创建li 密码123456】

Query OK, 1 row affected, 1 warning (0.49 sec)

mysql> select * from users;【查看所有用户密码】

+-----------+--------------------------------+

| user_name | user_passwd                    |

+-----------+--------------------------------+

| li        | *6BB4837EB74329105EE4568DDA7DC |

| zhang     | *6BB4837EB74329105EE4568DDA7DC |

| zhangsan  | *E56A114692FE0DE073F9A1DD68A00 |

+-----------+--------------------------------+

3 rows in set (0.00 sec)

mysql> insert into users values('root',password('123456'));

Query OK, 1 row affected, 1 warning (0.38 sec)

mysql> select * from users;

+-----------+--------------------------------+

| user_name | user_passwd                    |

+-----------+--------------------------------+

| li        | *6BB4837EB74329105EE4568DDA7DC |

| root      | *6BB4837EB74329105EE4568DDA7DC |

| zhang     | *6BB4837EB74329105EE4568DDA7DC |

| zhangsan  | *E56A114692FE0DE073F9A1DD68A00 |

+-----------+--------------------------------+

4 rows in set (0.00 sec)

  • 用户权限设置

[root@mysql ~]# mysql -uroot -p123456

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

  • centos7.5 没有killall命令

安装以下包

[root@mysql ~]# yum install psmisc

【psmisc包包含三个帮助管理/proc目录的程序。安装fuser   killall   pstree和pstree.x11(到pstree的链接)   】

  • 显示数据库的表

mysql> desc user;

+------------------------+-----------------------------------+------+-----+---------+-------+

| Field                  | Type                              | Null | Key | Default | Extra |

+------------------------+-----------------------------------+------+-----+---------+-------+

| Host                   | char(60)                          | NO   | PRI |         |       |

| User                   | char(16)                          | NO   | PRI |         |       |

| Password               | char(41)                          | NO   |     |         |       |

| Select_priv            | enum('N','Y')                     | NO   |     | N       |       |

| Insert_priv            | enum('N','Y')                     | NO   |     | N       |       |

| Update_priv            | enum('N','Y')                     | NO   |     | N       |       |

| Delete_priv            | enum('N','Y')                     | NO   |     | N       |       |

| Create_priv            | enum('N','Y')                     | NO   |     | N       |       |

| Drop_priv              | enum('N','Y')                     | NO   |     | N       |       |

| Reload_priv            | enum('N','Y')                     | NO   |     | N       |       |

| Shutdown_priv          | enum('N','Y')                     | NO   |     | N       |       |

| Process_priv           | enum('N','Y')                     | NO   |     | N       |       |

| File_priv              | enum('N','Y')                     | NO   |     | N       |       |

| Grant_priv             | enum('N','Y')                     | NO   |     | N       |       |

| References_priv        | enum('N','Y')                     | NO   |     | N       |       |

| Index_priv             | enum('N','Y')                     | NO   |     | N       |       |

| Alter_priv             | enum('N','Y')                     | NO   |     | N       |       |

| Show_db_priv           | enum('N','Y')                     | NO   |     | N       |       |

| Super_priv             | enum('N','Y')                     | NO   |     | N       |       |

| Create_tmp_table_priv  | enum('N','Y')                     | NO   |     | N       |       |

| Lock_tables_priv       | enum('N','Y')                     | NO   |     | N       |       |

| Execute_priv           | enum('N','Y')                     | NO   |     | N       |       |

| Repl_slave_priv        | enum('N','Y')                     | NO   |     | N       |       |

| Repl_client_priv       | enum('N','Y')                     | NO   |     | N       |       |

| Create_view_priv       | enum('N','Y')                     | NO   |     | N       |       |

| Show_view_priv         | enum('N','Y')                     | NO   |     | N       |       |

| Create_routine_priv    | enum('N','Y')                     | NO   |     | N       |       |

| Alter_routine_priv     | enum('N','Y')                     | NO   |     | N       |       |

| Create_user_priv       | enum('N','Y')                     | NO   |     | N       |       |

| Event_priv             | enum('N','Y')                     | NO   |     | N       |       |

| Trigger_priv           | enum('N','Y')                     | NO   |     | N       |       |

| Create_tablespace_priv | enum('N','Y')                     | NO   |     | N       |       |

| ssl_type               | enum('','ANY','X509','SPECIFIED') | NO   |     |         |       |

| ssl_cipher             | blob                              | NO   |     | NULL    |       |

| x509_issuer            | blob                              | NO   |     | NULL    |       |

| x509_subject           | blob                              | NO   |     | NULL    |       |

| max_questions          | int(11) unsigned                  | NO   |     | 0       |       |

| max_updates            | int(11) unsigned                  | NO   |     | 0       |       |

| max_connections        | int(11) unsigned                  | NO   |     | 0       |       |

| max_user_connections   | int(11) unsigned                  | NO   |     | 0       |       |

| plugin                 | char(64)                          | YES  |     |         |       |

| authentication_string  | text                              | YES  |     | NULL    |       |

+------------------------+-----------------------------------+------+-----+---------+-------+

42 rows in set (0.00 sec)

  • root用户给权限失败的root的数据(修复后的数据库的数据)

*************************** 2. row ***************************

Host: localhost

User: root

Password: *E56A114692FE0DE073F9A1DD68A00EEB9703F3F1

Select_priv: Y

Insert_priv: Y

Update_priv: Y

Delete_priv: Y

Create_priv: Y

Drop_priv: Y

Reload_priv: Y

Shutdown_priv: Y

Process_priv: Y

File_priv: Y

Grant_priv: Y

References_priv: Y

Index_priv: Y

Alter_priv: Y

Show_db_priv: Y

Super_priv: Y

Create_tmp_table_priv: Y

Lock_tables_priv: Y

Execute_priv: Y

Repl_slave_priv: Y

Repl_client_priv: Y

Create_view_priv: Y

Show_view_priv: Y

Create_routine_priv: Y

Alter_routine_priv: Y

Create_user_priv: Y

Event_priv: N

Trigger_priv: N

Create_tablespace_priv: N

ssl_type:

ssl_cipher:

x509_issuer:

x509_subject:

max_questions: 0

max_updates: 0

max_connections: 0

max_user_connections: 0

plugin:

authentication_string: NULL

  •  给权限的root  192.168.1.139的数据(修复后的数据库的数据)

*************************** 1. row ***************************

Host: 192.168.1.139

User: root

Password: *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9

Select_priv: N

Insert_priv: N

Update_priv: N

Delete_priv: N

Create_priv: N

Drop_priv: N

Reload_priv: N

Shutdown_priv: N

Process_priv: N

File_priv: N

Grant_priv: N

References_priv: N

Index_priv: N

Alter_priv: N

Show_db_priv: N

Super_priv: N

Create_tmp_table_priv: N

Lock_tables_priv: N

Execute_priv: N

Repl_slave_priv: Y

Repl_client_priv: N

Create_view_priv: N

Show_view_priv: N

Create_routine_priv: N

Alter_routine_priv: N

Create_user_priv: N

Event_priv: N

Trigger_priv: N

Create_tablespace_priv: N

ssl_type:

ssl_cipher:

x509_issuer:

x509_subject:

max_questions: 0

max_updates: 0

max_connections: 0

max_user_connections: 0

plugin:

authentication_string: NULL

  • 创建的用户的数据(修复后的数据库的数据)

*************************** 3. row ***************************

Host: 127.0.0.1

User: root

Password: *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9

Select_priv: N

Insert_priv: N

Update_priv: N

Delete_priv: N

Create_priv: N

Drop_priv: N

Reload_priv: N

Shutdown_priv: N

Process_priv: N

File_priv: N

Grant_priv: N

References_priv: N

Index_priv: N

Alter_priv: N

Show_db_priv: N

Super_priv: N

Create_tmp_table_priv: N

Lock_tables_priv: N

Execute_priv: N

Repl_slave_priv: Y

Repl_client_priv: N

Create_view_priv: N

Show_view_priv: N

Create_routine_priv: N

Alter_routine_priv: N

Create_user_priv: N

Event_priv: N

Trigger_priv: N

Create_tablespace_priv: N

ssl_type:

ssl_cipher:

x509_issuer:

x509_subject:

max_questions: 0

max_updates: 0

max_connections: 0

max_user_connections: 0

plugin:

authentication_string: NULL

*************************** 4. row ***************************

Host: localhost

User: xiao

Password: *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9

Select_priv: N

Insert_priv: N

Update_priv: N

Delete_priv: N

Create_priv: N

Drop_priv: N

Reload_priv: N

Shutdown_priv: N

Process_priv: N

File_priv: N

Grant_priv: N

References_priv: N

Index_priv: N

Alter_priv: N

Show_db_priv: N

Super_priv: N

Create_tmp_table_priv: N

Lock_tables_priv: N

Execute_priv: N

Repl_slave_priv: N

Repl_client_priv: N

Create_view_priv: N

Show_view_priv: N

Create_routine_priv: N

Alter_routine_priv: N

Create_user_priv: N

Event_priv: N

Trigger_priv: N

Create_tablespace_priv: N

ssl_type:

ssl_cipher:

x509_issuer:

x509_subject:

max_questions: 0

max_updates: 0

max_connections: 0

max_user_connections: 0

plugin:

authentication_string: NULL

  • 正常mysql的数据库的数据(在下一个实验)
  • mysql 的其他常用命令

【用于显示广泛的服务器状态信息】

mysql> show status;

+------------------------------------------+-------------+

| Variable_name                            | Value       |

+------------------------------------------+-------------+

| Aborted_clients                          | 0           |

| Aborted_connects                         | 5           |

....................................................

【显示创建特定数据库或表】

mysql> help create database;

Name: 'CREATE DATABASE'

Description:

Syntax:

CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name

[create_specification] ...

create_specification:

[DEFAULT] CHARACTER SET [=] charset_name

| [DEFAULT] COLLATE [=] collation_name

CREATE DATABASE creates a database with the given name. To use this

statement, you need the CREATE privilege for the database. CREATE

SCHEMA is a synonym for CREATE DATABASE.

URL: http://dev.mysql.com/doc/refman/5.5/en/create-database.html

mysql> help create tables;

Nothing found

Please try to run 'help contents' for a list of all accessible topics

【显示授权用户的安全权限】

mysql> show grants\G

*************************** 1. row ***************************

Grants for root@localhost: GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY PASSWORD '*E56A114692FE0DE073F9A1DD68A00EEB9703F3F1' WITH GRANT OPTION

*************************** 2. row ***************************

Grants for root@localhost: GRANT PROXY ON ''@'' TO 'root'@'localhost' WITH GRANT OPTION

2 rows in set (0.00 sec)

【显示服务器错误或警告信息】

mysql> show errors;

Empty set (0.00 sec

mysql> show warnings;

Empty set (0.00 sec)

【显示当前连接用户】

mysql> select user();

+----------------+

| user()         |

+----------------+

| root@localhost |

+----------------+

1 row in set (0.00 sec)

【显示当前时间】

mysql> select now();

+---------------------+

| now()               |

+---------------------+

| 2019-05-10 10:06:47 |

+---------------------+

1 row in set (0.00 sec)

【显示当前用户及时间】

mysql> select current_user(),current_timestamp;

+----------------+---------------------+

| current_user() | current_timestamp   |

+----------------+---------------------+

| root@localhost | 2019-05-10 10:08:12 |

+----------------+---------------------+

1 row in set (0.00 sec)

【显示当前数据库】

mysql> select database();

+------------+

| database() |

+------------+

| mysql      |

+------------+

1 row in set (0.00 sec)

【显示服务器状态】

mysql> status;

--------------

mysql  Ver 14.14 Distrib 5.5.22, for Linux (x86_64) using  EditLine wrapper

Connection id:                 3

Current database:          mysql

Current user:                    root@localhost

SSL:                           Not in use

Current pager:                 stdout

Using outfile:                    ''

Using delimiter:   ;

Server version:                5.5.22-log Source distribution

Protocol version: 10

Connection:                      Localhost via UNIX socket

Server characterset:      utf8

Db     characterset:   utf8

Client characterset:       utf8

Conn.  characterset:   utf8

UNIX socket:                    /tmp/mysql.sock

Uptime:                              2 hours 4 min 17 sec

Threads: 4  Questions: 130  Slow queries: 0  Opens: 49  Flush tables: 1  Open tables: 42  Queries per second avg: 0.017

--------------

  • 【数据库的备份与恢复】

方法一:可直接备份目录  /var/local/mysql/var

方法二: 使用专用备份工具 mysqldump

备份操作

mysqldump -u 用户名 -p  [密码][选项][数据库名][表名] > /备份路径/备份文件名

常见选项:

--all-databases

--opt

[root@mysql ~]# mysqldump -u root -p  mysql user > mysql-user.sql

Enter password:123123

[root@mysql ~]# mysqldump -u root -p  --database auth > auth.sql

Enter password: 123123

[root@mysql ~]# mysqldump -u root -p  --opt --all-databases  > all-data.sql

Enter password:123123

【恢复操作】

mysql -u root -p [数据库名] < /备份路径/备份文件名

[root@mysql ~]# mysql -u root -p test < mysql-user.sql

Enter password:123123

  • MySQL查询日志文件位置

  • 查找错误日志文件所在

mysql> show variables like 'log_error';
+---------------+--------------------------+
| Variable_name | Value                    |
+---------------+--------------------------+
| log_error     | /var/log/mysql/error.log |
+---------------+--------------------------+
1 row in set (0.00 sec)

  • 查找日志文件路径

mysql> show variables like 'general_log_file';
+------------------+--------------------------------------------+
| Variable_name    | Value                                      |
+------------------+--------------------------------------------+
| general_log_file | /var/lib/mysql/iZ8vb0ywcounjc3oh3rv2jZ.log |
+------------------+--------------------------------------------+
1 row in set (0.00 sec)

  • 慢查询日志文件路径

mysql> show variables like 'slow_query_log_file';
+---------------------+-------------------------------------------------+
| Variable_name       | Value                                           |
+---------------------+-------------------------------------------------+
| slow_query_log_file | /var/lib/mysql/iZ8vb0ywcounjc3oh3rv2jZ-slow.log |
+---------------------+-------------------------------------------------+
1 row in set (0.00 sec)


以上内容结合mysql官网和博文https://blog.csdn.net/qq_38225558/article/details/82776348,博文https://www.shujukuba.com/mysql/99.html,结合书本,外加自己的理解实践整理而成!!越努力越幸运!!!

mysql数据库管理-2019整理相关推荐

  1. Python模块MySQLdb操作mysql出现2019错误:Can't initialize character set utf-8

    我使用python的MySQLdb模块实现了一个mysql client, 在测试时,出现了如下错误 Python模块MySQLdb操作mysql出现2019错误:Can't initialize c ...

  2. 【mysql学习笔记整理】

    /*mysql学习笔记整理*/ /*常用的数据库操作对象*/ #库的操作 #创建 #数据库的创建 USE mysql; CREATE DATABASE db_x; #删除 #删除数据库 DROP DA ...

  3. mysql 存储引擎 面试_搞定PHP面试 - MySQL基础知识点整理 - 存储引擎

    MySQL基础知识点整理 - 存储引擎 0. 查看 MySQL 支持的存储引擎 可以在 mysql 客户端中,使用 show engines; 命令可以查看MySQL支持的引擎: mysql> ...

  4. ubuntu中mysql怎么退出命令_如何使用Python进行MySQL数据库管理

    本节我们将学习使用Python进行MySQL数据库管理.Python有多种用于MySQL数据库管理的模块,这里使用MySQLdb模块.MySQLdb模块是MySQL数据库服务器的接口,用于向Pytho ...

  5. MySQL数据库管理(二)单机环境下MySQL Cluster的安装

    上文<MySQL数据库管理(一)MySQL Cluster集群简单介绍>对MySQL Cluster集群做了简要介绍.本文将教大家一步步搭建单机环境下的MySQL数据库集群. 一.单机环境 ...

  6. Mysql数据库(二)——mysql数据库管理

    Mysql数据库(二)--mysql数据库管理 一.常用数据类型 二.查看数据库结构 1.进入数据库 2.查看数据库的信息 3.查看数据库中表的信息 4.显示数据表的结构(字段) 三.SQL语句概述 ...

  7. window环境下mysql配置参数_Window下mysql环境配置问题整理

    Window下mysql环境配置问题整理 参考如下链接. 启动服务错误信息 管理员模式打开cmd mysqld install net start mysql MYSql服务正在启动 MYSql服务无 ...

  8. 推荐轻量级MySQL数据库管理工具 Adminer

    服务器上一直用 phpMyAdmin 管理 MySQL 数据库, 有点囊肿, 配置也麻烦, 所以换了个轻量级的 Adminer 数据库管理替换. Adminer 就一个单文件, 知道什么就轻量级了吧, ...

  9. mysql5.7的客户端软件_mysql数据库管理客户端工具|mysql数据库管理软件 v5.7.22 64位官方版 - 软件下载 - 绿茶软件园|33LC.com...

    mysql数据库管理软件是一个多线程的,结构化查询语言(SQL)数据库服务器.mysql数据库管理软件在世界上是最流行的数据库语言,很多人都选择MySQL,最大的特点就是MySQL的执行性能非常高,运 ...

最新文章

  1. 《数据安全管理办法(征求意见稿)》发布 为个人数据安全加把锁
  2. spring + mybatis
  3. 还原软件实施更安全防护机器狗
  4. mac运行linux命令,iOS:mac.app执行shell命令
  5. LeetCode题库整理【Java】—— 7整数反转
  6. 纯CSS: hover特效
  7. springboot应用启动原理(一) 将启动脚本嵌入jar
  8. Android音频系统之AudioFlinger(一)
  9. C++随机数生成器(default_random_engine)
  10. 「基因组组装」用AMOS/minimus2合并两个contig
  11. [四年前写的诗]夜有流星兩
  12. 大数据专业考研书_2019年清华大学自动化系大数据工程专业考研经验分享
  13. Django中的views
  14. 开源的视频编解码器介绍
  15. 老男孩教育教育46期 LIHAO
  16. 一级建造师资格考试报名条件(2012-05-16)
  17. 学成在线网页制作(详细)
  18. HTTP中的常用方法
  19. 塔防游戏c语言源代码,用Unity开发一款塔防游戏(一):攻击方设计
  20. 网站域名备案需要多长时间?个人经验分享

热门文章

  1. 基于标定板的手眼标定
  2. 二次实验报告:使用Packet Tracer分析应用层协议
  3. Java HotSpot(TM) 64-Bit Server VM warning:Options -Xverify:none and -noverify were deprecated in ..
  4. android V1,V2,V3,V4签名详解
  5. IIS6.0+Tomcat整合(java,C++等教程免费下载)
  6. 写了一遍垃圾的CACTI安装使用参考
  7. ML笔记1——什么是ML;回归LossFunction(LF)推导;LF与凸函数关系;梯度下降推导;范数与正则化。
  8. aspx如何获取aspx.cs中定义的变量、方法;
  9. c语言延时100us程序,编写100MS软件延时程序 汇编语言编写延时程序
  10. 数字信号与模拟信号的区别(转载)