当前位置: 首页 > 编程日记 > 正文

练习-----查询

第一步:建表

 1 create table student   #学生表
 2 (
 3   Sno varchar(20) primary key,  #学号,主键
 4   Sname varchar(20) not null,    #学生姓名
 5   Ssex varchar(20) not null,     #学生性别
 6    Sbirthday datetime,       #学生出生日期
 7    Class varchar(20)     #学生所在班级
 8 );
 9 
10 create table Teacher     #教师表
11 (
12    Tno varchar(20) primary key ,    #教职工编号,主键
13     Tnam varchar(20) not null,   #教职工姓名
14     Tsex varchar(20) not null,  #教职工性别
15     Tbirthday datetime,    # 教职工出生年月
16      Prof varchar (20),      #职称
17      Depart varchar(20)not null    #教职工所在部门
18 );
19 
20 create table Course   #课程表
21 (
22    Con varchar(20) primary key,  #课程号,主键
23     Cname varchar(20) not null,   #课程名称
24     Tno varchar(20) not null,   #教职工
25     foreign key(Tno)references Teacher(Tno)    #教工编号,外键
26 ); 
27 #           从表的列名                      主表的列名
28 
29 
30 create table Score   #成绩表
31 (
32    Sno varchar(20) not null,
33    foreign key(Sno) references Student(Sno) , #学号,外键
34    Con varchar(20) not null,  #组合主键  
35    Degree Decimal(4,1) ,      #Degree  成绩   
36    foreign key(Con) references Course(Con) ,   #课程号,外键
37    primary key (Sno,Con)       #成绩
38 );
39 #values  值的意思
40 
41 
42 
43 
44 #Student表
45 insert into Student values('108','曾华','','1977-09-01','95033');  
46 insert into Student values('105','匡明','','1975-10-02','95031');
47 insert into Student values('107','王丽','','1976-01-23','95033');
48 insert into Student values('101','李军','','1976-02-20','95033');
49 insert into Student values('109','王芳','','1975-02-10','95031');
50 insert into Student values('103','陆君','','1974-06-03','95031');
51 
52 
53 
54 
55  #Teacher表
56 insert into Teacher values('804','李诚','','1958-12-02','副教授','计算机系');
57 insert into Teacher values('856','张旭','','1969-03-12','讲师','电子工程系');
58 insert into Teacher values('825','王萍','','1972-05-05','助教','计算机系');
59 insert into Teacher values('831','刘冰','','1977-08-14','助教','电子工程系');
60 
61 
62 
63 #Course    课程表
64 insert into Course values('3-105','计算机导论','825');
65 insert into Course values('3-245','操作系统','804');
66 insert into Course values('6-166','数字电路','856');
67 insert into Course values('9-888','高等数学','831');
68  
69 
70 
71 #Score    成绩表
72 insert into Score values('103','3-245','86');
73 insert into Score values('105','3-245','75');
74 insert into Score values('109','3-245','68');
75 insert into Score values('103','3-105','92');
76 insert into Score values('105','3-105','88');
77 insert into Score values('109','3-105','76');
78 insert into Score values('101','3-105','64');
79 insert into Score values('107','3-105','91');
80 insert into Score values('108','3-105','78');
81 insert into Score values('101','6-166','85');
82 insert into Score values('107','6-166','79');
83 insert into Score values('108','6-166','81');

 查询题:

1、查询Student表中的所有记录的Sname、Ssex和Class列。

      #答题思路:
      #运用知识点:select 列名1,列名2,列名3... from 表名

 select Sname,Ssex,Class from Student

2、 查询教师所有的单位即不重复的Depart列。

   #答题思路:
       #去重查询:select distinct 列名 from  表名          

       #查出Teacher表中的Depart列  加上distinct关键字就是去重复

 select distinct Depart from Teacher 

3、 查询Student表的所有记录。

#答题思路:
       #select * from 表名     *整个标的所有列

select * from Student

4、 查询Score表中成绩在60到80之间的所有记录。

       #答题思路:
       # 范围查询: select * from 表名 where Price between 范围值 and 范围值

select * from Score where Degree between 60 and 80

5、 查询Score表中成绩为85,86或88的记录。

        #答题思路:
        #离散查询:select * from 表名 where 要查的列名 in (要查的数值1,数值2,数值3)

select * from Score where Degree in (85,86,88)

6、 查询Student表中“95031”班或性别为“女”的同学记录。

    #答题思路:

    #所有的班级的学生
      select * from student
    #"95031”班的学生
      select * from student where class='95031'
    #找出95031”班的女学生 。用and关键字 来查找95031板的女生 。 就一个女学生。
      select * from student where class='95031' and Ssex='女'

 select * from Student where Class='95031' and Ssex='' 

7、 以Class降序查询Student表的所有记录。    

#desc降序    排序 order by查找

#select * from 表名 order by 列名 desc

select * from Student order by Class desc 

8、 以Cno升序、Degree降序查询Score表的所有记录。

    #答题思路:

          #在Score表,里查

         #根据两个条件来排序。asc升序

         #两个条件 :Cno升序、Degree降序    先升,后降

 select * from Score order by Cno asc , Degree desc     

9、 查询“95031”班的学生人数。

  #答题思路:

   #count的意思是集合 count(*)的意思是括号里面的字段集合 select count(*) from的意思是 从某某表查询出该字段的集合也就是有几条记录

      #{延伸知识:语句一:select count(*) from T;

                        作用:查询T表中记录的行数。

                        语句二:select * from T;
                         作用:查询T表中所有的记录。

                        它俩的区别是:语句一查询结果为一个数值,就是表中记录条数;语句二查询结果是表中所有数据,就是包括字段名字,字段里面的内容的详细信息。}

select count(*) from Student where Class='95031'  

10、 查询Score表中的最高分的学生学号和课程号。(子查询或者排序)

    #答题思路:

           #根据子查询来查

    #先查score(成绩)表中最高成绩 

    #select max(degree) from Score #最大值(最高分)是92

    #再查这个最高分,的学生代号和课程号

    #select sno,cno from score where degree=92

           #内容延伸:{  格式:SELECT [谓语] [表别名] FROM 表名 [AS 表别名] [WHERE 逻辑表达式]它的功能是从一个或多个表中检索数据简单的说SELECT后面跟你想检索的内容,可以的一个字段也可以是多个字段(中间用都好隔开),即可以是字段名也可以用函数(系统自定义的),也可以是一个 * 号,表示输出表中所有的字段。FROM是检索内容的来源,就是来自哪个或那些表,跟表的名称;WHERE的作用是指定查询条件,只把满足逻辑表达式的数据作为查询结果,它是可选项,可有可无.} 

 select Sno,Cno from Score where Degree= (select max(Degree) from Score)   

 11、 查询每门课的平均成绩。 #分组查询 每门课 每门课的代号 平均成绩

#扩展知识:group by 有一个原则,就是 select 后面的所有列中,没有使用聚合函数的列,必须出现在 group by 后面。

select avg(Degree),Cno from Score group by Cno    

12、查询Score表中至少有5名学生选修的并以3开头的课程的平均分数。  

      #条件: 至少有5名学生选修,以3开头的课程的 。  要在where里 

select avg(Degree) from Score where Cno = (select Cno from Score group by Cno having count(*)>4) and Cno like '3%' group by Cno

13、查询分数大于70,小于90的Sno列。

  #BETWEEN 操作符在 WHERE 子句中使用,作用是选取介于两个值之间的数据范围。

  #操作符 BETWEEN ... AND 会选取介于两个值之间的数据范围。这些值可以是数值、文本或者日期。


  
#第一种方法:

select Sno from Score where Degree between 70 and 90

  #第二种方法:

select Sno from Score where Degree>=70 and Degree<=90

14、查询所有学生的Sname、Cno和Degree列。

        #join用于根据两个或多个表中的列之间的关系,从这些表中查询数据。

       #{有时为了得到完整的结果,我们需要从两个或更多的表中获取结果。我们就需要执行 join。数据库中的表可通过键将彼此联系起来。主键(Primary Key)是一个列,在这个列中的每一行的值都是唯一的。在表中,每个主键的值都是唯一的。这样做的目的是在不重复每个表中的所有数据的情况下,把表间的数据交叉捆绑在一起。}

  #分析:
  #Sname(学生姓名)列是Student表里的
  #Cno、Degree列是Score表里的
  #通过 Student里的Sno(主键)就可知道了 Score里的Sno(外键) Sno是有联系的

  #把两个表连接起来 连接两张表的关键字join
  select * from Student join Score #查询的结果形成了 形成笛卡尔积
  #我们要进行筛选,筛选出正确的来 join......on....它两是一对 on的后面加条件
  select * from Student join Score on Student.Sno=Score.Sno

     #在加上要查的列,就可以了

select Sname,Cno,Degree from Score join Student on Student.Sno = Score.Sno

转载于:https://www.cnblogs.com/yuyu1993/p/5537808.html

相关文章:

UIActivityViewController使用

苹果从iOS6开始&#xff0c;提供了一个活动列表视图&#xff0c;为分享和操作数据提供了一个统一的服务接口&#xff0c;通过UIActivityViewController来控制它的呈现和关闭&#xff0c;凡是继承UIActivity抽象类的子类对象都可以放在列表中呈现出来。如下图所示&#xff1a; 活…

SQL Server系统表sysobjects介绍与使用

关于SQL Server数据库的一切信息都保存在它的系统表格里。我怀疑你是否花过比较多的时间来检查系统表格&#xff0c;因为你总是忙于用户表格。但是&#xff0c;你可能需要偶尔做一点不同寻常的事&#xff0c;例如数据库所有的触发器。你可以一个一个地检查表格&#xff0c;但是…

手动部署OpenStack环境(三:OpenStack环境预配置)

任务三、OpenStack环境预配置 3.1、本地OpenStack yum源制作 任务三&#xff1a;OpenStack环境预配置 3.1、本地OpenStack yum 源制作 3.1.1、拷贝镜像文件源到本地 3.1.2、查看createrepo是否安装&#xff0c;并使用yum方法安装。 &#xff08;此操作只在controller0主机进…

Java 集合框架(二)—— ArrayList

二、数组列表 —— ArrayList 1、构造方法 ArrayList 是 Java 中的动态数组&#xff0c;底层实现就是对象数组&#xff0c;只不过数组的容量会根据情况来改变。 它有个带 int 类型参数的构造方法&#xff0c;根据传入的参数&#xff0c;扩展初始化的数组容量&#xff0c;这个方…

Linux X Window System运行原理和启动过程

本文主要说明X Window System的基本运行原理&#xff0c;其启动过程&#xff0c;及常见的跨网络运行X Window System。 一) 基本运行原理 X Window System采用C/S结构&#xff0c;但和我们常见的C/S不同。常见的C/S结构中&#xff0c;称提供服务的一方为server&#xff0c;即服…

悬浮球 / 悬浮按钮 / 辅助按钮

原文链接&#xff1a;https://github.com/jinht/FloatingBall类似于 iOS 系统自带的 AssistiveTouch / 京东 / 聚划算 / 建行等的辅助按钮 —— 由anticipate_91分享FloatingBall Function Description 这是一个类似于iOS系统自带的AssistiveTouch/京东《我的》部分的悬浮按钮等…

手动部署OpenStack环境(四:安装控制器必备软件)

任务四、安装控制器必备组件 4.1、安装MySQL服务&#xff08;controller0&#xff09; 4.2、安装Rabbitmq消息队列&#xff08;controller0&#xff09; 4.3、Keystone认证&#xff08;controller0&#xff09; 4.4、glance的安装与配置&#xff08;controller0&#xff09; 4.…

cocoaPods安装、更新第三方库

pod install 换成 pod install --verbose --no-repo-update pod update 换成 pod update --verbose --no-repo-update这是因为&#xff1a;目前&#xff0c;cocoaPods正在被墙中......转载于:https://www.cnblogs.com/hello-Huashan/p/5542456.html

iOS 性能优化总结

原文链接&#xff1a;https://github.com/skyming/iOS-Performance-Optimization关于 iOS 性能优化梳理&#xff1a; 基本工具、业务优化、内存优化、卡顿优化、布局优化、电量优化、 安装包瘦身、启动优化、网络优化等 —— 由_skyming_分享关于iOS 性能优化梳理&#xff1a; …

TCP/IP协议分析

一;前言 学习过TCP/IP协议的人多有一种感觉&#xff0c;这东西太抽象了&#xff0c;没有什么数据实例&#xff0c;看完不久就忘了。本文将介绍一种直观的学习方法&#xff0c;利用协议分析工具学习TCP/IP&#xff0c;在学习的过程中能直观的看到数据的具体传输过程。 为了初学者…

手动部署OpenStack环境(五:新建网络及部署虚拟机)

任务五、新建网络及部署虚拟机 5.1、配置安全组规则 5.2、新建网络 5.3、创建云主机 任务五、新建网络及部署虚拟机 5.1、配置安全组规则 5.1.1、配置安全组&#xff1b; 5.2、新建网络。 5.2.1、创建外部网络&#xff1b; 5.2.2、网络地址为外部网络连接的子网地址&#xff1b…

C++基础day01 程序设计方法的发展历程

类把属性和方法作了封装&#xff01; 总结&#xff1a; 面向过程程序设计&#xff1a;数据结构 算法 主要解决科学计算问题&#xff0c;用户需求简单而固定 特点&#xff1a; 分析解决问题所需要的步骤 利用函数实现各个步骤 依次调用函数解决问题 问题&#xff1a; 软件可重用…

【android】android中activity的生命周期

activity生命周期&#xff1a; 实例代码&#xff1a; 1 public class DemoActivity extends Activity {2 3 //1、activity第一次被创建的时候&#xff0c;执行4 Override5 public void onCreate(Bundle savedInstanceState) {6 super.onCreate(savedIn…

Xcode消除编译器警告

Whenever&#xff0c;Xcode警告对于我们来说都相当重要&#xff0c;提醒我们可能存在的错误。但是有时候&#xff0c;我们知道一切都好&#xff0c;everything is in the palm of my hand&#xff0c;我们想要消除那些警告。自己项目的警告 比如我们定义一个designated initial…

手动部署OpenStack环境(六:出现的问题与解决方案总结)

排错一&#xff1a;keystone服务安装中demo用户表单没信息。 排错思路&#xff1a; 组件安装是否有问题&#xff1b;用户创建畲缶有问题&#xff1b;用户认证信息是否合适&#xff1b;原因&#xff1a;用户的认证信息配置错误。 解决方案&#xff1a; a)删除有关demo用户的所有…

一劳永逸,iOS 自定义 ActionSheet 封装流程

原文链接&#xff1a;http://www.jianshu.com/p/cfb87a7db7b1本文为 iOS 自定义视图封装《一劳永逸》系列的第四期&#xff0c;旨在提供封装思路&#xff0c;结果固然重要&#xff0c;但理解过程才最好。授人以鱼不如授人以渔。 —— 由卖报的小画家Sure分享前言 本文为iOS自定…

cocoapods更新

使用sudo gem install cocoapods更新提示&#xff1a; ERROR: While executing gem ... (Errno::EPERM) Operation not permitted 改为&#xff1a;sudo gem install -n /usr/local/bin cocoapods --pre刷刷刷完成更新。但是马上发下更新后使用pod install又发现一个问题 The …

创建对象_工厂方法(Factory Method)模式 与 静态工厂方法

工厂方法模式&#xff1a; 定义&#xff1a;为创建对象定义一个接口&#xff0c;让子类决定实例化哪个类。工厂方法让一个类的实例化延迟至子类。应用场景&#xff1a;客户类不关心使用哪个具体类&#xff0c;只关心该接口所提供的功能&#xff1b;创建过程比较复杂&#xff0c…

数据通信技术(一:IP划分)

一、某公司生产部有50人&#xff0c;销售部有100人&#xff0c;财务部有25人&#xff0c;客服部有12人&#xff0c;没个员工配置一台主机&#xff0c;该公司有192.168.100.1/24的网段可用&#xff0c;应该如何划分子网。 销售部&#xff08;100&#xff09;台&#xff1a;/25 …

团队作业—第二阶段06

站立会议&#xff1a; 继续数据库的连接编程。 任务进度&#xff1a; 实现数据的输出。 站立会议照片&#xff1a; 任务看板&#xff1a; 燃尽图&#xff1a; 转载于:https://www.cnblogs.com/cpljlgs/p/5546157.html

Fade 数字切换动效

原文链接&#xff1a;http://www.jianshu.com/p/983674e6f4ef根据原型高度还原的一个动效作品。希望可以通过审核。谢谢。 —— 由Bear1494735376123分享欢迎同样喜爱动效的你加入 iOS动效特攻队–>QQ群&#xff1a;547897182 iOS动效特攻队–>熊熊&#xff1a;64807025…

fieldset 使用小案例

有初学者问到如何做出如下页面: 对应的代码如下: <fieldset><legend>★审核状态</legend><input name"state" type"radio" class"input1" value"1" />已审核<input name"state" type"radio…

数据通信技术(二:交换机配置管理)

交换机配置与管理&#xff08;思科模拟器&#xff09; 1.从用户模式进入特权模式,并进入配置模式设置进入特权模式的密码; 2.进入交换机的端口模式并进行端口状态的设置; 用新密码登录并查看接口状态信息,重启交换机;4.硬件和软件版本查询: 5.设备CPU的利用率: 6.检查设备的MA…

iOS之各种区别

作者 APP叫我取个帅气的昵称 关注 2017.05.15 10:47* 字数 140 阅读 1273评论 7喜欢 51写在前面&#xff1a;本文持续更新&#xff0c;也欢迎简友提供更多的关于iOS&#xff08;包括swift&#xff09;中的区别 1. _ _block和 _ _weak修饰符的区别的&#xff1a; (1). _ _block不…

lightoj 1014

lightoj 1014 Ifter Party 链接&#xff1a;http://www.lightoj.com/volume_showproblem.php?problem1014 题意&#xff1a;给你两个数 p, l&#xff0c;求 cha&#xff08;cha p-l&#xff09;的约数&#xff0c;当约数大于 l 时&#xff0c;按从小到大输出 思路&#xff1a…

poj 2681 字符串

http://poj.org/problem?id2681 给你任意长度的字符串&#xff0c;找出两串字符中不相同的字符个数&#xff08;总数&#xff09; #include<string> #include<cstring> #include<iostream> #include<cstdio> using namespace std; int main() {int n;…

数据通信技术(三:VLAN划分)

VLAN划分 1.配置环境 &#xff1a;创建4台PC机&#xff0c;并为PC机配置IP PC0&#xff1a;192.168.1.1/24 PC1&#xff1a;192.168.1.2/24 PC2&#xff1a;192.168.1.3/24 PC3&#xff1a;192.168.1.4/24 2.修改交换机名称&#xff1a; 创建VLAN1和VLAN2&#xff1a;…

CSS(2 )-- CSS样式大全

常用css样式大全Author&#xff1a;xu_shuyi201504039.CSS颜色代码大全http://www.cnblogs.com/axing/archive/2011/04/09/CSS.html1.CSS文字属性color : #999999; /*文字颜色*/font-family : 宋体,sans-serif; /*文字字体*/font-size : 9pt; /*文字大小*/font-style:itelic; /…

java io读书笔记(6) Writing Arrays of Bytes

显而易见&#xff0c;一次性写出一堆数据&#xff0c;要比一个byte一个byte的写&#xff0c;快多了&#xff0c;因此&#xff0c;outputstream&#xff0c;给出了2个增强型的write&#xff1a; public void write(byte[] data) throws IOException public void write(byte[] da…

iOS 自定义双向滑块Slider

ZPSlider 一个双向滑块的Slider 前提 这个是在一次和朋友吃饭的时候&#xff0c;我们唠嗑的时候他说的一个需求。因为系统的Slider是只有一个滑块的&#xff0c;而且没有分段滑动的效果。 这不最近都在研究这么个需求。 How to use it -(instancetype)initWithFrame:(CGRec…