大家好啊!我是小菜鸟,一个想学渗透的小白。有志同道合的小伙伴就快加入我吧!欢迎大家指正错误的地方。记得三连鼓励哦!
我认为数据库的查询是语句是很重要的,这部分学的好对于后面的SQL注入特别有利。
这里以MySQL为例子,先来张图看看数据库的结构。
数据库里有个特殊的数据库包含了所有的数据库名:information_schema
在information_schema里有一个特殊的表包含了所有表名:tables;
在information_schema里有一个特殊的表包含了所有字段名:columns;
MySQL查询语法
MySQL数据库使用SELECT语句来查询数据。
语法
SELECT column_name,column_name FROM table_name [WHERE Clause][LIMIT N][ OFFSET M]
- MySQL查询可以使用一个或者多个表,表与表之间需要用逗号(,)分割开,并且需要使用WHERE语句设置查询条件;
- SELECT可以读取一条或多条记录;
- 星号(*)表示SELECT语句会返回数据表的所有字段;
- WHERE语句是用来设置查询条件的;
- LIMIT用于限制返回的数据条数。
- OFFSET用于指定SELECT语句开始查询数据时的偏移量,默认值为0。
联合查询:union select :可以同时查询多个语句;
MySQL常用函数:
1.system_user():系统用户
2.user() 用户名
3.current_user 当前用户名
4.session_user() 连接数据库的用户名
5.database() 数据库名
6.version():MySQL数据库版本
7.@@datadir 读取数据库路径
8.@@basedir MySQL安装路径
9.@@version_complie_os 操作系统
10.select load_file<'c:/123.txt'>;#读取123.txt中的信息
例如:查询当前数据库,数据库版本,当前时间。
select database(),version(),now();
SQL注释
单行注释:# 我是小菜鸟
多行注释:/*我是小菜鸟*/
数据的增删改查:
创建/删除数据库:create/drop database 数据库名;
增:
新增一条数据
insert into 表名 values(全部列的值,用”,“分割);
insert into 表名 (字段1, 字段2) values (值1, 值2);
新增多行数据
insert into 表名 values(全部列的值),(全部列的值)....;
insert into 表名 (字段1, 字段2) values (值1, 值2),(值1, 值2),(值1, 值2)....;
删:
delete from 表名 where 条件;
truncate 表名;#清除数据(删掉全表)
改:
update 表名 set 列1=值1,列2=值2,...where 条件;
查:
select * from 表名;
select * from 表名 where 条件;