备忘录

此条更新于2021-09-11

1
2
3
4

select [content] into outfile "file_name" #该命令作用将查询结果输出保存到一个文件中
LOAD_FILE()函数读取一个文件并将其内容作为字符串返回。
CVE-2012-2122漏洞

此条更新于2021-09-01

1
2
3
4
5
6
7
8
9
10
11
问题处理:当忘记Mysql数据库密码

1. vim /etc/my.cnf

2. 在最后添加一行代码:skip-grant-tables,保存并退出

3. 重启mysql服务,进入数据库,如果遇到Enter Password: 直接回车进入

4. 修改密码update mysql.user set password=password('12345') where user='root';

5. 改好了密码再弄回原样,进入配置文件,删掉这一行:skip-grant-tables,重启数据库

日常使用

常用命令

注意,这里的常用命令后面都不用加分号

1
2
3
4
show databases //列出所有数据库
show tables //列出当前数据库下的所有表
desc 表名 //查看指定表的列和数据类型
use 数据库名 //进入指定数据库

常用函数

注意,最后面要有分号表示结束

1
2
select database();    //显示当前所在的数据库
select user(); //查看当前用户

sql基础-查询

这是sql的查询语句,属于最常用的一种

1
2
3
4
//语法格式
select 列名称 from 表名称; //表示我要查看哪个表里面的哪一列的内容
select * from 表名称; //表示查看指定表的所有列
例:select user,password from mysql.user; //表示我要查看mysql库里面user表的用户名和密码

注意:sql的每一句都要在其后面加上;表示命令结束

效果图奉上:

sql基础-删除

-drop

删除的方法有两种语句,一个是drop,一个是delete from。两个的区别就是前者比较狠,删东西很干净,后者反之。在这我们先讲drop,后讲delete from

1
2
3
4
//语法格式
drop database 数据库名; //删除数据库以及该数据库下的所有内容
drop table 表名; //删除表以及该表以下的所有内容
例:drop database test; //删除test数据库

-delete from

1
2
3
//语法格式
delete from 表名称 where 列名称 = 值;
例:delete from mysql.user where password='abc'; //删除密码是'abc'的用户

sql基础-增添用户

-create

增添用户的方式有两种,一种是创建用户的后的密码自动进行md5加密,另一种则不自动进行md5加密。我们先说第一种

1
2
3
4
//语法格式
create user 用户名 identified by '密码';
例:create user user1 identified by '123456';

这种方式也可以用来创建数据库/表

1
2
3
//语法格式
create database 数据库名;
例:create database demo

1
2
3
4
//语法格式
create table 表名(
列名称1 数据类型);
例:create table fiction( story varchar(5) );

附:sql常用数据类型表

-insert

1
2
3
//语法格式
insert into table_name (列1, 列2,...) value(值1, 值2,....);
例:insert into user(user,password) value('user1','123456'); //插入一个user1用户到user

sql基础-改

如果你想改变表中的数据,那就得用到update语句,这是最常用的方式

1
2
3
4
//语法格式
update 表名 set 列名=新值 where 列名=某值;
update 表名 set 列名=新值,列名=新值 where 列名=某值; //如果你想修改某一列的多个值
例:update mysql.user set password='abcde' where user='user1'; //将user1的密码改为'abcde'

拓展

-where

where后面跟条件,表示如果该sql子句符合where后面的条件,执行该子句;如果不符合where后面的条件,则忽略。

-and

and通常用于where跟多个条件。如果第一个条件和第二个条件都成立,则and运算符显示一条记录。

1
例:数据库内存在多个同名user1,而我只想更改密码为abcde的用户的host

-or

or与上面的and差不多,or表示的是如果第一个条件和第二个条件中只要有一个成立,则or运算符则or运算符显示一条记录。

1
例:我想将数据库中用户名为user1,或者主机为localhost的密码都更改为456789