MySQL语句的拓展
UPDATE语句可以替换某个字段中的某个字符
UPDATE table_name SET field=REPLACE(field, 'old-string',
'new-string')
[WHERE Clause]
eg:
以下实例将更新 runoob_id 为 3 的runoob_title 字段值的 “C++” 替换为 “Python”:
UPDATE runoob_tbl SET runoob_title = REPLACE(runoob_title,
'C++', 'Python') where
runoob_id = 3;
INSERT INTO语句可以插入多条数据
INSERT INTO table_name (field1, field2,...fieldN)
VALUES
(valueA1,valueA2,...valueAN),
(valueB1,valueB2,...valueBN),
(valueC1,valueC2,...valueCN)......;
SELECT语句与LIMIT,OFFSET参数
select _column,_column from _table [where Clause] [limit N][offset M]
select * : 返回所有记录
limit N : 返回 N 条记录
offset M : 跳过 M 条记录, 默认 M=0, 单独使用似乎不起作用
limit N,M : 相当于 limit M offset N , 从第 N 条记录开始, 返回 M 条记录
LIKE语句可以实现模糊查询
'%a' //以a结尾的数据
'a%' //以a开头的数据
'%a%' //含有a的数据
'_a_' //三位且中间字母是a的
'_a' //两位且结尾字母是a的
'a_' //两位且开头字母是a的
UNION语句用于连接两个以上的 SELECT 语句的结果组合到一个结果集合中。(且会删除重复的数据)
SELECT expression1, expression2, ... expression_n
FROM tables
[WHERE conditions]
UNION [ALL | DISTINCT]
SELECT expression1, expression2, ... expression_n
FROM tables
[WHERE conditions];
expression1, expression2, … expression_n: 要检索的列。
tables: 要检索的数据表。
WHERE conditions: 可选, 检索条件。
DISTINCT: 可选,删除结果集中重复的数据。默认情况下 UNION 操作符已经删除了重复数据,所以 DISTINCT 修饰符对结果没啥影响。
ALL: 可选,返回所有结果集,包含重复数据。
要想返回两个表中的重复值,那么得用UNION ALL
综上:
UNION 语句:用于将不同表中相同列中查询的数据展示出来;(不包括重复数据)
UNION ALL 语句:用于将不同表中相同列中查询的数据展示出来;(包括重复数据)
形式如下:
SELECT 列名称 FROM 表名称
UNION
SELECT 列名称 FROM 表名称
ORDER BY 列名称;
SELECT 列名称 FROM 表名称
UNION ALL
SELECT 列名称 FROM 表名称 ORDER BY 列名称;
ALTER TABLE语句用来修改数据表名或者修改数据表字段
例如数据表内容为:
+-------+---------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| i | int(11) | YES | | NULL | |
| c | char(1) | YES | | NULL | |
+-------+---------+------+-----+---------+-------+
删除,添加或修改表字段
删除数据表中的i字段(如果数据表中只剩一个字段那么无法使用DROP删除字段)
ALTER TABLE testalter_tbl DROP i;
在数据表中添加 i 字段,并定义数据类型
ALTER TABLE testalter_tbl ADD i INT;
(执行以上命令后,i 字段会自动添加到数据表字段的末尾。)
+-------+---------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| c | char(1) | YES | | NULL | |
| i | int(11) | YES | | NULL | |
+-------+---------+------+-----+---------+-------+
如果需要指定新增字段的位置,可以使用MySQL提供的关键字 FIRST (设定位第一列), AFTER 字段名(设定位于某个字段之后)
所以如果你想重置数据表字段的位置就需要先使用 DROP 删除字段然后使用 ADD 来添加字段并设置位置。
如果需要修改字段类型及名称, 你可以在ALTER命令中使用 MODIFY 或 CHANGE 子句
例如,把字段 c 的类型从 CHAR(1) 改为 CHAR(10),可以执行以下命令:
ALTER TABLE testalter_tbl MODIFY c CHAR(10);
使用 CHANGE 子句, 语法有很大的不同。 在 CHANGE 关键字之后,紧跟着的是你要修改的字段名,然后指定新字段名及类型。例如,
ALTER TABLE testalter_tbl CHANGE j j INT;
修改表名
可以在 ALTER TABLE 语句中使用 RENAME 子句来实现。
尝试以下实例将数据表 testalter_tbl 重命名为 alter_tbl:
ALTER TABLE testalter_tbl RENAME TO alter_tbl;
SELECT … INTO OUTFILE 语句用来导出数据
以下实例中我们将数据表 runoob_tbl 数据导出到 /tmp/runoob.txt 文件中:
SELECT * FROM runoob_tbl
-> INTO OUTFILE '/tmp/runoob.txt';
LOAD DATA INFILE语句来插入数据
以下实例中将从当前目录中读取文件 dump.txt ,将该文件中的数据插入到当前数据库的 mytbl 表中。
LOAD DATA LOCAL INFILE 'dump.txt' INTO TABLE mytbl;
以上内容摘自菜鸟教程
sqli-labs环境配置
sqli-labs其实就是学习SQL注入的靶场,配置这个靶场的环境其实很简单,只要你已经配置好了MySQL和PHP环境(我前文有述)
1.首先你需要下载靶场
sqli-labs下载
提取码:rk9w
2.将下载好的文件解压到前文说的phpstudy的安装目录的WWW下
3.然后打开sqli-labs-master的sql-connections文件夹,更改里面db-creds文件的配置,把dbpass变量更改为你数据库的密码(默认是root)
4.然后在浏览器输出127.0.0.1/sqli-labs-master就可以进入靶场了(前提是开了MySQL和Apache)
5.下图是靶场,然后点击重置数据库。
会出现下面图所示
这样你的数据库也创建成功了,靶场环境也配置好啦!
下载内容参考自:https://www.cnblogs.com/peterpan0707007/p/7501575.html