李平

python 数据库连表查询习题

佐手、 提交于 2020-02-14 18:36:30
# 多表查询 # 连表查 # 内连接 必须左表和右表中条件互相匹配的项才会被显示出来 # 表1 inner join 表2 on 条件 # 外链接 会显示条件不匹配的项 # left join 左表显示全部,右表中的数据必须和左表条件互相匹配的项才会被显示出来 # right join 右表显示全部,左表中的数据必须和右表条件互相匹配的项才会被显示出来 # 全外连接 # left join # union # right join # 子查询 # select * from 表 where 字段 = (select 字段 from 表 where 条件) # select * from 表 where 字段 > (select 字段 from 表 where 条件) # select * from 表 where 字段 in (select 字段 from 表 where 条件) # 5\查询至少有一门课与学号为1的同学所学课程相同的同学的学号和姓名; # select course_id from score where student_id =1; # select * from score where course_id in (1,2,4); # select distinct student_id from score where course_id in (select

MySQL之视图

て烟熏妆下的殇ゞ 提交于 2020-01-01 03:08:57
一、视图的定义   视图是虚拟表或逻辑表,它被定义为具有连接的SQL SELECT查询语句。因为数据库视图与数据库表类似,它由行和列组成,因此可以根据数据库表查询数据。其内容由查询定义。但是,视图并不在数据库中以存储的数据值集形式存在,行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成。简单的来说视图是由其定义结果组成的表; 二、视图的优缺点 优点:   1,数据库视图允许简化复杂查询,通过数据库视图,您只需使用简单的SQL语句,而不是使用具有多个连接的复杂的SQL语句。 2,安全性。一般是这样做的:创建一个视图,定义好该视图所操作的数据。之后将用户权限与视图绑定。这样的方式是使用到了一个特性:grant语句可以针对视图进行授予权限。 缺点:   1、性能:从数据库视图查询数据可能会很慢,特别是如果视图是基于其他视图创建的。  2、表依赖关系:将根据数据库的基础表创建一个视图。每当更改与其相关联的表的结构时,都必须更改视图。 三、创建视图 语法: CREATE VIEW 视图名称 AS SQL语句 ex: #两张有关系的表 mysql> select * from course; +-----+--------+------------+ | cid | cname | teacher_id | +-----+--------+------------+ | 1 |

MySQL之视图

时光毁灭记忆、已成空白 提交于 2020-01-01 03:08:29
一、视图的定义   视图是 虚拟表 或逻辑表,它被定义为具有连接的SQL SELECT 查询语句,因为数据库视图与数据库表类似,它由行和列组成,因此可以根据数据库表查询数据。其内容由查询定义。,   但是,视图并不在数据库中以存储的数据值集形式存在,行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成。简单来说视图是由其定义结果组成的表。 二、视图的优点   1、数据库视图允许简化复杂查询,通过数据库视图,您只需使用简单的SQL语句,而不是使用具有多个连接的复杂的SQL语句。   2、安全性。一般是这样做的:创建一个视图,定义好该视图所操作的数据。之后将用户权限与视图绑定。这样的方式是使用到了一个特性:grant语句可以针对视图进行授予权限。 三、视图的缺点   1、性能:从数据库视图查询数据可能会很慢,特别是如果视图是基于其他视图创建的。   2、表依赖关系:将根据数据库的基础表创建一个项目。每当更改与其相关联的表的结构时,都必须更改视图。 四、创建视图 语法: CREATE VIEW 视图名称 AS SQL语句 临时表应用举例: #两张有关系的表 mysql> select * from course; +-----+--------+------------+ | cid | cname | teacher_id | +-----+--------+------

09-----视图

ぃ、小莉子 提交于 2020-01-01 03:08:05
一、视图的定义 视图是虚拟表或逻辑表,它被定义为具有连接的SQL SELECT查询语句。因为数据库视图与数据库表类似,它由行和列组成,因此可以根据数据库表查询数据。其内容由查询定义。 但是,视图并不在数据库中以存储的数据值集形式存在,行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成。简单的来说视图是由其定义结果组成的表; 二、视图的优点 1、数据库视图允许简化复杂查询,通过数据库视图,您只需使用简单的SQL语句,而不是使用具有多个连接的复杂的SQL语句。 2、安全性。一般是这样做的:创建一个视图,定义好该视图所操作的数据。之后将用户权限与视图绑定。这样的方式是使用到了一个特性:grant语句可以针对视图进行授予权限。 三、视图的缺点 1、性能:从数据库视图查询数据可能会很慢,特别是如果视图是基于其他视图创建的。 2、表依赖关系:将根据数据库的基础表创建一个视图。每当更改与其相关联的表的结构时,都必须更改视图。 四、创建视图 语法: CREATE VIEW 视图名称 AS SQL语句 临时表应用举例: #两张有关系的表 mysql> select * from course; +-----+--------+------------+ | cid | cname | teacher_id | +-----+--------+------------+ | 1 |

17 视图

二次信任 提交于 2019-12-26 07:13:04
一、视图的定义 视图是虚拟表或逻辑表,它被定义为具有连接的SQL SELECT查询语句。因为数据库视图与数据库表类似,它由行和列组成,因此可以根据数据库表查询数据。其内容由查询定义。但是,视图并不在数据库中以存储的数据值集形式存在,行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成。简单的来说视图是由其定义结果组成的表; 二、视图的优点 1、数据库视图允许简化复杂查询,通过数据库视图,您只需使用简单的SQL语句,而不是使用具有多个连接的复杂的SQL语句。 2、安全性。一般是这样做的:创建一个视图,定义好该视图所操作的数据。之后将用户权限与视图绑定。这样的方式是使用到了一个特性:grant语句可以针对视图进行授予权限。 三、视图的缺点 1、性能:从数据库视图查询数据可能会很慢,特别是如果视图是基于其他视图创建的。 2、表依赖关系:将根据数据库的基础表创建一个视图。每当更改与其相关联的表的结构时,都必须更改视图。 四、创建视图 语法: CREATE VIEW 视图名称 AS SQL语句 临时表应用举例: #两张有关系的表 mysql> select * from course; +-----+--------+------------+ | cid | cname | teacher_id | +-----+--------+------------+ | 1 | 生物

6-1 视图

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

Navicat

三世轮回 提交于 2019-11-28 13:42:24
Navicat使用 下载地址:<https://pan.baidu.com/s/1bpo5mqj> ```mysql 掌握: #1. 测试+链接数据库 #2. 新建库 #3. 新建表,新增字段+类型+约束 #4. 设计表:外键 #5. 新建查询 #6. 建立表模型 #注意: 批量加注释:ctrl+?键 批量去注释:ctrl+shift+?键 ``` #### 练习题 导出的sql语句代码 ```mysql /* 数据导入: Navicat Premium Data Transfer Source Server : localhost Source Server Type : MySQL Source Server Version : 50624 Source Host : localhost Source Database : sqlexam Target Server Type : MySQL Target Server Version : 50624 File Encoding : utf-8 Date: 10/21/2016 06:46:46 AM */ SET NAMES utf8; SET FOREIGN_KEY_CHECKS = 0; -- ---------------------------- -- Table structure for `class` -- --

连表查询练习

与世无争的帅哥 提交于 2019-11-28 06:24:24
一、建表: /* 数据导入: Navicat Premium Data Transfer Source Server : localhost Source Server Type : MySQL Source Server Version : 50624 Source Host : localhost Source Database : sqlexam Target Server Type : MySQL Target Server Version : 50624 File Encoding : utf-8 Date: 10/21/2016 06:46:46 AM */ SET NAMES utf8; SET FOREIGN_KEY_CHECKS = 0; -- ---------------------------- -- Table structure for `class` -- ---------------------------- DROP TABLE IF EXISTS `class`; CREATE TABLE `class` ( `cid` int(11) NOT NULL AUTO_INCREMENT, `caption` varchar(32) NOT NULL, PRIMARY KEY (`cid`) ) ENGINE=InnoDB AUTO

navicat使用 pymysql操作数据库 sql注入及增删改查

大城市里の小女人 提交于 2019-11-28 06:10:49
下载地址:<https://pan.baidu.com/s/1bpo5mqj>   批量加注释:ctrl+?键   批量去注释:ctrl+shift+?键 导出的sql语句代码 ```mysql /* 数据导入: Navicat Premium Data Transfer Source Server : localhost Source Server Type : MySQL Source Server Version : 50624 Source Host : localhost Source Database : sqlexam Target Server Type : MySQL Target Server Version : 50624 File Encoding : utf-8 Date: 10/21/2016 06:46:46 AM */ SET NAMES utf8; SET FOREIGN_KEY_CHECKS = 0; -- ---------------------------- -- Table structure for `class` -- ---------------------------- DROP TABLE IF EXISTS `class`; CREATE TABLE `class` ( `cid` int(11) NOT NULL AUTO