MySQL基础
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |
本文仅用于信息安全的学习请遵守相关法律法规严禁用于非法途径。若观众因此作出任何危害网络安全的行为后果自负与本人无关。
什么是数据库
SQL 简介
数据库结构
数据类型
数值类型
字符串类型
SQL 约束
MySQL安装百度网盘下载
新建数据、表
语法格式
数据库如何执行
联合查询语句 重点union select
例一开始我先查一下“张三”
SELECT * FROM users WHERE username='张三'
然后加上联合查询查一下“李四”union SELECT * FROM users WHERE username='李四'
SELECT * FROM users WHERE username='张三' union select * FROM users WHERE username='李四'
为啥说他是重点
因为很多网站的搜索框的后台的SQL大概都是这样SELECT * FROM users WHERE username=?
“?”问号这里就是让用户输入的内容这是node.js语言的写法如果是PHP可能最后的判断条件就是username="$name" 原理都一样
利用这个漏洞直接在输入框输入我们的联合查询/修改/删除示例如下
-- SELECT * FROM users WHERE username='$nmae' 原来的语句
-- ' union SELECT * FROM users WHERE username='李四' ' 我们的输入
-- 最后的结果
SELECT * FROM users WHERE username='' union SELECT * FROM users WHERE username='李四' ''
order by排序
简单理解就是用 order by 排序检查数据库的表有多少列数据
例
我的ORDER BY的数字是小于等于4的时候他是可以正常输入
SELECT * FROM users ORDER BY 4
如果大于4就会报错
MySQL注释符
作用注释掉不需要的字符实际操作如下如下
实际操作可以看这篇文章SQL的基本语句用法
mysql里面常用的一些函数
mysql里面常用的逻辑函数
Information_schema (一个表名MySQL所有的表都在这个表内)
利用语句查询效果
这里先贴一下我下面用来展示的数据表
需要这张表做跟着操作的可以下载导入到自己的数据库 users.sql
导入方法如下
1. 查出现在正在使用的数据库的名字和版本
select database(); # 查询当前所在的数据库名
select database(),version(); # 这是两个函数分别会返回数据库名和版本号
2. 查询正在使用的数据库的表名称
select table_name from information_schema.tables where table_schema=database();
或 查询指定数据库的所有表名称
select table_name from information_schema.tables where table_schema='my_db_01'; # my_db_01 是我要查看的数据表的数据库名称这里要改成你自己的执行结果和上面是一样的
3. 查询指定数据表的列名
如查询users这张表的所有列
select column_name from information_schema.columns where table_schema=database() and table_name='users';
# 从information_schema数据库中的columns表中提取column_name列
# table_schema 指定是哪个数据库database() 是指当前正在使用的数据库也可换成具体的数据库名称
# table_name 指定要查询的表 “users”
或 指定数据库名
select column_name from information_schema.columns where table_schema='my_db_01' and table_name='users'; # my_db_01、users 指定数据库名称和表名称执行结果和上面是一样的
4. 查看具体内容
select * from users; # “*”表示匹配所有在这里就是展示表的所有列所有内容users 是表名称
5. group_concat() 函数的使用
group_concat函数首先根据group by指定的列进行分组将同一组的列显示出来并且用分隔符分隔。由函数参数字段名决定要返回的列如:
select group_concat(id) from users;
或
select group_concat(id,username) from users;