sql练习

练习-商品表的查询

匆匆过客 提交于 2020-01-28 08:58:46
@Software: PyCharm``` ‘’’ 输入1-查询所有商品 输入2-所有的商品种类 输入3-查询所有的品牌 输入4-退出 ‘’’ from pymysql import * class Jd(object): def __init__(self): # 连接数据库 self.conn = connect(host='127.0.0.1', port=3306, user='root', passwd='root', db='jd', charset='utf8') # 获取游标 self.cursor = self.conn.cursor() def __del__(self): self.cursor.close() self.conn.close() # 静态方法 不需要self参数 @staticmethod def print_nemu(): print('--jd shop--') print('1-查询所有商品') print('2-所有的商品种类') print('3-查询所有的品牌') print('4-退出') num = input('请输入功能对应的序号:') return num def execute_sql(self,sql): # 执行sql self.cursor.execute(sql) # 获取结果 result = self

ylb: SQL表的高级查询-子查询

五迷三道 提交于 2020-01-25 03:40:08
ylbtech-SQL Server: SQL Server- SQL表的高级查询-子查询 SQL Server 表的高级查询-子查询。 1,ylb:表的高级查询-子查询 返回顶部 --================================ -- ylb:表的高级查询-子查询 -- pubs库的练习 -- 12/12/2011 --================================ use pubs go select * from authors select * from titleauthor select * from titles select * from publishers select * from stores go --1. 查找和出版商同一州的作者姓名。 select * from authors a where state in(select state from publishers where state=a.state) go select * from authors a where exists(select * from publishers where state=a.state) go --2. 查找和商店同一州的作者姓名 select * from authors a where state in(select

SQL server 上机练习题

我们两清 提交于 2020-01-24 13:47:39
首先创建一个数据库,里面有 登录表 学生表 课程表 选课表 成绩表 1、 查询Student表中的所有记录的Sname、Ssex和Class列。 2、 查询教师所有的单位即不重复的Depart列。 3、 查询Student表的所有记录。 4、 查询Score表中成绩在60到80之间的所有记录。 5、 查询Score表中成绩为85,86或88的记录。 6、 查询Student表中“95031”班或性别为“女”的同学记录。 7、 以Class降序查询Student表的所有记录。 8、 以Cno升序、Degree降序查询Score表的所有记录。 9、 查询“95031”班的学生人数。 10、查询Score表中的最高分的学生学号和课程号。 11、查询‘3-105’号课程的平均分。 12、查询Score表中至少有5名学生选修的并以3开头的课程的平均分数。 13、查询最低分大于70,最高分小于90的Sno列。 14、查询所有学生的Sname、Cno和Degree列。 15、查询所有学生的Sno、Cname和Degree列。 16、查询所有学生的Sname、Cname和Degree列。 17、查询“95033”班所选课程的平均分。 18、假设使用如下命令建立了一个grade表: create table grade(low int,upp int,rank char(1)); insert

pikachu漏洞练习之sql注入

假装没事ソ 提交于 2020-01-23 22:27:41
这里因为实验的时候只记录了一部分所以就展示一部分 1.1.1数字型注入 (1)看到界面发现是查询id功能,没有在url里看到有传参所以应该是post方法提交数据。 (2)进行sql注入之前我们最好是先想像一下这个功能提交的参数到了后台之后后台是怎样的操作的,对于当前的页面我猜测后台是这样操作 现接受我的id请求然后带入到查询语句 $id=$_POST['id'] select 字段1,字段2 from 表名 where id = $id 可以用下面的语句添加在等号后面来测试是否真确(post请求通过抓包的方式来进行测试) 1 or 1=1; 可以看到返回的是200 然后查看返回的结果可以看到把所有的结果都查询出来了。所以有漏洞并且是数字型的 1.1.2 字符型注入 查看页面发现是get请求 (1)首先也是猜想后台进行的操作,因为是查询名字,先将我们查询的数值赋给一个变量 $uname=$_GET['username'] select 字段1,字段2 from 表名 where username='$uname ' or 1=1#'; or = 1=1#验证漏洞是否存在,#号注释闭合‘’ 测试结果 1.1.3 搜索型以及xx型注入 (1)搜索型 看到界面是用户名查找我首先还是进行猜测后台的操作,猜测后台可能使用的是mysql的搜索功能,mysql查询语句 Select * from

【漏洞练习-Day7】DedeCmsV5.6 SQL注入漏洞

牧云@^-^@ 提交于 2020-01-23 02:09:00
开始练习【红日团队】的PHP-Audit-Labs 代码审计 Day7 链接: https://github.com/hongriSec/PHP-Audit-Labs 感兴趣的同学可以去练习练习 预备知识: 内容题目均来自 PHP SECURITY CALENDAR 2017 Day 7 - Bells代码如下: function getUser ( $id ) { global $config , $db ; if ( ! is_resource ( $db ) ) { $db = new MySQLi ( $config [ 'dbhost' ] , $config [ 'dbuser' ] , $config [ 'dbpass' ] , $config [ 'dbname' ] ) ; } $sql = "SELECT username FROM users WHERE id = ?" ; $stmt = $db - > prepare ( $sql ) ; $stmt - > bind_param ( 'i' , $id ) ; $stmt - > bind_result ( $name ) ; $stmt - > execute ( ) ; $stmt - > fetch ( ) ; return $name ; } $var = parse_url ( $

SQL Server2008从入门到精通pdf

|▌冷眼眸甩不掉的悲伤 提交于 2020-01-22 10:38:08
下载地址: 网盘下载 内容介绍 编辑 《SQL Server 从入门到精通》从初学者的角度出发,通过通俗易懂的语言、丰富多彩的实例,详细地介绍了SQLServer2008开发应该掌握的各方面技术。全书共分15章,包括数据库基础、初识SQLServer2008、管理SQLServer2008、创建与管理数据库、操作数据表与视图、维护SQLServer2008、T—SQL概述、SQL数据语言操作、SQL数据查询、存储过程和触发器、索引与数据完整性、游标的使用、SQL函数的使用、SQL中的事务、基于C#的企业ERP管理系统。书中所有知识都结合具体实例进行介绍,涉及的程序代码给出了详细的注释,可以使读者轻松领会SQLServer2008的精髓,快速提高开发技能。   第1篇 基 础 知 识   第1章 数据库基础 3   视频讲解:25分钟   1.1 数据库系统简介 4   1.1.1 数据库技术的发展 4   1.1.2 数据库系统的组成 4   1.2 数据库的体系结构 5   1.2.1 数据库三级模式结构 5   1.2.2 三级模式之间的映射 5   1.3 数据模型 6   1.3.1 数据模型的概念 6   1.3.2 常见的数据模型 6   1.3.3 关系数据库的规范化 7   1.3.4 关系数据库的设计原则 7   1.3.5 实体与关系 8   1.4

一 视图

情到浓时终转凉″ 提交于 2020-01-20 22:17:00
一 视图 视图是一个虚拟表(非真实存在),其本质是【根据SQL语句获取动态的数据集,并为其命名】,用户使用时只需使用【名称】即可获取结果集,可以将该结果集当做表来使用。 使用视图我们可以把查询过程中的临时表摘出来,用视图去实现,这样以后再想操作该临时表的数据时就无需重写复杂的sql了,直接去视图中查找即可,但视图有明显地效率问题,并且视图是存放在数据库中的,如果我们程序中使用的sql过分依赖数据库中的视图,即强耦合,那就意味着扩展sql极为不便,因此并不推荐使用 #两张有关系的表 mysql> select * from course; +-----+--------+------------+ | cid | cname | teacher_id | +-----+--------+------------+ | 1 | 生物 | 1 | | 2 | 物理 | 2 | | 3 | 体育 | 3 | | 4 | 美术 | 2 | +-----+--------+------------+ 4 rows in set (0.00 sec) mysql> select * from teacher; +-----+-----------------+ | tid | tname | +-----+-----------------+ | 1 | 张磊老师 | | 2 | 李平老师 |

69期-Java SE-036_MySQL-7 SQL练习 -doing

China☆狼群 提交于 2020-01-18 19:19:17
第一道: 现有图书管理数据库的三个关系模式,他们的字段分别如下: 图书表:总编号, 分类号, 书名, 作者, 出版单位, 单价 读者表:借书证号, 单位, 姓名, 性别, 职称, 地址 借阅表:借书证号, 总编号, 借书日期 以上表对应的字段明细如下: book : b_no ,b_type ,b_name , b_author ,b_publish ,b_price reader : r_no , r_unit , r_name ,r_sex ,r_pro ,r_address borrow : r_no , b_no ,b_time 1、查找出价格位于10元和20元之间的图书种类,结果按 单价升序排序 2、找出藏书中各个出版社的册数、价值总额 3、求出各个出版社图书的最高价格、最低价格和册数 4、查找所有借了书的读者的姓名以及所在单位 5、找出李某所借所有图书的书名及借书日期 6、查询1997年10月以后借书的读者借书证号、姓名和单位 7、找出借阅了FoxPro大全一书的借书证号以及作者 8、分别找出借书人次超过1人次的单位及人次数 9、找出与赵正义在同一天借书的读者姓名、所在单位以及借书 日期 10、求信息系当前借阅图书的读者人次数 11、找出当前至少借阅了2本书的读者姓名及所在单位 12、找出姓李的读者姓名和所在单位 13、求科学出版社图书的最高单价、最低单价和平均单价

关系型数据库(SQL)相关练习题目

巧了我就是萌 提交于 2020-01-13 19:18:11
一、简答题。 1. MySQL常见的三种存储引擎(InnoDB、MyISAM、MEMORY)的区别(至少5点)? 答:首先呢,我们要知道,引擎(Engine)是电子平台上开发程序或系统的核心组件。利用引擎,开发者可迅速建立、铺设程序所需的功能,或利用其辅助程序的运转。一般而言,引擎是一个程序或一套系统的支持部分。常见的程序引擎有游戏引擎,搜索引擎,杀毒引擎等。简单来说,存储引擎就是指 表的类型以及表在计算机上的存储方式 。 存储引擎的概念是MySQL的特点,Oracle中没有专门的存储引擎的概念,Oracle有OLTP和OLAP模式的区分。不同的存储引擎决定了MySQL数据库中的表可以用不同的方式来存储。我们可以根据数据的特点来选择不同的存储引擎。 在MySQL中的存储引擎有很多种,我们可以可以通过“SHOW ENGINES”语句来查看。关于InnoDB、MyISAM、MEMORY这三种存储引擎的区别如下: 1).InnoDB存储引擎 InnoDB给MySQL的表提供了 事务处理 、 回滚 、 崩溃修复能力 和 多版本并发控制 的事务安全。在MySQL从3.23.34a开始包含InnnoDB。它是MySQL上第一个提供外键约束的表引擎。而且InnoDB对事务处理的能力,也是其他存储引擎不能比拟的。靠后版本的MySQL的默认存储引擎就是InnoDB。 InnoDB存储引擎总支持

饮冰三年-人工智能-Python-42 Python之Flask中的WTForm+DBUtils实现学生管理系统

旧巷老猫 提交于 2020-01-12 11:47:34
上篇中 我们通过Flask蓝图简单做了一个增删改查的学生管理系统,在数据和页面校验上都存在很大问题。接下来我们完善一下。 代码存储: GitHub 一、 基于DBUtils实现数据库连接池 1:原理浅析    连接池 :是创建和管理连接的缓存池。简单的说:随时准备着。有一些国外学者喜欢称之曰“备胎”。    优点 :     一:减少连接创建时间     二:受控的资源使用     连接池能够使性能最大化,同时还能将资源利用控制在一定的水平之下,如果超过该水平,应用程序将崩溃而不仅仅是变慢。    原理与操作 (1)建立数据库连接池对象(服务器启动)。 (2)按照事先指定的参数创建初始数量的数据库连接(即:空闲连接数)。 (3)对于一个数据库访问请求,直接从连接池中得到一个连接。如果 数据库连接池 对象中没有空闲的连接,且连接数没有达到最大(即:最大活跃连接数),创建一个新的数据库连接。 (4)存取数据库。 (5)关闭数据库,释放所有数据库连接(此时的关闭数据库连接,并非真正关闭,而是将其放入空闲队列中。如实际空闲连接数大于初始空闲连接数则释放连接)。 (6)释放数据库连接池对象(服务器停止、维护期间,释放数据库连接池对象,并释放所有连接) 2:连接练习   1:首先安装DBUtils 和 PyMySQL from flask import Flask import pymysql