User-Profile-Image
hankin
  • 5
请到[后台->外观->菜单]中设置菜单。
  • 分类
    • 靶机渗透
    • 计算机小技巧
    • 漏洞复现
    • 未分类
    • 数据结构
    • 内网渗透
    • 代码审计
    • XSS
    • WEB安全漏洞学习
    • Web
    • python
    • PHP
    • NodeJS
    • MYSQL
    • Misc
    • JavaScript
    • Docker
    • CTF相关知识点
    • CTFWP
    • Crypto
    • Cobalt Strike
  • 页面
  • 友链
    • 三哥的博客
    • Root师傅的博客
    • EDS师傅的博客
    • 天正哥的博客
    • 天尘翼师傅的博客
    • 熵增师傅的github
    • 信仰的博客
    • Jadore的博客
Help?

Please contact us on our email for need any support

Support
    首页   ›   MYSQL   ›   正文
MYSQL

MYSQL学习笔记

2020-01-21 21:25:23
177  0 0

想学好sql注入,我想MYSQL至少一定要学好,因为无论是打CTF还是日常,这部分的知识扩展总是让我有捉襟见肘的感觉

MYSQL常见命令

查看当前所有的数据库show databases;
2.打开指定的库
use 库名
3.查看当前库的所有表 show tables;
4.查看其它库的所有表 show tables from 库名;
5.创建表
create table表名( 列名列类型,列名列类型,..);
6.查看表结构desc表名;

7.查看服务器的版本方式一:

登录到mysql服务端

select version();

方式二:没有登录到mysq1服务端

mysql –version或mysql –V

MySQL的语法规范
1.不区分大小写,但建议关键字大写,表名、列名小写
2.每条命令最好用分号结尾也可以\g
3.每条命令根据需要,可以进行缩进或换行
4.注释
单行注释:#注释文字
单行注释:– 注释文字
多行注释:/* 注释文字 */

Contents

  • 1 进阶1:基础查询
  • 2 1.查询表中的单个字段
  • 3 2.查询表中的多个字段
  • 4 3.查询表中的所有字段
  • 5 4.查询常量值
  • 6 5.查询表达式
  • 7 6.查询函数
  • 8 7.起别名
  • 9 方式一:使用as
  • 10 案例:查询salary,显示结果为out put
  • 11 8.去重
  • 12 案例:查询员工表中涉及到的所有的部门编号
  • 13 案例:查询员工名和姓连接成一个字段,并显示为姓名
  • 14 练习:显示出表employees的全部列,各个列之间用逗号连接,列头显示成OUT_PUT

进阶1:基础查询

1/*语法:
select 查询列表 from表名;
特点:
1、查询列表可以是:表中的字段、常量值、表达式、函数
2、查询的结果是一个虚拟的表格

1.查询表中的单个字段

SELECT last_name FROM employees;

2.查询表中的多个字段

SELECT last_name,salary,email FROM employees;
SELECT last_name,last_name FROM employees;(是着重号,为了区分关键字和字段,字段加)
个人所想可尝试绕过某些限制SELECT flag from flag;

3.查询表中的所有字段

SELECT * FROM employees;

4.查询常量值

SELECT 100;
SELECT ‘john’;(不区分字符和字符串,都用”引上)

5.查询表达式

SELECT 100%98;

6.查询函数

SELECT VERSION();

7.起别名

/*
①便于理解
②如果要查询的字段有重名的情况,使用别名可以区分开来
*/

方式一:使用as

SELECT 100%98 AS 结果;
SELECT last_name As 姓,first_name As 名 FROM employees,
方式二:使用空格
SELECT last_name 姓,first_name 名 FROM employees;

案例:查询salary,显示结果为out put

SELECT salary AS “out put” FROM employees;(如果不给out put加上引号,就会产生歧义,与关键字out冲突,引起报错)

8.去重

案例:查询员工表中涉及到的所有的部门编号

DISTINCT关键字,将相同的去掉,保留一个

SELECT DISTINCT department_id FROM employees;

java中的+号:
①运算符,两个操作数都为数值型
②连接符,只要有一个操作数为字符串
mysq1中的+号:
仅仅只有一个功能:运算符
select 100+90;两个操作数都为数值型,则做加法运算–190
select ‘123’+90;只要其中一方为字符型,试图将字符型数值转换成数值型如果转换成功,则继续做加法运算–213
select ‘john’+90;如果转换失败,则将字符型数值转换成0 –90
select ‘1john’+90; –91
select null+10;只要其中一方为null,则结果肯定为null
mysql的加法运算同php的弱类型一样(可以看下php的弱类型加减)
*/

案例:查询员工名和姓连接成一个字段,并显示为姓名

CONCAT起到拼接的作用,mysql中的拼接查询不用+
SELECT CONCAT(‘a’,’b’,’c’)As 结果;
SELECT CONCAT(1ast_name,first_name)As 姓名 FROM employees;

练习:显示出表employees的全部列,各个列之间用逗号连接,列头显示成OUT_PUT

SELECT IENULL(commission_pct,0)As 奖金率,
commission_pct
FROM
employees;
SELECT CONCAT(first_name,’,’,last_name,',',job_id,’,’,IENULL(commission_pct,0))As out_put FROM employees;

因为commission_pct字段中包含null值,所以我们要用IFNULL进行一个判断筛选,不然返回的值因为NULL相加将都为NULL

评论 (0)

点击这里取消回复。

欢迎您 游客  

近期文章
  • 记一次Docker问题排错
  • 免杀钓鱼XLSM
  • 彻底理解Kerberos认证
  • 免杀QuasarRAT
  • 密码保护:python反序列化免杀上线CS
近期评论
    文章归档
    • 2021年4月
    • 2021年3月
    • 2021年2月
    • 2021年1月
    • 2020年12月
    • 2020年11月
    • 2020年9月
    • 2020年7月
    • 2020年6月
    • 2020年5月
    • 2020年4月
    • 2020年3月
    • 2020年2月
    • 2020年1月
    分类目录
    • Cobalt Strike
    • Crypto
    • CTFWP
    • CTF相关知识点
    • Docker
    • JavaScript
    • Misc
    • MYSQL
    • NodeJS
    • PHP
    • python
    • Web
    • WEB安全漏洞学习
    • XSS
    • 代码审计
    • 内网渗透
    • 数据结构
    • 未分类
    • 漏洞复现
    • 计算机小技巧
    • 靶机渗透
    功能
    • 登录
    • 条目feed
    • 评论feed
    • WordPress.org
    分类目录
    Copyright © 2021 网站备案号: 蒙ICP备20000552号-1
    smarty_hankin 主题. Designed by hankin
    主页
    页面
    博主
    purplet 管理员
    努力并有所方向
    170 文章 0 评论 50932 浏览
    测试
    测试