sql数据库

MySQL_SQL语句的加载顺序

送分小仙女□ 提交于 2020-02-02 05:46:36
1.引入 我们知道可以通过SQL语句操作这一个MySQL数据库。但是呢,当一条SQL语句执行的时候它是怎么样被加载的?下面我们一起来看一下SQL的加载顺序。 2.SQL的加载顺序。 (1).程序员编写的SQL语句 select distinct <select_list> from <left_table> <join_type> join <right_table> on <join_condition> where <where_condition> group by <group_by_list> having <having_condition> order by <order_by_condition> limit <limit_number> 那么,程序员编写的SQL的执行顺序无非就是按照我们的SQL编写习惯由上到下的执行(人认为的执行)。 (2).MySQL执行SQL语句的顺序 from <left_table> on <join_condition> <join_type> join <right_table> where <where_condition> group by <group_by_list> having <having_condition> select distinct <select_list> order by <order_by

【Python】 MySQLdb的安装与使用

心已入冬 提交于 2020-02-02 05:28:08
MySQLdb   MySQLdb是一款较为底层的,python连接mysql用的模块。和更加高级的,提供ORM的模块不同,MySQLdb主要还是聚焦于如何和数据库进行连接和进行基本的操作,操作的体现形式主要还是进行SQL语句的执行。 ■  安装   在Linux下 pip install MySQL-python   如果安装之后仍不能正常运行,尝试用yum install MySQL-python,因为这个模块需要一些第三方程序来运行的。   如果是在windows环境下安装的话那么可以直接下载一个安装程序来安装已经编译好的模块。比如去【http://www.codegood.com/downloads】下载。 ■  基本使用   MySQLdb提供了connect方法来建立一个与数据库的连接,调用这个对象的close方法来关闭一个连接。通过这个连接可以创建出一个游标对象,通过游标对象来进行数据的增删查改。 import MySQLdb db = MySQLdb.connect(host='localhost',user='weiyz',passwd='123456',db='test_DB',charset='utf-8') cursor = db.cursor() #创建一个游标对象 cursor.excute("use test_table;show tables;")

python操作mysql数据库

只谈情不闲聊 提交于 2020-02-02 04:23:49
http://www.runoob.com/python/python-mysql.html Python 标准数据库接口为 Python DB-API,Python DB-API为开发人员提供了数据库应用编程接口。 Python 数据库接口支持非常多的数据库,你可以选择适合你项目的数据库: GadFly mSQL MySQL PostgreSQL Microsoft SQL Server 2000 Informix Interbase Oracle Sybase 你可以访问 Python数据库接口及API 查看详细的支持数据库列表。 不同的数据库你需要下载不同的DB API模块,例如你需要访问Oracle数据库和Mysql数据,你需要下载Oracle和MySQL数据库模块。 DB-API 是一个规范. 它定义了一系列必须的对象和数据库存取方式, 以便为各种各样的底层数据库系统和多种多样的数据库接口程序提供一致的访问接口 。 Python的DB-API,为大多数的数据库实现了接口,使用它连接各数据库后,就可以用相同的方式操作各数据库。 Python DB-API使用流程: 引入 API 模块。 获取与数据库的连接。 执行SQL语句和存储过程。 关闭数据库连接。 什么是MySQLdb? MySQLdb 是用于Python链接Mysql数据库的接口,它实现了 Python 数据库

python操作mysql数据库

喜夏-厌秋 提交于 2020-02-02 04:22:27
Python 标准数据库接口为 Python DB-API,Python DB-API为开发人员提供了数据库应用编程接口。 Python 数据库接口支持非常多的数据库,你可以选择适合你项目的数据库: GadFly mSQL MySQL PostgreSQL Microsoft SQL Server 2000 Informix Interbase Oracle Sybase 你可以访问 Python数据库接口及API 查看详细的支持数据库列表。 不同的数据库你需要下载不同的DB API模块,例如你需要访问Oracle数据库和Mysql数据,你需要下载Oracle和MySQL数据库模块。 DB-API 是一个规范. 它定义了一系列必须的对象和数据库存取方式, 以便为各种各样的底层数据库系统和多种多样的数据库接口程序提供一致的访问接口 。 Python的DB-API,为大多数的数据库实现了接口,使用它连接各数据库后,就可以用相同的方式操作各数据库。 Python DB-API使用流程: 引入 API 模块。 获取与数据库的连接。 执行SQL语句和存储过程。 关闭数据库连接。 什么是MySQLdb? MySQLdb 是用于Python链接Mysql数据库的接口,它实现了 Python 数据库 API 规范 V2.0,基于 MySQL C API 上建立的。 如何安装MySQLdb?

Python3 MySQL 数据库连接

杀马特。学长 韩版系。学妹 提交于 2020-02-02 04:15:31
什么是 PyMySQL? PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,Python2中则使用mysqldb。 PyMySQL 遵循 Python 数据库 API v2.0 规范,并包含了 pure-Python MySQL 客户端库。 PyMySQL 安装 在使用 PyMySQL 之前,我们需要确保 PyMySQL 已安装。 PyMySQL 下载地址:https://github.com/PyMySQL/PyMySQL。 如果还未安装,我们可以使用以下命令安装最新版的 PyMySQL: $ pip install PyMySQL 如果你的系统不支持 pip 命令,可以使用以下方式安装: 1、使用 git 命令下载安装包安装(你也可以手动下载): $ git clone https://github.com/PyMySQL/PyMySQL $ cd PyMySQL/ $ python3 setup.py install 2、如果需要制定版本号,可以使用 curl 命令来安装: $ # X.X 为 PyMySQL 的版本号 $ curl -L https://github.com/PyMySQL/PyMySQL/tarball/pymysql-X.X | tar xz $ cd PyMySQL* $ python3 setup.py

Web安全-SQL注入:MySQL注入天书(5-6) Blind Injection

坚强是说给别人听的谎言 提交于 2020-02-02 03:41:35
文章目录 内容 布尔型盲注########## 注入点判断 撞数据库版本 撞数据库名 使用sqlmap做布尔型盲注的猜解 内容 MySQL注入天书 Less5 - Less6 布尔型盲注########## 从注入点判断到用 ORDER BY 判断出列数都和前面的一样 只是想用 UNION SELECT 时发现页面并不回显数据库中的信息 而只是根据一个布尔值回显 You are in... 或者什么都不显示 这种类型的注入称为布尔型盲注 Boolean Based Blind Injection 打个比方 Error Based型注入像一个傻白甜 你问她:你现在的用户是谁啊? 她就会告诉你:是root Boolean Based型盲注就是单纯的傻,没有白甜 你问她:你现在的用户是谁啊? 她就不说话 那你只能问:你现在的用户是root嘛? 她会回答是或不是 注入点判断 单引号判断法 所以构造payload如下 ?id = 1 ' AND your_payload % 23 id需为合法id,这样做AND运算才可判断出payload的布尔值 撞数据库版本 截取version的前三个字符,判断是否等于5.6或5.7等等等等 返回Boolean值,与id的选择结果作AND 根据最终是否有回显判断payload的布尔值 这样就知道数据库版本为5.7了

SQL查询中关于group by 子句的思考

时光怂恿深爱的人放手 提交于 2020-02-02 03:17:03
SQL查询中关于group by 子句的思考 问题的提出 问题的回答 group by子句回顾 发现原问题 回答 小结 问题的提出 时间:2020/2/1 事件:复习数据库 在复习的过程中,我主要是参考中国人民大学信息学院的数据库教程。 教程是实际上课的录像,课程内容的讲解同其他教程区别不大,精髓在于课上老师提出的思考问题。 在第三章数据查询部分,课上老师提出关于group by 语句的问题。 原问题是:出现在group by 语句中的列名一定要出现在select中吗? 关于这个问题,不知道读者是否有想过,如果没想过可以借此机会,现在自主思考一下。 下面将给出问题的回答。 问题的回答 group by子句回顾 GROUP BY子句将查询结果按某一列或多列的值分组,值相等的为一组。 解释一下,想象有5门课程,每门课程都有多个学生。那么我想知道各个课程及相应的选课人数。 在数据库中有一张选课表SC(Sno,Cno,score),我想要知道课程的选课人数,我需要统计总数。做统计之前,我还要把选了同一门课程的学生放到一起。这个统计之前做的工作就是分组。 查询语句: SEKLCT Cno,COUNT(Sno) FROM SC GROUP BY Cno; 解析: 该语句对查询结果按Cno的值分组,所有具有相同Cno值的元组放在一起作为一组成员,然后对每一组作用聚集函数COUNT进行统计

【web安全】sql注入之盲注靶场实战

浪子不回头ぞ 提交于 2020-02-02 03:08:28
第一题 打开靶场,输入id参数 页面显示内容,然后直接输入 ?id=1' and 666=666 -- yuyu 页面显示正常 然后输入 ?id=1' and 666=888 -- yuyu 发现页面不正常 但是没有报错,猜测存在盲注 然后就直接查一下数据库的名字的长度,输入 ?id=1' and length((select database()))>10 -- yuyu 发现页面还是显示不正常 就猜测数据库的名字长度少于或等于10,然后继续猜,输入 ?id=1' and length((select database()))>5 -- yuyu 发现页面显示正常了 就猜测数据库的名字大于5,少于或等于10,然后就继续猜,输入 ?id=1' and length((select database()))>8 -- yuyu 发现页面不正常 就继续猜 ?id=1' and length((select database()))>7 -- yuyu 页面正常 然后继续猜 ?id=1' and length((select database()))>9 -- yuyu 猜到大于7,不大于8和9 就试试等于8 ?id=1' and length((select database()))=8 -- yuyu 发现页面正确 就猜到数据库名字长度是8

sql注入总结

那年仲夏 提交于 2020-02-01 22:14:47
sql注入定义 就是通过把sql命令插入到web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行的sql命令的目的。 sql注入分类 联合查询 通过执行等同于将一个表追加到另一个表的操作来组合两个表的查询 首先我们先来了解一下mysql的系统函数 user ( ) : 当前使用者的用户名 database ( ) : 当前数据库名 version ( ) : 数据库的版本 datadir : 读取数据库的绝对路径 @@vasedir : mysql安装路径 @@version_compile_os : 操作系统 concat ( ) : 连接一个或者多个字符串 group_concat ( ) : 连接一个组的所有字符串,并以逗号分隔每一条数据 然后再来了解下union UNION 用于合并两个或多个 SELECT 语句的结果集,并消去表中任何重复行。 UNION 内部的 SELECT 语句必须拥有相同数量的列,列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同.默认地, UNION 操作符选取不同的值。如果允许重复的值,请使用 UNION ALL 。当 ALL 随 UNION 一起使用时(即 UNION ALL ),不消除重复行。 mysql 5.0版本以后提供了information.schema表,表中记录了数据库中所有的库、表

SQL 2017——新功能

 ̄綄美尐妖づ 提交于 2020-02-01 19:54:46
目录 背景 介绍 identity_cache 自适应查询处理的改进 自动调整 图数据库 始终可用(跨数据库访问) DTA的改进 新的字符串成员(函数) SQL 2017中的SSRS(Reporting Services)新增功能 SQL 2017中SSIS(集成服务)的新增功能 SQL 2017中的SSAS(Analysis Services)新增功能 机器学习 Linux支援 背景 SQL Server 2017 (一般可用性版本)于 2017 年 10 月发布(真的吗?我们只是想了解 SQL 2016 的功能,好吧,开个玩笑 :) ) SQL 2017 分部分发布,其第一部分即 SQL 2017 CTP 1.0 ( SQL 版本 14.0.1.246 )于 2016 年 11 月发布(如何在 2016 年发布 2017 版本?)。到目前为止, SQL 2017 推出了 10 个发行版,当前发行版是 SQL 2017 Release GA ( SQL 版本 14.0.1000.169 )( 请 参见 此处 ),以获取 2017 年 10 月可用的版本。 ( ** 有关 SQL 2016 的新增功能,请参见此处。 ) 介绍 此版本的 SQL 主要连接到 Linux ,并将 SQL 的功能带到 Linux 。简而言之,现在您可以在 Linux 上安装 SQL 2017