数据库系统概述--关系数据库标准语言SQL

【梳理】数据库系统概论 第3章 关系数据库标准语言SQL 3.1 SQL概述 3.3 数据定义(瞬间吐血弃坑警告:不要照搬书上的SQL语句 · 附:图文MySQL / SQL Server简易教程) 教材:王珊 萨师煊 编著 数据库系统概论(第5版) 高等教育出版社 注:文档高清截图在后 第3章 关系数据库标准语言SQL 3.1 SQL概述 1、结构化查询语言(Structured Query Language,SQL)是关系数据库的标准语言,也是一个通用的、功能极强的关系数据库语言。 2、SQL的特点: 【1】综合统一。 SQL集数据定义语言(DDL)、数据操纵语言(DML)、数据控制语言(... 阅读详情

第三章 关系数据库标准语言SQL

1.SQL功能

数00据查询select

数据定义create drop alter

数据操纵 insert update delete

数据控制 grant revoke

 

2.数据定义

a.模式的定义和删除

为用户zhang创建一个模式test

create scheme test authorization ZHANG

删除模式test

drop scheme test cascade(级联)

drop scheme test restrict(限制)

 

b.基本表的定义、删除与修改

建立一个学生表Student

Create table student(

  Sno char(9) primary key,

  Sname char(20) unique,

  Ssex char(2),

  Sage smallint,

  Sdept char(20)

);

建立一个课程表Course

Create table course(

  Cno char(4) primary key,

  Cname char(40) not null,

  Cpno char(4),

  Ccredit smallint,

  Foreign key(cpno) preferences course(Cno)

);

建立学生选课表SC

Create table sc(

  Sno char(9),

  Cno char(4),

  Grade smallint,

  Primary key(Sno,Cno),

  Foreign key(Sno) references student(Sno),

  Foreign ket(Cno) references course(Cno)

);

删除student表

Drop table student cascade

 

c.索引建立、修改与删除

为学生-课程数据库中的student,course和sc三个表建立索引。其中student表按学号升序建唯一索引,course表按课程号升序建唯一索引,sc表按照学号升序和课程号降序建唯一索引。

Create unique index stusno on student(sno);

Create unique index coucno on course(cno);

Create unique inde  scno on sc(sno asc,cno desc)

将SC表的scno索引名改为scsno

Alter index scno rename to scsno

删除student表的stusname索引

Drop index stusname

 

3.数据查询

查询全体学生的学号与姓名

Select sno,sname from student;

查询全体学生的姓名、学号、所在系

Select sname,sno,sdept from student;

查询全体学生的详细记录

Select * from student;

查询全体学生的姓名及其出生年份

Select sname,sbirth from student;

查询全体学生的姓名、出生年份和所在的院系

Select sname,sbirth,lower(sdept) from student;

查询选修了课程的学生学号

Select discinct sno from sc;

查询计算机科学系全体学生的名单

Select sname from student where sdept=’CS’

查询所有年龄在20岁以下的学生姓名及其年龄

Select sname,sage from student where sage<20;

查询考试成绩不及格的学生的学号

Select distinct sno from sc where grade<60

查询年龄在20-23岁之间的学生姓名、系别和年龄

Select sname,sdept,sage from student where sage between 20 and 23

查询年龄不在20-23岁之间的学生姓名、系别和年龄

Select sname,sdept,sage from student where sage not between 20 and 23

查询计算机科学系(CS)、数学系(MA)和信息系(IS)学生的姓名和性别

Select sname,ssex from student where sdept in(‘CS’,’MA’,’IS’);

查询既不是计算机科学系、数学系,也不是信息系的学生的姓名和性别

Select sname,ssex from student where sdept not in(‘CS’,’MA’,’IS’);

查询学号为201215121的学生的详细情况

Select * from student where sno like ‘201215121’

查询所有姓刘的学生的姓名、学号和性别

Select sname,sno,ssex from student where sname like ‘刘%’

查询姓欧阳且全名为三个汉字的学生的姓名

Select sname from student where sname like ’欧阳_’

查询名字中第二个字为阳的学生的姓名和学号

Select sname,sno from student where sname like ’_阳%’

查询所有不姓刘的学生的姓名、学号和性别

Select sname,sno,ssex from student where sname not like ‘刘%’

查询DB_Design课程的课程号和学分

Select cno,ccredit from course where cname like ‘DB\_Design’ escape ‘\’

查询以“DB_”开头,且倒数第三个字符为i的课程的详细情况

Select * from course where cname like ‘DB\_%i__’ escape ‘\’

某些学生选修课程后没有参加考试,所以有选课记录,但没有考试成绩,查询缺少成绩的学生的学号和相应的课程号

Select sno,cno from sc where grade is null

查所有有成绩的学生学号和课程号

Select sno,cno from sc where grade is not null

查询计算机科学系年龄在20岁以下的学生姓名

Select sname from student where sdept=’cs’ and sage<20

查询选修了3号课程的学生的学号及其成绩,查询结果按分数的降序排列

Select sno,grade from sc where cno=’3’ order by grade desc

查询全体学生情况,查询结果按所在系的系号升序排列,同一系中的学生按年龄降序排列

Select * from student order by sdept,sage desc;

查询学生总人数

Select count(*) from student

查询选修了课程的学生人数

Select count(distinct sno) from sc

计算选修1号课程的学生平均成绩

Select avg(grade) from sc where cno=’1’

查询选修1号课程的学生最高分数

Select max(grade) from sc where cno=’1’

查询学生201215012选修课程的总学分数

Select sum(credit) from sc,course where sno=’201215012’ and sc.cno=course.cno

求各个课程号及其相应的选课人数

Select cno,count(sno) from sc group by cno

查询选修了三门以上课程的学生学号

Select sno from sc group by sno having count(*)>3

查询平均成绩大于等于90分的学生学号和平均成绩

Select sno,avg(grade) from sc group by sno having avg(grade)>=90

查询选修2号课程且成绩在90分以上的所有学生的学号和姓名

Select student,sno,sname from student,sc where student.sno=sc.sno and sc.cno=’2’ and sc.grade>90

查询与“刘晨”在同一个系学习的学生

Select sno,sname,sdept from student where sdept in( select sdept from student where sname=’刘晨’)

Select s1.sno,s1.sname,s1.sdept from student s1,student s2 where s1.sdept=s2.sdept and s2.sname=’刘晨’

查询选修了课程名为“信息系统”的学生学号和姓名

Select student.sno,sname from student,sc,course where student.sno=sc.sno and sc.cno=course.cno and course.cname=’信息系统’

找出每个学生超过他自己选修课程平均成绩的课程号

Select sno,cno from sc x where grade>=(select avg(grade) from sc y  where y.sno=x.sno)

查询选修了课程1或者选修了课程2的学生

Select sno from sc where cno=’1’ union select sno from sc where cno=’2’

查询计算机科学系的学生与年龄不大于19岁的学生的交集

Select * from student where sdept=’cs’ intersect select * from student where sage<=19

查询计算机科学系的学生与年龄不大于19岁的学生的差集

Select * from student where sdept=’cs’ except select * from student where sage<=19

 

4.数据更新

插入操作:

将一个新学生元组(学号:201215128,姓名:陈东,性别:男,所在系:IS,年龄:18岁)插入到student表中

Insert into student(sno,sname,ssex,sdept,sage) values(‘201215128’,’陈东’,’男’,’IS’,18)

将学生张成民的信息插入到student表中

Insert into student values(‘201215126’,’张成民’,’男’,18,’CS’)

插入一条选课记录(‘201215128’,’1’)

Insert into sc(sno,cno) values(‘201215128’,’1’)

对每一个系,求学生的平均成绩,并把结果存入数据库

create table dept_age( sdept char(15) avg_age smallint);

insert into dept_age(sdept,avg_age) selct sdept,avg(sage) from student group by sdept;

 

修改数据

将学生201215121的年龄修改为22岁

update student set sage=22 where sno=’201215121’

将所有学生的年龄都增加1岁

update student set sage=sage+1;

将计算机科学系全体学生的成绩置0

update sc set grade=0 where sno in (select sno from student where sdept=’cs’)

 

删除记录

删除学号为201215128的学生记录

delete from student where sno=’201215128’

删除所有学生的选课记录

delete from sc;

删除计算机科学系所有学生的选课记录

delete from sc where sno in(select sno from student where sdept=’cs’)

 

5.视图的建立、修改和删除

建立视图

建立信息系学生的视图

create view is_student as select sno,sname,sage from student where sdept=’is’

建立信息系学生的视图,并要求进行修改和删除操作时仍需保证该视图只有信息系的学生

create view is_student as select sno,sname,sage from student where sdept=’is’ with

 check_option

建立信息系选修了1号课程的学生的视图(包括学号、姓名、成绩)

create view is_si(sno,sname,grade) as select student.sno,sname,grade from student,sc where sdept=’is’ and student.sno=sc.sno and sc.cno=’1’

建立信息系选修了1号课程且成绩在90分以上的学生的视图

create view is_s2 as select sno,sname,grade from is_s1 where grade>90

将学生的学号及平均成绩定义为一个视图

create view s_g(sno,gavg) as select sno,avg(grade) from sc group by sno;

 

删除视图

删除视图BT_S和视图IS_S1

drop view bt_s

drop view is_s1 cascade

 

数据库系统概论 关系数据库标准语言SQL 数据库系统概论 之 关系数据库标准语言SQL 概述 数据定义 查询 数据更新 视图 嵌入式SQL 立即下载

相关推荐

SQL语句基本操作练习(二)

文章目录SQL语句基操(二)1、建立/删除索引1)建立索引[例 3.13] 为学生-课程数据库建立索引。2)修改索引[例 3.14]将SC表内的SCno索引名改为SCSno。3)删除索引[例 3.15] 删除Student 表的 Stusno 索引。2、插入数据1)插入元组[例 3.69]将一个新学生元组插入到Student表中。[例 3.70]将学生张成明的信息插入到Student 表中。EXTRA[例 3.7]插入一条选课记录(‘201215128′,’1’)。3、数据查询1)单表查询查询指定列:[例 3.16] 查询全体学生的学号与姓名。[例 3.17]查询全体学生的姓名、学号、所在系。

作业6 SQL练习 SELECT(单表查询)

字符匹配 语句如下: [NOT] LIKE '<匹配串>' [ESCAPE '<换码字符>']; 注释: <匹配串>可以是一个完整的字符串,也可以含有通配符%和 _ % (百分号) 代表任意长度(长度可以为0)的字符串 例如a%b表示以a开头,以b结尾的任意长度的字符串 _ (下横线) 代表任意单个字符。 例如a_b表示以a开头,以b结尾的长度为3的...

lrx359641708的博客 1015

捷联惯导总结--初始对准,位置标定,INS姿态更新,GPS/INS组合

惯导及组合导航回顾  2018.09.16 今天和17系的同学一起把惯导的流程捋了一遍,为了加深自己的记忆,这里在前面把心得大致列出来。 我们这里只考虑捷联式惯导及松组合 首先拿到惯性传感器(加速度计和陀螺仪)需要对其进行标定,是为了求出零偏,比例因子,交轴耦合这些误差。这些误差有的虽然在出厂时会给出,但是考虑到实际环境不同,还是要做标定。一般采用的是六位置旋转法,针对加速度计和陀螺仪同时...

赤豆几维 5万+

14. 查询表sc——查询学生201215121选修课程的总学分数。

SELECT SUM(ccredit) FROM course, sc WHERE sno = '201215121' AND sc.cno = course.cno;

weixin_43939570的博客 7908

保姆级教程:用Python工具搞定MTK手机分区表(PGPT)备份与线刷引导文件生成

本文提供了一份详细的Python工具链教程,帮助用户备份MTK手机的PGPT分区表并生成线刷引导文件。内容涵盖环境配置、分区表解析、备份流程、线刷文件生成及常见问题排查,特别适合安卓玩机爱好者和开发者。通过本指南,读者可掌握MTK芯片设备的底层分区操作技术,实现安全高效的分区备份与恢复。

weixin_30394669的博客 190

Box2D-Lite源码阅读笔记(2)

0.初始化函数 static void InitDemo(int index) { world.Clear(); numBodies = 0; numJoints = 0; bomb = NULL; demoIndex = index; demos[index](bodies, joints); } 在这个初始化函数中,一般会默认执行index=0的函数,这个函数就是一个示例,因为示例比较简单,所以也便于研究,示例效果如下。 就是一个方块。 进入第一个示例函数。(忽略我加的注释)

ARTELE的博客 977

索引的建立、删除与修改以及数据的插入、修改、删除

一、建立索引 CREATE UNIQUE INDEX Stusno ON Student(Sno); CREATE UNIQUE INDEX Coucno ON Course(Cno); CREATE UNIQUE INDEX SCno ON SC(Sno ASC,Cno DESC); Sno升序排列与Cno降序排列,二者并没有冲突,这句话的意思是对Sno进行升序排列后,当Sn...

wjijiu的博客 2205

RK3568平台(USB篇)USB HUB集线器

hub,集线器,连接在host与device之间的一种用于usb接口扩展的usb设备。可以将一个usb上行接口扩展为多个下行接口,使得一个host可以同时与多个device连接。一般来说,一块hub桥接芯片可扩展4个usb接口,而市面上的一拖七hub,其实使用了两块hub桥接芯片,其中一块hub桥接芯片的上行端口连接到另一块hub桥接芯片的下行端口。hub的上行端口面向host,下行端口面向device。在下行端口上,hub提供了设备接入检测和设备移除检测的能力,并给下行端口供电。

weixin_49303682的博客 967

数据库系统原理复习题(三)——关系数据库标准语言SQL

数据库系统原理复习题(三)——关系数据库标准语言SQL 1.为使程序员编程时既可使用数据库语言又可使用常规的程序设计语言,数据库系统需要把数据库语言嵌入到________中。 (5分) A. 中间语言 B. 操作系统 C. 编译程序 D. 宿主语言 正确答案:D. 你当前选择:D. 2.SQL语言是________语言。 (5分) A. 网络数据库...

java开发指南博客 【转载】 2468

STM32H743的FDCAN使用方法(1):STM32CubeMX初始化代码生成

STM32H743的FDCAN使用方法(1):STM32CubeMX初始化代码生成。

kevin1499的博客 2568

uniapp:实现扫描二维码+自定义扫描框+扫一扫功能,支持扫码识别二维码、条形码(条码)、微信/支付宝等二维码功能,自定义扫码页面可添加按钮或文字展示布局(移动端H5网页/小程序/安卓苹果APP端)

UNI-APP实现扫描二维码,uniapp扫描条形码,uniapp实现扫一扫功能,扫码成功后跳转页面,uniApp扫描条码,uniApp-H5 使用摄像头扫码功能(扫一扫),实现手机扫描二维码并跳转全过程示例代码,用户扫码后自动跳转到链接,uniapp怎么调用扫一扫功能,uniapp实现扫一扫功能,uniapp请求相机使用权限,扫一扫权限申请,uniapp调用摄像头扫码,uniapp实现调用相机扫码,UniApp 实现扫描二维码,uniapp APP安卓苹果ios实现扫码扫一扫,Uniapp微信小程序扫描二

✅ 精选推荐文章 4708

SQL Server——从入门到放弃(3)--SELECT(单表查询)

这次的练习是对上次SELECT语句的继续使用和延续操作。 【例3.29】查询学号为201215121的学生的详细情况 Select * from Student where Sno like '201215121'

Evil Moon的博客 3527

软考「系统规划与管理师(第2版)」通关全攻略(2026年下半年)

它考的是一个IT管理者能不能用体系化的语言,把"我们为什么要建这个系统→怎么规划→怎么管好服务→怎么合规"讲圆。所以备考的核心策略也很明确——教材建框架 → 真题磨考点 → 案例练结构 → 论文备好真实项目素材 → 机考练打字。按计划走,不贪全、不盲刷、不死背,稳稳把三科都推过45分那条线。祝你通关 🎯。

软件行业技术文化交流。 3053

数据库系统概述之关系数据库标准语言SQL

一、SQL概述 结构化查询语言(Structured Query Language )SQL是关系数据库的标准语言,也是一个通用的功能极强的关系数据库语言,其功能不仅仅是查询,而是包括数据库模式创建、数据库数据的插入与修改、数据库安全性完整性定义与控制等一系列功能。 二、SQL特点 综合统一 非关系模型(层次模型,网状模型)的数据语言 (1)模式数据定义语言(Schema Data Defintion Language 模式DDL) (2)外模式数据定义语句(Subschema Data Defint

唐昊 2240

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

笔记——数据库系统概述——关系数据库标准语言SQL

数据库系统概述考研笔记

Greenxiaojing的博客 388

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

(数据库系统概论|王珊)第三章关系数据库标准语言SQL-第一节:SQL概述

文章目录一:SQL的产生与发展二:SQL特点(1)综合统一(2)高度非过程化(3)面向集合的操作方式(4)以同一种语法结构提供多种使用方式(5) 语言简洁,易学易用三:SQL的基本概念 结构化查询语言( Structured Query Language, SQL) 是关系数据库的标准语言,也是一个通用的、功能极强的关系数据库语言。其功能不仅仅是查询,而是包括数据库模式创建、数据库数据的插入与修改、数据库安全性完整性定义与控制等一系列功能 一:SQL的产生与发展 此部分没什么考点,但可以做一定了解 这一篇

快乐江湖的博客 5562

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

数据库系统概述——第三章 关系数据库标准语言SQL(知识点复习+练习题)

数据库系统概述——第三章 关系数据库标准语言SQL(知识点复习+练习题)

VLOKL的博客 1975

数据库系统概述(王珊等)第三章关系数据库标准语言SQL课后习题选做

数据库系统概述(王珊等)第三章关系数据库标准语言SQL课后习题选做 试述SQL的特点 (1).综合统一 (2).高度非过程化 (3).面向集合的操作方式 (4).以同一种语法结构提供多种使用方式 (5).语言简洁,易学易用 (6).对于数据统计方便直观 试述SQL的定义功能 SQL的数据定义功能包括定义表、定义视图和定义索引。 SQL 语言使用 SREATE TABLE 语句建立基本表, ALTER TABLE 语句修改基本表定义, DROP TABLE 语句删除基本表;使用 CREATE INDE

qq_50465499的博客 759

《数据库系统概论》第五版 +学习笔记总目录_数据库系统概论第五版电子书

本篇文章学习书籍:《数据库系统概论》第5版 王珊 萨师煊编著学习软件:Navicat Premium 15 && SSMS采用数据库:SQL Sever说明:虽然数据库是SQL Sever 有些书上的语句执行不了,貌似书采用的是Oracle数据库的SQL,不过没关系,初学我们最重要的是掌握其思想,很多思想和方法语句在其它数据库都是通用的,大同小异,只是有可能一些实现语句不同而已。考虑到很多小伙伴需要PPT,这里附上链接:提取码:4672,希望可以一起交流学习。

2401_85599444的博客 1077

SQL简介

SQL(结构化查询语言)是用于访问和操作数据库中的数据的标准数据库编程语言。 SQL是关系数据库系统的标准语言。所有关系数据库管理系统(RDMS),如MySQL、MSAccess、Oracle、Sybase、Informix、Postgres和SQLServer都使用SQL作为它们的标准数据库语言。 为了处理数据库和数据库相关的编程,程序员需要有一些介质,或者可以说接口来详细说明一组命令或代码来处理数据库或访问数据库的数据。 ...

BUITEKI 231

数据库系统概论第五版(理论总结)

第一章绪论 表述事物的符号称为数据。表述事物的符号可以是数字,也可以是文字、图形、图像、音频、视频等。 数据库是长期存储在计算机内、有组织的、可共享的大量数据的集合。 数据库系统是由数据库、数据库管理系统(及其应用开发工具)、应用程序和数据库管理员组成的存储、管理、处理和维护的系统。 数据库管理技术经历了人工管理、文件系统、数据库系统三个阶段。 概念模型实际上是现实世界到机器世界的的一个中间层次。概念模型用于信息世界的建模,是现实世界到信息世界的第一层抽象。概念模型到机器世界的过程叫逻辑结构设计,结果是数

浮而不实的博客 958

数据库基础(基本概念、关系数据库、数据库标准语言SQL)

数据库基础 绪论 数据库系统概述 4个基本概念 数据(data) 定义:描述事物的符号。数据的含义称为数据的雨衣,数据与其语义是密不可分的。 数据库(DataBase,DB) 定义:数据库是长期存储在计算机内、有组织的、可共享的大量数据的集合。数据库中的数据按一定的数据模型组织、描述和存储,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。 总之,数据库数据具有永久存储、有组织和可共享三个基本特点 数据库管理系统(DataBase Management System,DBMS)

qq_44863646的博客 2681

《数据库系统概述》学习笔记和总目录导航

基于《数据库系统概述》得出的学习笔记和总目录导航

修行的凡人的博客 239

php为什么需要数据库,为什么需要数据库?

为什么需要数据库?因为应用程序需要保存用户的数据,比如Word需要把用户文档保存起来,以便下次继续编辑或者拷贝到另一台电脑。深圳大理石平台要保存用户的数据,一个最简单的方法是把用户数据写入文件。例如,要保存一个班级所有学生的信息,可以向文件中写入一个CSV文件:id,name,gender,score1,小明,M,902,小红,F,953,小军,M,884,小丽,F,88如果要保存学校所有班级的信...

weixin_39638309的博客 258

数据库印象

数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,它产生于距今五十年前,随着信息技术和市场的发展,特别是二十世纪九十年代以后,数据管理不再仅仅是存储和管理数据,而转变成用户所需要的各种数据管理的方式。数据库有很多种类型,从最简单的存储有各种数据的表格到能够进行海量数据存储的大型数据库系统都在各个方面得到了广泛的应用。 目录 1简介 ▪定义...

weixin_30722589的博客 211
上一篇: 数据库系统概述---第二章关系数据库
下一篇: 数据库系统概论之数据库安全性
mind_programmonkey
mind_programmonkey 领域专家: 算法与数据结构技术领域 领域专家: 算法与数据结构技术领域
博客等级 码龄9年 4435粉丝 1111原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

mind_programmonkey

你的鼓励是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值