Web安全基础-SQL MySQL

SQL简介

数据库简介

  • 什么是数据库
    用来存放数据得仓库。

  • 什么是SQL
    SQL是一种数据库查询和程序设计语言。用于存取数据以及查询、更新和管理关系数据库系统。

常见的SQL数据库有MySQL,SQL server,Oracle、Sybase、db2…不同的数据库所使用的SQL语句也不一样。

  • MySQL数据库结构
    数据库中包含表,表是由列组成,表的数据存储方式是按行存储。

列名有类型区分常见的就是 int(6),varchar(15):int为数字类型 6为字符长度 varchar为字符类型 15为字符长度

int数字类型不需要引号

varchar字符类型需要打引号

SQL语句

SELECT 语句

用于从表中选取数据。结果被存储在一个结果表中(称为结果集)。

SELECT 列名 FROM 表名
SELECT * FROM 表名

*代表所有

INSERT INTO 语句

用于向表格中插入新的行。

INSERT INTO 表名称 VALUES (1,2,....)
//这个语法的意思是在一个表名的所有列名下面都需要按顺序赋值,并根据字段类型打引号

 INSERT INTO table_name (1,2,...) VALUES (1,2,....)
  //此语法的作用是在某个表名里面的某个列名进行赋值,需要按照顺序

以上报错的意思是,数据库表创建人设置在增加其他值的时候必须要添加user_id,正确的语句如下:

insert into users (user_id,user,password) values ('6','lll','12345678');

验证是否成功

select * form users;

Delete语句

DELETE FROM 表名称 WHERE 列名称 =DELETE * FROM 表名称

==#用于删除表中的行==

操作删除users表中 user列 中得 lyl 值的这一行

执行 delete from users where user = ‘lyl’;语句,因为user列是varchar字符型,varchar字符类型需要打引号

delete from users where `user` = 'lyl';

验证是否删除成功 执行 select * from users 语句

select * from users 

Update 语句

用于修改表中的数据。

 UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值

修改users表中,user_id列 6 的值为 7

update users set user_id  = 7 where user_id  = 6;

验证是否修改成功

select * from users

Order by 语句

语法:

select 列名 from 表名 order by 列名 DESC

用于对结果集进行排序。
用于根据指定的列对结果集进行排序。
不加DESC默认按照升序对记录进行排序
加DESC则按照降序对记录排序

操作查看users表中 user_id,user,password 列值并指定user降序排序

select user_id,user,password from users order by user desc; 

order by 排序列数大于当前查询的列数时就会报错;如下:

Where 语句

有条件地从表中选取数据。

SELECT 列名称 FROM 表名称 WHERE 列 运算符 值

运算符

AND 和 OR 运算符

AND 和 OR 可在 WHERE 子语句中把两个或多个条件结合起来。

如果第一个条件和第二个条件都成立,则 AND 运算符显示一条记录。

如果第一个条件和第二个条件中只要有一个成立,则 OR 运算符显示一条记录。

举个栗子 我需要查看user_id,user,password 的列,单独查找user_id为3并且user为1337,这里就需要用到AND运算符

select user_id,user,password from users where user_id = 3 and user = 1337;

如果我需要查看user_id,user,password 的列,单独查找 user_id 为 3 或者 user 为 admin,这里就需要用到OR运算符

select user_id,user,password from users where user_id = 3 or user = 'admin';

Limit 控制输出

select * from users limit 0,2;

## 0,2 的意思是只显示两行以此类推

MySQL注释符

注释符可以替换空格

select/*123*/* from users /*user*/
/* */ 在mysql中是多行注释 但是如果里面加了! 那么后面的内容会被执行  /*!/*!*/

内联注入

select/*123*/* from/*!users*/ 
/* */ 在mysql中是多行注释 但是如果里面加了! 那么后面的内容会被执行  /*!/*!*/

单行注释符后面加换行也是可以执行的

select * from #454654654
users;

MySQL基础

01、显示数据库 show databases;
02、打开数据库 use db_name;
03、显示数据表 show tables;
04、显示表结构 describe table_name;
05、显示表中各字段信息,即表结构 show columns from table_name;
06、显示表创建过程 show create table 表名;
07、列出当前mysql的相关状态信息 status;
08、删除数据库 drop database 数据库名;
09、清空数据表 delete from table_name; truncate table
table_name;
10、删除数据表 drop table table_name
11、数据库连接 mysql –uroot -proot
12、数据库退出 exit

MySQL系统表

  • information_schema
    在 MySQL中 ,把 information_schema 看作是一个数据库,确切说是信息数据库。
    其中保存着关于 MySQL 服务器所维护的所有其他数据库的信息。如数据库名,数据
    库的表,表栏的数据类型与访问权限等。
  • SCHEMATA 表:提供了当前mysql实例中所有数据库的信息。
    show databases的结果取之此表。
  • TABLES 表:提供了关于数据库中的表的信息。详细表述了某个表属于哪个
    schema,表类型,表引擎,创建时间等信息。
    show tables from schemaname的结果取之此表。
  • COLUMNS 表:提供了表中的列信息。详细表述了某张表的所有列以及每个列的信
    息。
    show columns from schemaname.tablename的结果取之此表。

数据库连接

# 格式 mysql -u 用户名 -p 密码 -h 主机地址
mysql –uroot -proot -h 127.0.0.1

以PHPstudy为例子,开启MySQL服务,在数据库里面查看用户名和密码,然后找到这个路径(我这边是这个路径,具体看个人的情况),通过以上命令格式进行数据库连接

D:\phpstudy_pro\Extensions\MySQL5.7.26\bin

列出当前 mysql 的相关状态信息

status;

显示数据库

show databases;

打开数据库

# 格式:use 数据库名;
use mysql;

显示数据表

show tables;

显示表结构

# 格式:describe 数据表名;
describe users;
# 格式:show columns from 数据表名;
show columns from users;

显示表创建过程

# 格式:show create table 表名;
show create table users;

清空数据表

# 格式:delete from 数据表名;
delete from test01;
# 格式:truncate table 数据表名;
truncate table test01;

删除数据表

# 格式:drop table 数据表;
drop table test01;

删除数据库

# 格式:drop database 数据库名;
drop database test;

退出数据库连接

exit
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

渗透测试小白

如果您觉得满意,一分一毛也是爱

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值