进图数据库mysql –u root –p
输入密码后进入
查看数据库: show databases;
进入数据库:use dvwa;
查看该数据库的表:show tables;
查操作:
select * from users; 查看表中的的列
select user from users; 查看users表中user这列的信息
select * from users where user=’admin’ ;查看users表中user=admin的所有信息
增操作:
Insert into users values ('6','test','test','test','123456', '/root','2018-05-21','1')
改操作:
update users set user=’test01’ where user=’test’; 将user表中user=’test’改为user=’test01’
删操作:
delete from users where user='test01'; 删除user=’test01’行的数据
排序:默认升序,安先数字,后字母。
selecet * from users order by user; 将users表中user数据升序排序
select * from users order by user desc; 将users表中user数据降序排序
联合查询:
CREATE TABLE users1 SELECT * FROM users; 先将users表数据复制到新表users1中
select user from users union select password from users1;将users表中user字段的值和users1表中的password字段的值合并查询
常用函数:
提取部分字符:
select mid(user,1,3) from users;从users表中提取user的前三个字符:
判断执行:
select *,if(user=’admin’,’administrator’,’user’) AS role from users;在users表中,如果某一行的user值等于admin,那么添加新的一列role,并将其赋值为administrator,如果user值不等于admin,则将其赋值为user,结果如下图
截取数据库某一列字段中的一部分:
select user,substr(user,1,3) from users; 截取users表中user字段的前3个字符
返回字符串的第一个字符的ASCII码值:
select ascii('admin');
ORD( )
返回字符串str的第一个字符的ASCII码值
select ord('admin');
CHAR( )
将ASCII值转换为对应的字符,可将多个ASCII码转换为相应的字符串
select char(97);
HEX( )
将字符串转换为十六进制表示:
select hex('admin');
UNHEX( )
HEX( )函数的逆运算,将十六进制转换为字符串表示
select unhex('61646D696E');
SLEEP( )
让此SQL语句运行N秒钟(判断语句连用)
select *,if(1=2,sleep(2),sleep(3)) from users;
ExtractValue( )
对XML文档进行查询的函数,从目标XML中返回包含所查询值的字符串
创建一个新表,表的名称为x,并定义一个doc的字段,字段类型为varchar(),字段长度为150。
create table x(doc varchar(150));
insert into x values('<book><title>A guide to the SQL standard</title><author>
<initial>CJ</initial><surname>Date</surname></author></book>');
select extractvalue (doc,'/book/author/initial') from x;
USER( )
查询当前用户名和主机名;
select user();
version( )或@@version
查询当前数据库的完整版本信息
select @@version;
database( )
返回当前数据库名称
select database();
MD5( )
将字符串进行MD5加密
select md5('123456');
left( )
返回字符串最左边的N个字符
select left('admin',2);
concat( )
用于将两个字符串连接起来,形成一个字符串
select concat('hello','world');
count( )
返回符合指定条件的行一共有多少行
select count(user) from users;
floor( )
返回向下取整的数字
select floor(1.33);
rand( )
返回一个0和1之间的随机数,如果包含参数,则根据参数,生成一个固定的值,不再变化。
select rand(),rand(),rand(1),rand(1),rand(2);