SQL数据库操作练习:学生信息管理系统
{"title":"Student(Sid,Sname,Sage,Ssex) 学生表\nCourse(Cid,Cname,Tid) 课程表\nSC(Sid,Cid,score) 成绩表\nTeacher(Tid,Tname) 教师表\n(1) 查询平均成绩大于 60 分的同学的学号和平均成绩;\n(2) 查询课程名称和对应的老师姓名\n(3) 查询同名同性学生名单,并统计同名人数\n(4) 删除“002”同学的“001”课程的成绩\n(5) 查询全部学生都选修的课程的课程号和课程名\n3 王五 女 25 广州\n4 薛六 女 20 Null\n5 王五 男 22 北京\n6 赵七 男 38 上海\n7 张四 女 23 北京\n(1) 写出创建数据库 info 的语句。\n(2) 写出创建该表的 sql 语句,其中 name 不能为空,id 为自增主键,性别不能为空。\n(3) 插入上面的表中的数据,写出 sql 语句\n(4) 写出 sql 语句,查询所有年龄大于 20 岁的男性员工。\n(5) 写出 sql 语句,查询所有年龄小于 30 岁的女性员工并按降序排列。\n(6) 写出 sql 语句,统计有地址的员工有多少名。\n(7) 写出 sql 语句,按照年龄倒序获取员工信息。\n(8) 写出 sql 语句,获取员工中哪个姓名具有重名现象,重名有多少个。\n(9) 写出 sql 语句,查询所有不姓张的员工。\n(10) 写出 sql 语句,查询住址为北京的第 2 到 5 条记录。\n(11) 写出 sql 语句,查询员工总数。\n(12) 写出 sql 语句,向表中添加一个字段 phone。\n(13) 写出 sql 语句,修改员工张四的住址为南京。\n(14) 写出 sql 语句,删除年龄大于 24 岁的女员工。\n(15) 修改字段 phone 的前五条电话号码为 18288888888y();\n }\n};解释每行代码,用中文内容:(1)查询平均成绩大于60分的同学的学号和平均成绩;\nsql\nSELECT Sid, AVG(score) AS 平均成绩\nFROM SC\nGROUP BY Sid\nHAVING AVG(score) > 60;\n\n\n(2)查询课程名称和对应的老师姓名\nsql\nSELECT Cname, Tname\nFROM Course\nINNER JOIN Teacher ON Course.Tid = Teacher.Tid;\n\n\n(3)查询同名同性学生名单,并统计同名人数\nsql\nSELECT Sname, Ssex, COUNT(*) AS 同名人数\nFROM Student\nGROUP BY Sname, Ssex\nHAVING COUNT(*) > 1;\n\n\n(4)删除“002”同学的“001”课程的成绩\nsql\nDELETE FROM SC\nWHERE Sid = '002' AND Cid = '001';\n\n\n(5)查询全部学生都选修的课程的课程号和课程名\nsql\nSELECT Cid, Cname\nFROM Course\nWHERE Cid IN (\n SELECT Cid\n FROM SC\n GROUP BY Cid\n HAVING COUNT(DISTINCT Sid) = (SELECT COUNT(*) FROM Student)\n);\n\n\n(1)创建数据库info的语句:\nsql\nCREATE DATABASE info;\n\n\n(2)创建该表的SQL语句,其中name不能为空,id为自增主键,性别不能为空:\nsql\nCREATE TABLE student (\n id INT PRIMARY KEY AUTO_INCREMENT,\n name VARCHAR(50) NOT NULL,\n age INT,\n sex VARCHAR(10) NOT NULL\n);\n\n\n(3)插入上面的表中的数据的SQL语句:\nsql\nINSERT INTO student (name, age, sex)\nVALUES ('张三', 20, '男'),\n ('李四', 25, '男'),\n ('王五', 30, '女'),\n ('赵六', 22, '女');\n\n\n(4)查询所有年龄大于20岁的男性员工的SQL语句:\nsql\nSELECT * FROM student\nWHERE age > 20 AND sex = '男';\n\n\n(5)查询所有年龄小于30岁的女性员工并按降序排列的SQL语句:\nsql\nSELECT * FROM student\nWHERE age < 30 AND sex = '女'\nORDER BY age DESC;\n\n\n(6)统计有地址的员工有多少名的SQL语句:\nsql\nSELECT COUNT(*) FROM student\nWHERE address IS NOT NULL;\n\n\n(7)按照年龄倒序获取员工信息的SQL语句:\nsql\nSELECT * FROM student\nORDER BY age DESC;\n\n\n(8)获取员工中哪个姓名具有重名现象,重名有多少个的SQL语句:\nsql\nSELECT name, COUNT(*) AS 重名数量\nFROM student\nGROUP BY name\nHAVING COUNT(*) > 1;\n\n\n(9)查询所有不姓张的员工的SQL语句:\nsql\nSELECT * FROM student\nWHERE name NOT LIKE '张%';\n\n\n(10)查询住址为北京的第2到5条记录的SQL语句:\nsql\nSELECT * FROM student\nWHERE address = '北京'\nLIMIT 1, 4;\n\n\n(11)查询员工总数的SQL语句:\nsql\nSELECT COUNT(*) FROM student;\n\n\n(12)向表中添加一个字段phone的SQL语句:\nsql\nALTER TABLE student\nADD COLUMN phone VARCHAR(20);\n\n\n(13)修改员工张四的住址为南京的SQL语句:\nsql\nUPDATE student\nSET address = '南京'\nWHERE name = '张四';\n\n\n(14)删除年龄大于24岁的女员工的SQL语句:\nsql\nDELETE FROM student\nWHERE age > 24 AND sex = '女';\n\n\n(15)修改字段phone的前五条电话号码为18288888888的SQL语句:\nsql\nUPDATE student\nSET phone = '18288888888'\nLIMIT 5;\n
原文地址: https://www.cveoy.top/t/topic/qe5x 著作权归作者所有。请勿转载和采集!