精华内容
下载资源
问答
  • 学生表sql语句练习

    2020-09-08 00:05:27
    学生表sql语句练习 总结 干啥啥不行,想要编程第一名! 最近开始学写项目,常常sql出错,这就很烦!哈哈哈 所以多练吧!以下sql有些还能简化,请不要批斗我! 1.查询student表的所有记录 SELECT * from student 2....

    学生表sql语句练习


    总结
    干啥啥不行,想要编程第一名!
    最近开始学写项目,常常sql出错,这就很烦!哈哈哈
    所以多练吧!以下sql有些还能简化,请不要批斗我!

    表1,student
    在这里插入图片描述

    1.查询student表的所有记录
    SELECT * from student
    2.查询student表的第2条到4条记录
    select * from student LIMIT 1,3
    3.从student表查询所有学生的学号(id)、姓名(name)和院系(department)的信息
    SELECT id,name,department from student 
    4.从student表中查询计算机系和英语系的学生的信息
    SELECT * from  student where department='计算机系' or department='英语系'
    5.从student表中查询每个院系有多少人
    SELECT department,count(*) from student GROUP BY department
    6.从score表中查询每个科目的最高分
    SELECT c_name,max(grade) from score GROUP BY c_name
    7.查询李四的考试科目(c_name)和考试成绩(grade)
    select name,c_name,grade FROM score t1 join student t2 on t1.stu_id=t2.id and t2.name='李四'
    select name,c_name,grade FROM score join student on score.stu_id=student.id and student.name='李四'
    8.查询所有学生的信息和考试信息
    select * from student,score WHERE score.stu_id=student.id
    9.计算每个学生的总成绩
    select t2.name,sum(t1.grade) from score t1 join student t2 on t1.stu_id=t2.id GROUP BY t2.name
    10.计算每个考试科目的平均成绩
    select c_name,AVG(grade) from score GROUP BY c_name
    11.查询计算机成绩低于95的学生信息
    select * from student,score where score.stu_id=student.id and score.grade<95 and score.c_name='计算机'
    12.查询同时参加计算机和英语考试的学生的信息
    select * from student where id in (
    select stu_id from score where c_name ='计算机' and stu_id in(
    select stu_id from score where c_name ='英语'));
    
    SELECT c.aid,c.aname from (SELECT a.id aid,a.name aname from student a JOIN score b on a.id=b.stu_id where b.c_name='计算机') c 
    join (SELECT a.id bid,a.name bname from student a JOIN score b on a.id=b.stu_id where b.c_name='英语') d
    on c.aid=d.bid
    13.将计算机考试成绩按从高到低进行排序
    SELECT * from score  where c_name='计算机' ORDER BY grade DESC
    14.查询姓张或者姓王的同学的姓名、院系和考试科目及成绩
    select name,department,c_name,grade from student,score where score.stu_id=student.id 
    and student.name like "%张%" or student.name like "%王%"
    15.查询都是湖南的学生的姓名、年龄、院系和考试科目及成绩
    select name,birth,department,c_name,grade,address from student,score 
    where score.stu_id=student.id and address like "%湖南%"
    
    
    
    展开全文
  • 学生表 课程表 成绩表 教师表 50个常用sql语句建表Student(S#,Sname,Sage,Ssex) 学生表 Course(C#,Cname,T#) 课程表 SC(S#,C#,score) 成绩表 Teacher(T#,Tname) 教师表---- If database exists the same name ...

    学生表 课程表 成绩表 教师表 50个常用sql语句

    建表

    Student(S#,Sname,Sage,Ssex) 学生表
    Course(C#,Cname,T#) 课程表
    SC(S#,C#,score) 成绩表
    Teacher(T#,Tname) 教师表

    ---- If database exists the same name datatable deletes it.
    IF EXISTS(SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'Student') DROP TABLE Student;
    
    ---- Create TABLE
    create table Student(S# varchar(20),Sname varchar(10),Sage int,Ssex varchar(2))

    关于表的50问

    1. 查询”001”课程比”002”课程成绩高的所有同学的学号:

      SELECT a.S#
      FROM (
      SELECT s#, score
      FROM SC
      WHERE C# = '001'
      ) a, (
        SELECT s#, score
        FROM SC
        WHERE C# = '002'
        ) b
      WHERE a.score > b.score AND a.s# = b.s#;
    2. 查询平均成绩大于60分的同学的学号和平均成绩:

      SELECT S#, avg(score)
      FROM sc
      GROUP BY S#
      HAVING avg(score) > 60;

      通过GROUP BY子句,可以让SUM、COUNT、MAX、AVG等聚合函数对属于一组的是数据起作用.属于同一同学的成绩将只能返回一行值,其中除S#字段,其他字段通过聚合函数返回.

      HAVING子句可以让我们筛选成组后的各组数据,WHERE子句在聚合前先筛选记录.也就是说作用在GROUP BY 子句和HAVING子句前.而 HAVING子句在聚合后对组记录进行筛选。

    3. 查询”李”姓老师的个数:

      SELECT count(DISTINCT (Tname))
      FROM Teacher
      WHERE Tname LIKE '李%';

      在表中可能包含重复值,关键字distinct用于返回唯一不同的值.distinct语句中select显示的字段只能是distinct指定的字段,其他字段是不可能出现的.
      select distinct name, id from A返回name+id不同的行

    4. 查询所有同学的学号、姓名、选课数、总成绩:

      SELECT stu.S#, stu.Sname, COUNT(scs.C#), SUM(scs.score)
      FROM Student stu
      LEFT JOIN SC scs
      ON stu.S# = scs.S#
      GROUP BY stu.S#, stu.Sname
      • inner join,满足交换律,”A inner join B”和”B inner join A”是相等的
      • left outer join,产生左表(Student)的完全集,右表(SC)匹配的则有值,没有匹配的则NULL值
      • full outer join,产生左右表的全集,没有匹配的则NULL,满足交换律.
    5. 查询没选修”李明”老师课程的学生的学号与姓名:

      SELECT stu.S#, stu.Sname
      FROM Student stu
      WHERE stu.S# NOT IN (
      SELECT DISTINCT scs.S#
      FROM SC scs, Course crs, Teacher tch
      WHERE scr.C# = crs.C# AND tch.T# = crs.T# AND tch.Tname = '李明'
      );
    6. 查询各科成绩最高分与最低分:课程ID,最高分,最低分

    参考资料:

    展开全文
  • 在数据库中使用SQL语句创建学生表代码如下:(学号 char(12) primary key,姓名 char(6) not null,性别 char(2) check(性别 IN ('男','女')),班级 char(15))相关表的创建:create table 成绩表(学号 char(12)...

    5268f80b9b1e01f982625ef6fac83ca1.png

    f0614122b2c5738a8fbc8c5884365449.png

    在数据库中使用SQL语句创建学生表代码如下:(

    学号 char(12) primary key,

    姓名 char(6) not null,

    性别 char(2) check(性别 IN ('男','女')),

    班级 char(15)

    )

    相关表的创建:create table 成绩表

    (

    学号 char(12)references 学生表(学号),

    课程号 char(2)references 课程表(课程号),

    成绩 int default(30),

    primary key (学号,课程号)

    )

    create table 课程表

    (

    课程号 char(2) primary key,

    课程名 char(20),

    学分 int check(学分>=1 and 学分<=5 )

    )

    相关操作:insert into 学生表 values('201190609112','张xl','男','文专计1111')

    insert into 学生表 values('201190609113','张**','女','文专计1111')

    insert into 成绩表 values('201190609112','01',100)

    insert into 成绩表 values('201190609112','02',99)

    insert into 成绩表 values('201190609112','03',88)

    insert into 课程表 values('01','数据库系统',3)

    insert into 课程表 values('02','vb.net',4)

    insert into 课程表 values('03','java',4)

    select *from 成绩表

    select 姓名,课程名,成绩

    from 学生表,课程表,成绩表

    where (学生表.学号=成绩表.学号 and 课程表.课程号=成绩表.课程号)

    order by 成绩 desc

    select avg(成绩) 平均分,max(成绩) 最高分,min(成绩) 最低分

    from 成绩表

    where 学号='201190609112

    更多MySQL相关技术文章,请访问MySQL教程栏目进行学习!

    展开全文
  • SQL语句练习之学生表

    2020-02-25 20:16:18
    SQL语句练习之学生表 CREATE TABLE teacher ( id int(11) NOT NULL primary key auto_increment, name varchar(20) not null unique ); CREATE TABLE student ( id int(11) NOT NULL primary key auto_increment, ...

    SQL语句练习之学生表

    CREATE TABLE teacher (
    id int(11) NOT NULL primary key auto_increment,
    name varchar(20) not null unique
    );
    CREATE TABLE student (
    id int(11) NOT NULL primary key auto_increment,
    name varchar(20) NOT NULL unique,
    city varchar(40) NOT NULL,
    age int
    ) ;
    CREATE TABLE course(
    id int(11) NOT NULL primary key auto_increment,
    name varchar(20) NOT NULL unique,
    teacher_id int(11) NOT NULL,
    FOREIGN KEY (teacher_id) REFERENCES teacher (id)
    );

    CREATE TABLE studentcourse (
    student_id int NOT NULL,
    course_id int NOT NULL,
    score double NOT NULL,
    FOREIGN KEY (student_id) REFERENCES student (id),
    FOREIGN KEY (course_id) REFERENCES course (id)
    );

    insert into teacher values(null,‘关羽’);
    insert into teacher values(null,‘张飞’);
    insert into teacher values(null,‘赵云’);

    insert into student values(null,‘小王’,‘北京’,20);
    insert into student values(null,‘小李’,‘上海’,18);
    insert into student values(null,‘小周’,‘北京’,22);
    insert into student values(null,‘小刘’,‘北京’,21);
    insert into student values(null,‘小张’,‘上海’,22);
    insert into student values(null,‘小赵’,‘北京’,17);
    insert into student values(null,‘小蒋’,‘上海’,23);
    insert into student values(null,‘小韩’,‘北京’,25);
    insert into student values(null,‘小魏’,‘上海’,18);
    insert into student values(null,‘小明’,‘北京’,20);

    insert into course values(null,‘语文’,1);
    insert into course values(null,‘数学’,1);
    insert into course values(null,‘生物’,2);
    insert into course values(null,‘化学’,2);
    insert into course values(null,‘物理’,2);
    insert into course values(null,‘英语’,3);

    insert into studentcourse values(1,1,80);
    insert into studentcourse values(1,2,90);
    insert into studentcourse values(1,3,85);
    insert into studentcourse values(1,4,78);
    insert into studentcourse values(2,2,53);
    insert into studentcourse values(2,3,77);
    insert into studentcourse values(2,5,80);
    insert into studentcourse values(3,1,71);
    insert into studentcourse values(3,2,70);
    insert into studentcourse values(3,4,80);
    insert into studentcourse values(3,5,65);
    insert into studentcourse values(3,6,75);
    insert into studentcourse values(4,2,90);
    insert into studentcourse values(4,3,80);
    insert into studentcourse values(4,4,70);
    insert into studentcourse values(4,6,95);
    insert into studentcourse values(5,1,60);
    insert into studentcourse values(5,2,70);
    insert into studentcourse values(5,5,80);
    insert into studentcourse values(5,6,69);
    insert into studentcourse values(6,1,76);
    insert into studentcourse values(6,2,88);
    insert into studentcourse values(6,3,87);
    insert into studentcourse values(7,4,80);
    insert into studentcourse values(8,2,71);
    insert into studentcourse values(8,3,58);
    insert into studentcourse values(8,5,68);
    insert into studentcourse values(9,2,88);
    insert into studentcourse values(10,1,77);
    insert into studentcourse values(10,2,76);
    insert into studentcourse values(10,3,80);
    insert into studentcourse values(10,4,85);
    insert into studentcourse values(10,5,83);

    -- 1、查询平均成绩大于70分的同学的学号和平均成绩
    SELECT student.`id`,AVG(score) FROM student,studentcourse WHERE student.`id` = student_id GROUP BY student_id HAVING AVG(score) > 70;
    
    -- 2、查询所有同学的学号、姓名、选课数、总成绩
    SELECT student_id 学号,NAME,COUNT(course_id) 选课数,SUM(score) 总成绩 FROM student,studentcourse WHERE id = student_id GROUP BY id;
    
    -- 3、查询没学过关羽老师课的同学的学号、姓名 *******
    能先选出上过关羽课的
    
    SELECT student.`id`,student.`name` FROM student WHERE student.`id` NOT IN (SELECT DISTINCT student_id FROM course,studentcourse WHERE teacher_id = 1 AND course.`id` = course_id);
    
    -- 4、查询学过赵云老师所教课的同学的学号、姓名
    SELECT DISTINCT student.id 学号,student.`name` FROM student,studentcourse,course,teacher WHERE student_id = student.`id` AND course_id = course.`id` AND teacher_id = teacher.`id` AND teacher.`id` = 3;
    
    -- 5、查询没有学三门课以上的同学的学号、姓名
    SELECT student_id,student.`name` FROM student,studentcourse WHERE student.`id` = student_id GROUP BY student_id HAVING COUNT(course_id) <= 3;
    
    -- 6、查询各科成绩最高和最低的分
    SELECT MAX(score),MIN(score),course_id FROM studentcourse GROUP BY course_id;
    
    -- 7、查询学生信息和平均成绩
    SELECT student.* ,AVG(score) FROM student,studentcourse WHERE student.`id` = student_id GROUP BY student_id;
    
    -- 8、查询上海和北京学生数量
    SELECT city, COUNT(city) FROM student WHERE city = '上海' OR city = '北京' GROUP BY city;
    
    -- 9、查询不及格的学生信息和课程信息
    SELECT student.*,course.* FROM student,course,studentcourse WHERE student.`id` = student_id AND course.`id` = course_id AND score < 60;
    
    -- 10、统计每门课程的学生选修人数(超过四人的进行统计)
    SELECT course_id,num FROM (SELECT course_id,COUNT(student_id) AS num FROM studentcourse GROUP BY course_id) AS t1 WHERE num > 4 GROUP BY course_id;
    
    展开全文
  • 查询student中所有李姓的学生SQL语句怎么写1、使用left()函数来检索。表格如图:代码如下:left(b,1) 即 取 列字符的第一个字。2、使用 like 模糊查询
  • 新建表sql语句

    千次阅读 2017-06-13 15:57:09
    新建学生表(student):create table student ( id int not null, name varchar2(50), sex varchar2(25), birthday varchar2(225), createtime timestamp, primary key(id) );给表和字段添加注释: <!--给表添加注释...
  • sql语句练习50题(Mysql版)

    万次阅读 多人点赞 2017-12-19 00:11:31
    习题来源于网络,sql语句是自己写的。欢迎指正。 表名和字段 –1.学生表 Student(s_id,s_name,s_birth,s_sex) –学生编号,学生姓名, 出生年月,学生性别 –2.课程表 Course(c_id,c_name,t_id) – –课程编号, ...
  • 基本sql语句练习(学生表

    千次阅读 2019-07-28 15:55:07
    基本sql语句练习 1.学生表的基本操作 老老实实把下面的打完,相信我。 -- 创建表 CREATE TABLE t_stu( -- 列名 类型 主键 自动增长 注释 stu_id BIGINT PRIMARY KEY auto_increment COMMENT '学生id', -- 不允许...
  • 在数据库中使用SQL语句创建学生表代码如下:(学号 char(12) primary key,姓名 char(6) not null,性别 char(2) check(性别 IN ('男','女')),班级 char(15))相关表的创建:create table 成绩表(学号 char(12)...
  • 鉴于网上MySQL全方位练习(学生表 教师表 课程表 分数表)版本多为老版本(oracle/hive),或者不为46条的短版本,于是我基于mysql 的8.0版本重写一遍,并且部分语句添加了自己的分解步骤, 适合 MySQL 小白入门,不...
  • SQL语句创建学生表

    万次阅读 2018-11-04 15:45:50
    create table Student(  Sno char(10),  Sname varchar(20),  Ssex char(2),  Sage tinyint,  Sdept varchar(20),  ) insert into Student values('201215121','李勇','男','20','CS'), ...
  • 表(一)Student (学生表) 属性名 数据类型 可否为空 含 义 Sno Varchar2(3) 否 学号(主键) Sname Varchar2(8) 否 学生姓名 ...
  • Student(S#,Sname,Sage,Ssex) 学生表 Course(C#,Cname,T#) 课程表 SC(S#,C#,score) 成绩表 Teacher(T#,Tname) 教师表 create table Student(S# varchar(20),Sname varchar(10),Sage int,Ssex varchar(2...
  • Student(S#,Sname,Sage,Ssex) 学生表 Course(C#,Cname,T#) 课程表 SC(S#,C#,score) 成绩表 Teacher(T#,Tname) 教师表 create table Student(S# varchar(20),Sname varchar(10),Sage int,Ssex varchar(2)) ...
  • color:rgb(39,158,176)">sql语句多表查询(学生表/课程表/教师表/成绩表 )作者:海豚湾孬蛋 问题及描述: --1.学生表 Student(S#,Sname,Sage,Ssex) --S# 学生编号,Sname 学生姓名,Sage 出生年月,Ssex 学生...
  • student(学生表)、teacher(教师表)、course(课程表)、sc(分数表) 2、创建表 //学生表 create table student( sno varchar2(10) primary key, sname varchar2(20), sage number(2), ssex varchar2(5) ); //教师表 ...
  • ![图片说明](https://img-ask.csdn.net/upload/201706/10/1497072396_281333.jpg) 请问从学生表中查出每个学生的成绩的sql语句怎么写? 按照图上的要求怎么编写sql,麻烦大神提供一下思路

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,802
精华内容 1,520
关键字:

学生表sql语句