达梦两个表模糊查询_六熟练数据库建立与数据查询操作sql

本文介绍了达梦数据库的创建、简单查询到复杂查询的全过程,包括汇总分析、分组查询、多表联结、case表达式的应用,以及SQL查询效率优化的建议。涉及内容包括模糊查询、分组条件限制、子查询、联结查询等,旨在提升数据库操作能力。
摘要由CSDN通过智能技术生成

一 创建学校数据库及各表建立

创建数据库

/*CREATE DATABASE <数据库名称>;
*/
CREATE DATABASE school;

建立表格

/*
CREATE TABLE <表名> (<列名1> <数据类型> <该列所需约束>,
 <列名2> <数据类型> <该列所需约束>,
 <列名3> <数据类型> <该列所需约束>,
 <列名4> <数据类型> <该列所需约束>,
.......
 <该表的约束1>, <该表的约束2>,……);
*/

create table student
(学号 char(10) not null,
姓名 varchar(10) not null,
出生日期 date not null,
性别 char(1) not null,
primary key (product_id));

案例:各表数据建立

insert into student(学号,姓名,出生日期,性别)
                   values('0001','猴子','1989-01-01','男'),
                            ('0002','猴子','1990-12-21','女'),
                            ('0003','马云','1991-12-21','男'),
                             ('0004','王思聪','1990-05-20','男');

insert into  score(学号,课程号,成绩)
                  values('0001','0001',80),
                           ('0001','0002',90),
                           ('0001','0003',90),
                           ('0002','0002',60),
                           ('0002','0003',80),
                           ('0003','0001',80),
                           ('0003','0002',80),
                           ('0003','0003',80);

insert into  course(课程号,课程名称,教师号)
                  values('0001','语文','0002'),
                           ('0002','数学','0001'),
                           ('0003','英语','0003');

insert into teacher(教师号,教师姓名)
                   values('0001','孟扎扎'),
                            ('0002','马化腾'),
                            ('0003',null),
                            ('0004','');

二: 简单查询

基本语法:select <字段1>,<字段2>
               from table 
               where 查询条件 like '*%*';
=====(模糊查询)"%"可以代替任意字符

实列:

  • 查询姓‘猴’的学生名单;名字末尾是‘猴’的学生名单 以及名字中涉及‘猴’的学生

173159756bb032835c30871c8085d445.png

195bd9bb0f943a26a575bbcb35d98ad3.png

3374b4590d994b10f455b148e7c15ebe.png

d3e13b0c0029bd9d33b03fba329a0661.png
  • 查询姓‘孟’老师的个数

89142d61a755b95ad636a58bb5fc6214.png

三 汇总分析

  • 查询课程编号为“0002”的总成绩
/*
分析思路
select 查询结果 [总成绩:汇总函数sum]
from 从哪张表中查找数据[成绩表score]
where 查询条件 [课程号是0002]
*/
select sum(成绩)
from score
where 课程号 = '0002';

d61e090fbcc234c887640f26d4a7cce7.png
  • 查询选了课程的学生人数
/*
分析思路
select 学号,成绩表里学号有重复值需要去掉
from 从课程表查找score;
*/
select 课程号,count(distinct 学号) as 学生人数
from score
group by 课程号;

72fe1e0dfd287d7e9ae8568cfcdfb459.png

四 分组

  • 查询各科成绩最高和最低的分
/*
查询各科成绩最高分最低分
分析思路
select 查询结果(课程号,成
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值