首页 > 数据库 >SQL语句的基本使用5-多值子查询

SQL语句的基本使用5-多值子查询

时间:2023-10-17 22:35:32浏览次数:39  
标签:语句 分数 多值子 删除 表中 SQL truncate where select

这个作业属于哪个课程 https://edu.cnblogs.com/campus/uzz/cs3
这个作业要求在哪里 https://edu.cnblogs.com/campus/uzz/cs3/homework/13074
这个作业的目标 SQL语句的基本使用5-多值子查询

1.在student_info表中查找与“刘东阳”性别相同的所有学生的姓名、出生日期。

select 姓名,出生日期 from student_info
    -> where 性别=(select 性别 from student_info where 姓名='刘东阳');


2.使用IN子查询查找所修课程编号为0002、0005的学生学号、姓名、性别。

select 学号,姓名,性别 from student_info
    -> where 学号 in (select 学号 from grade where 课程编号 in('0002','0005'));


3.使用ANY子查询查找学号为0001的学生的分数比0002号的学生的最低分数高的课程编号和分数。

select 课程编号,分数 from grade
    -> where 分数>any(select 分数 from grade  where 学号='0002') and 学号='0001';


4.使用ALL子查询查找学号为0001的学生的分数比学号为0002的学生的最高成绩还要高的课程编号和分数。

select 课程编号,分数 from grade
    -> where 分数>all(select 分数 from grade  where 学号='0002') and 学号='0001';


5.使用UNION运算符针student_info表中姓“刘”的学生的学号、姓名与姓“张”的学生的学号、姓名返回在一个表中。

mysql> select 学号,姓名 from  student_info
    ->  where 姓名 like '刘%'
    ->  union
    -> select 学号,姓名 from student_info
    -> where 姓名 like '张%';


6.思考:delete 、drop、truncate区别,并总结。
Delete 用于逐行删除表中的数据,可以选择性删除满足条件的数据
Drop 用于删除整个数据库对象
Truncate 用于一次性删除表中的所有数据,保留表的结构,比逐行删除更高效
Truncate删除整个表的数据,而Delete只删除表中某些数据。如果需要删除一个有很多行的表,并且不需要恢复,那么truncate命令可以更快地清空表。另外,truncate和drop都是一个命令,不能与WHERE条件一起使用。如果需要只删除某些行,就要使用Delete命令。
Drop删除的是整张表,而truncate只删除表中的内容。如果只是想清空表中的数据而不涉及到表的操作,应该使用truncate。如果需要彻底删除一个表,应该使用Drop。
Delete和truncate的区别在于,Delete只删除表中的部分记录,而truncate会删除整个表。此外,Delete操作虽然可以撤销,但是不能回收空间。而truncate操作不仅不能撤销,而且会回收所有已分配的空间。
7.整理课上关于多值子查询的例子,以笔记形式、或者视频讲授形式呈现。尽可能通俗易懂,不限于形式。
[https://www.123pan.com/s/TBhhjv-JX24h.html]

标签:语句,分数,多值子,删除,表中,SQL,truncate,where,select
From: https://www.cnblogs.com/zzxyyxy/p/17767628.html

相关文章

  • 在SQL Server中,如何从SELECT更新?
    内容来自DOC[https://q.houxu6.top/?s=在SQLServer中,如何从SELECT更新?](https://q.houxu6.top/?s=在SQLServer中,如何从SELECT更新?)在SQLServer中,可以使用INSERT..SELECT语句向表中插入行:INSERTINTOTable(col1,col2,col3)SELECTcol1,col2,col3FROMother_......
  • 搭建MYSQL主从
    基于二进制日志文件位置的复制#根据前面的文档,搭建两台MySQL服务,具体步骤略192.129主192.127从#主:配置这一步是因为my.cnf在/etc/下的话,它不会识别,需要在mysqld.service启动脚本中定义路径,然后需要把/etc/my.cnf配置文件拷贝到定义的目录下vim/usr/lib/systemd/system/mysqld.s......
  • SQL Server2012 安装及问题处理
    安装方式:参考 SQLServe详细安装步骤_sqlserver安装教程_Dandi0707的博客-CSDN博客遇到的问题:等了半天一直卡在下图的界面 然后我决定手动开启NetFx3首先使用cmd命令输入control,回车然后点击程序 点击启动或关闭Windows功能 选中.NETFramework3.5再点击确定......
  • Ubuntu下PostgreSQL开启远程访问(解决postgresql 端口不对外开放问题)
    修改配置文件:sudovim/etc/postgresql/9.5/main/pg_hba.conf,在文件中添加 hostallall0.0.0.0/0md5。all :匹配任何IP地址。0.0.0.0/0:对于所有IPv4地址,允许任何ip地址以任何用户身份连接任何数据;::0/0:对于所有IPv6地址。md5:加密方式。·修改 postgresql.conf:执......
  • MySQL 联合查询
    MySQL联合查询在MySQL中,联合查询(也称为JOIN查询)是一种用于将多个表中的数据联接在一起的操作。这使得你可以从多个表中获取相关的数据,并创建复杂的查询。以下是一些常见的联合查询类型和示例:内连接(INNERJOIN):内连接用于获取两个或多个表之间具有匹配行的数据。只有在两个......
  • MySQL 中的索引
    MySQL中的索引MySQL中的索引是一种用于提高查询性能的数据结构。索引允许数据库引擎更快地定位和访问数据,减少了数据扫描的开销。下面是关于如何在MySQL中使用索引的一些重要信息和最佳实践:创建索引:在创建表时定义索引:可以在创建表的时候定义索引,使用CREATETABLE语句的......
  • MySQL中对某列进行求和
    MySQL中对某列进行求和要在MySQL中对某列进行求和,你可以使用SUM聚合函数。以下是一个简单的示例,演示如何对某列进行求和:假设你有一个名为your_table的表,其中有一个列名为your_column,你想对这一列进行求和:SELECTSUM(your_column)ASsum_resultFROMyour_table;这将返回......
  • kettle同步mysql到mysql
    上传mysql驱动包到lib目录下创建表连接表输入表输出(没有创建表)执行表创建表sql ......
  • mysql json类型数据查询
    1、json对象1.1、方法使用对象操作的方法进行查询:字段->'$.json属性'使用函数进行查询:json_extract(字段,'$.json属性')获取JSON数组/对象长度:JSON_LENGTH()1.2、数据CREATETABLE`test`(`id`bigint(20)unsignedNOTNULLAUTO_INCREMENTCOMMENT'自增ID',`g......
  • 【转】,接上面3篇.Implement Sql Database Driver in 100 Lines of Go
    原文: https://vyskocil.org/blog/implement-sql-database-driver-in-100-lines-of-go/ -------------------- ImplementSqlDatabaseDriverin100LinesofGo2019.02.18Go database/sql definesinterfacesforSQLdatabases.Actualdrivermustbeimplemented......