首页 > 数据库 >SQL基础命令练习

SQL基础命令练习

时间:2023-06-21 19:44:28浏览次数:40  
标签:表中 users 练习 查询 命令 student SQL sc sid

 1.创建一个名为`mydb`的数据库

2.在`mydb`数据库中创建一个名为`users`的表,包含以下字段:`id`(主键,自增长), `name`(字符串, 非空), `age`(整数), `gender`(字符串)

3.向`users`表中插入一条记录,姓名为`Tom`, 年龄为`25`, 性别为`男`

4.查询`users`表中所有记录

5.将`users`表中`Tom`的年龄改为`30`

6.向`users`表中插入一条记录,姓名为`Lucy`, 年龄为`28`, 性别为`女`

7.查询`users`表中所有性别为`女`的记录

8.删除`users`表中姓名为`Tom`的记录

9.在`mydb`数据库中创建一个名为`age_view`的视图,显示`users`表中所有记录的姓名和年龄字段

10.查询`age_view`视图中所有记录

11.在`users`表中添加一个索引,以`age`字段为索引

12.查询`users`表中所有年龄大于等于`30`的记录

13.在`users`表中添加一个`birthday`字段,类型为日期型

14.向`users`表中插入一条记录,姓名为`Alice`, 年龄为`20`, 性别为`女`, 生日为`1999-01-01`

15.查询`users`表中生日在`1990-01-01`和`2000-01-01`之间的记录

16.在`age_view`视图中添加一个`age_group`字段,根据年龄分组,小于`18`为`未成年`, 大于等于`18`小于`30`为`青年`, 大于等于`30`小于`50`为`中年`, 大于等于`50`为`老年`

17.查询`age_view`视图中所有`青年`的记录

18.在`users`表中添加一个`email`字段,类型为字符串

19.向`users`表中插入一条记录,姓名为`Mike`, 年龄为`35`, 性别为`男`, 邮箱为`[email protected]`

20.查询`users`表中所有邮箱以`gmail.com`结尾的记录

21.在`users`表中添加一个`phone`字段,类型为字符串

22.向`users`表中插入一条记录,姓名为`John`, 年龄为`40`, 性别为`男`, 电话为`123-456-7890`

23.查询`users`表中所有记录,按照年龄从小到大排序

24.在`users`表中添加一个`created_at`字段,类型为时间戳

25.向`users`表中插入一条记录,姓名为`Jenny`, 年龄为`22`, 性别为`女`, 创建时间为当前时间

26.查询`users`表中创建时间在`2021-01-01`之后的记录

27.在`users`表中添加一个`updated_at`字段,类型为时间戳

28.将`users`表中`Mike`的电话改为`987-654-3210`, 更新`updated_at`字段为当前时间

29.查询`users`表中姓名为`Lucy`的记录的创建时间和更新时间

30.查询`users`表中所有记录的平均年龄和最大年龄

31.在`users`表中添加一个`address`字段,类型为字符串

32.向`users`表中插入一条记录,姓名为`Sam`, 年龄为`45`, 性别为`男`, 地址为`New York`

33.查询`users`表中地址为`New York`的记录

34.在`users`表中添加一个`salary`字段,类型为浮点数

35.向`users`表中插入一条记录,姓名为`Bob`, 年龄为`28`, 性别为`男`, 薪资为`5000.00`

36.查询`users`表中薪资在`4000.00`和`6000.00`之间的记录

37.在`users`表中添加一个`status`字段,类型为整数

38.向`users`表中插入一条记录,姓名为`Mary`, 年龄为`30`, 性别为`女`, 状态为`1`

39.查询`users`表中状态为`1`的记录数量

40.在`mydb`数据库中创建一个名为`age_index`的索引,以`age`字段为索引

41.在`users`表中添加一个`description`字段,类型为文本型

42.向`users`表中插入一条记录,姓名为`David`, 年龄为`22`, 性别为`男`, 描述为`This is a test`

43.查询`users`表中描述中包含`test`的记录

44.在`users`表中添加一个`last_login`字段,类型为时间戳

45.向`users`表中插入一条记录,姓名为`Linda`, 年龄为`27`, 性别为`女`, 最后登录时间为当前时间

46.查询`users`表中最后登录时间在`2021-01-01`之后的记录数量

47.在`users`表中添加一个`is_vip`字段,类型为布尔型

48.向`users`表中插入一条记录,姓名为`Peter`, 年龄为`35`, 性别为`男`, 是否为VIP为`true`

49.查询`users`表中是否为VIP的记录数量

50.在`users`表中添加一个`country`字段,类型为字符串,长度为`50`

 

1、查询所有学生信息

2、查询年龄大于23岁的学生学号、姓名和性别

3、查询年龄在19-27岁之间的学生信息

4、查询出张三、王五、赵六的学生信息

5、查询出性别为“男”,且年龄大于25的学生信息

6、查询出姓“王”的学生的所有课程的分数

7、查询出每个学生的平均分且排行

8、查询出“语文”成绩的最高分

9、查询出总分为第四名的学生信息

10、查询出哪个老师所带的课程总分最高

11、查询出总成绩高于张三的每个学生的总分且成绩排行

12、查询出选修课程数量小于5门课的学生信息

13、查询出总成绩最低的学生姓名、学号和年龄

14、查询出哪些学生的平均成绩高于75分

15、查询出成绩第一名的学生信息、和各科分数

16、查询出男生和女生各多少人

17、查询出女生的平均分、总分

18、查询出姓名一样的人的有几个

19、查询出没有成绩的学生有哪些人

20、查询出哪一个老师没有任何课程

 

1、查询所有学生信息
select * from student;

2、查询年龄大于23岁的学生学号、姓名和性别
select sid,sname,ssex from student;

3、查询年龄在19-27岁之间的学生信息
select * from student where sage between sage 19 and 27;
4、查询出张三、王五、赵六的学生信息
select * from student where sname in ("张三","王五","赵六");

5、查询出性别为“男”,且年龄大于25的学生信息
select * from student where ssex = "男" and sage > 25;

6、查询出姓“王”的学生的所有课程的分数
select sc.cid,sc.score from student
join sc on student.sid = sc.sid where student.sname like "王%"


7、查询出每个学生的平均分且排行
select student.sname,avg(sc.score) from student
join sc on student.sid = sc.sid group by sc.sid order by avg(sc.score) desc

8、查询出“语文”成绩的最高分
select max(sc.score) from sc
join course on sc.cid = course.cid where course.cname = "语文"


9、查询出总分为第四名的学生信息
select student.*,sum(sc.score) from student
join sc on student.sid = sc.sid
GROUP BY student.sid order by sum(sc.score) desc limit 3,1


10、查询出哪个老师所带的课程总分最高
select teacher.tname,sum(sc.score) from sc
join course on sc.cid = course.cid join teacher on course.tid = teacher.tid
GROUP BY sc.cid order by sum(sc.score) desc limit 1


11、查询出总成绩高于张三的每个学生的总分且成绩排行
select student.sname, sum(sc.score) from student
join sc on student.sid = sc.sid group by sc.sid
having sum(sc.score) >
(select sum(sc.score) from student
join sc on student.sid = sc.sid where student.sname = "张三")

 

12、查询出选修课程数量小于5门课的学生信息
select student.* from student
join sc on student.sid = sc.sid group by sc.sid HAVING count(sc.cid) <5


13、查询出总成绩最低的学生姓名、学号和年龄
select student.sname,student.sid,student.sage,sum(sc.score) from student
join sc on student.sid = sc.sid
group by sc.sid order by sum(sc.score) asc limit 1


14、查询出哪些学生的平均成绩高于75分
select student.sname,avg(sc.score) from student
join sc on student.sid = sc.sid
group by sc.sid having avg(sc.score)>75

 

15、查询出成绩第一名的学生信息、和各科分数
select student.*,course.cname,sc.score from student
join sc on student.sid = sc.sid join course on sc.cid = course.cid
where student.sid =
(select sc.sid from student
join sc on student.sid = sc.sid join course on sc.cid = course.cid
GROUP BY sc.sid ORDER BY sum(sc.score) desc limit 1)

 

16、查询出男生和女生各多少人
SELECT ssex,count(ssex) from student group by ssex


17、查询出女生的平均分、总分
select AVG(sc.score),sum(sc.score) from student
join sc on student.sid = sc.sid
where student.ssex = "女"

 

18、查询出姓名一样的人的有几个
select sname,count(sname) from student group by sname having count(sname) >1;


19、查询出没有成绩的学生有哪些人
select student.sid,student.sname from student
left join sc on student.sid = sc.sid where sc.sid is null

20、查询出哪一个老师没有任何课程
select teacher.tid,teacher.tname from teacher
left join course on teacher.tid = course.tid
where course.tid is null

标签:表中,users,练习,查询,命令,student,SQL,sc,sid
From: https://www.cnblogs.com/zlbstruggl/p/17496960.html

相关文章

  • Android强大的原生调试工具adb的常用命令
    ADB简介ADB(AndroidDebugBridge)是用于与Android设备进行通信和调试的命令行工具。以下是一些常用的ADB调试命令:常用命令列出链接的设备adbdevices:列出连接到计算机的Android设备列表。可以看到这里我连接了两个设备。进入设备的shell环境adbshell:进入设备的命令行shell......
  • 第七章 常用基本命令
    1.帮助命令‍1.1man获得帮助信息‍​​​​‍1.2help获得shell内置命令的帮助信息‍​​​​‍1.3常用快捷键​​‍2.其他命令可以上网去查找......
  • 基于 Flink CDC 构建 MySQL 到 Databend 的 实时数据同步
    这篇教程将展示如何基于FlinkCDC快速构建MySQL到Databend的实时数据同步。本教程的演示都将在FlinkSQLCLI中进行,只涉及SQL,无需一行Java/Scala代码,也无需安装IDE。假设我们有电子商务业务,商品的数据存储在MySQL,我们需要实时把它同步到Databend中。接下来的内......
  • 如何做mysql调优?绝命7招,让慢SQL调优100倍
    文章很长,且持续更新,建议收藏起来,慢慢读!疯狂创客圈总目录博客园版为您奉上珍贵的学习资源:免费赠送:《尼恩Java面试宝典》持续更新+史上最全+面试必备2000页+面试必备+大厂必备+涨薪必备免费赠送:《尼恩技术圣经+高并发系列PDF》,帮你实现技术自由,完成职业升级,薪......
  • 自动化平台总结(httprunner+djangorestframework+python3+Mysql+Vue)【基础构思】
    一、前言最近从零搭建了一个自动化测试平台,虽然不是第一次从零搭建,但是也从来没有进行过这类搭建的总结,还是记录一下,搭建过程中的一些问题和方法。方便以后总结和翻阅二、简介搭建的平台使用的是Python3.6,未来有空可能考虑加个java版本。前端用的Vue,主体是httprunner2.......
  • Mysql
    mysql8修改登陆host:updateusersethost='%'whereuser='root';ALTERUSER'root'@'localhost'IDENTIFIEDWITHmysql_native_passwordBY'设置的密码';Centos6安装二进制MySQL5.7由于centos6的yum源停更,索性安装个二进制的mysql5.71.下载mys......
  • 浅析GeoServer CVE-2023-25157 SQL注入
    简介GeoServer是一个开源的地图服务器,它是遵循OpenGISWeb服务器规范的J2EE实现,通过它可以方便的将地图数据发布为地图服务,实现地理空间数据在用户之间的共享。影响版本geoserver<2.18.72.19.0<=geoserver<2.19.72.20.0<=geoserver<2.20.72.21.0<=geoserver<2.21.42.22.0<=......
  • 【paramiko】基于paramiko封装SSH连接服务器执行命令
    1、官方文档paramiko·PyPIWelcometoParamiko’sdocumentation!—Paramikodocumentation 2、安装pipinstallparamiko 3、示例importparamiko#建立一个sshclient对象ssh=paramiko.SSHClient()#将信任的主机自动加入到host_allow列表,须放在connect......
  • Oracle19C PDB中普通用户可以通过sqlplus scott/tiger连接吗
     Oracle19CPDB中普通用户可以通过sqlplusscott/tiger连接吗 先说结论,目前我还没找到方式。研究了挺久,通过百度,通过mos上搜索,也想通过触发器来实现,发现都不行。 先说sys用户,是可以的。通过设置ORACLE_PDB_SID这个环境变量,可以实现sys直接登录后连接到指定的PDB上。[o......
  • 工作中用到过的Linux命令
    1、清屏ctrl+l或者clear 2、显示当前工作目录路径pwd#printworkingdirectory 3、创建目录mkdir目录名 4、创建多级目录mkdir-p目录1/目录2/目录3 5、删除空目录rmdir目录名 6、创建空文件touch1.txt 7、复制文件或目录......