Mysql 【5.0以上】
MySQL架构
如图:
information_schema库
- 在MySQL中,把information_schema看作一个信息数据库。其中保存着关于mysql服务器所维护的所有其他数据库的信息。
-
- SCHEMATA表:提供了当前mysql实例中所有数据库的信息。
- TABLES表:提供了关于数据库中表的信息(包括视图)详细表述了某个数据库中所有表的信息[需添加条件]
- COLUMNS表:提供了表中的列信息。详细表述了某张表的所有列以及每个列的信息[需添加条件]
如图:
- SCHEMA表中的SCHEMA_NAME【所有库名】
- TABLES表中的TABLE_NAME【所有库中所有表的信息】
- COLUMNS表中的COLUMN_NAME【所有库所有表的所有列的信息】
mysql库
- user表:存放数据库中所有的用户名和密码
一些sql语法
select查询语句
1、查询mysql库user表中的所有信息
select * from mysql.user;
[select表示查询;*代指所有东西;from指去什么地方查询]
2、查询user表中User这一列的信息
select User from mysql.user;
3、查询test数据库中users表中id=1的数据
select * from test.users where id=1;
4、查询test数据库中users表中address为china并且username为zhangsan的数据
select * from test.users where address='china' and username='zhangsan';
order by 排序语句
例如:
1、查询mysql库中的user表中的所有数据并按第一列排序
select * from test.users order by 1;
2、查询mysql库中的user表中的所有数据并按第二列排序
select * from test.users order by 2;
3、查询mysql库中的user表中的所有数据并按第三列排序
select * from test.users order by 3;
4、当超过所有的列数后:
select * from test.users order by 50;
用这种方法,可以在SQL注入时测试出列数
union联合查询语句
UNION 操作符用于将两个以上的SELECT语句的结果组合到一个结果集合中。
例子:
查询test数据库总users中username列的数据并查询person表中username列的数据。
select username from test.person union select person.username;
得到的结果是将两份数据中相同的部分只留下一份
若查询的类型不同,得到的结果也会在第一个列名下出现。
insert插入语句
例如:在test数据库中person表插入一条数据:username是lishi,money是100
insert into person (username,money) values ('lishi','100');
[insert into 表名 (列名1,列名2)values(即填入的值)(‘xxx’,‘xxx’)]