美文网首页
数据库9.12

数据库9.12

作者: 榴莲臭豆腐 | 来源:发表于2017-09-12 18:39 被阅读0次

1、创建表

create table 表名(id int(4), name char(10) );

insert into 表名(id,name) values(值1,值2...),(),();

查询:

select * from 表名 where语句;

student;

+-----+--------+-----+-----------+------------+--------------+

| Id  | Name  | Sex | BirthYEAR | Department | Address      |

+-----+--------+-----+-----------+------------+--------------+

| 901 | 张老大 | 男  | 1985      | 计算机系  | 北京市海淀区 |

| 902 | 张老二 | 男  | 1986      | 中文系    | 北京市昌平区 |

| 903 | 张三  | 女  | 1990      | 中文系    | 湖南省永州市 |

| 904 | 李四  | 男  | 1990      | 英语系    | 辽宁省阜新市 |

| 905 | 王五  | 女  | 1991      | 英语系    | 福建省厦门市 |

| 906 | 王六  | 男  | 1988      | 计算机系  | 湖南省衡阳市 |

+-----+--------+-----+-----------+------------+--------------+

score;

+----+--------+--------+-------+

| Id | Stu_id | C_name | Grade |

+----+--------+--------+-------+

|  1 |    901 | 计算机 |    98 |

|  2 |    901 | 英语  |    80 |

|  3 |    902 | 计算机 |    65 |

|  4 |    902 | 中文  |    88 |

|  5 |    903 | 中文  |    95 |

|  6 |    904 | 计算机 |    70 |

|  7 |    904 | 英语  |    92 |

|  8 |    905 | 英语  |    94 |

|  9 |    906 | 计算机 |    90 |

| 10 |    906 | 英语  |    85 |

+----+--------+--------+-------+

1、查询student表的所有记录

select * from student;

2、查询student表的第2条到4条记录

limit a,b  a当前行  b 显示的行数  从当前行下一行开始显示

limit 1,3

select * from student limit 1,3;

练习:查询成绩表前三行数据

select * from score limit 0,3;

3、从student表查询所有学生的学号(id)、姓名(name)和院系(department)的信息

select id,name,department from student;

4、从student表中查询计算机系和英语系的学生的信息

select * from student where department='计算机系' or department='英语系';

5、从student表中查询年龄18~22岁的学生信息

select * from student where 2017-BirthYEAR between 18 and 22;

select * from student where 2017-BirthYEAR>=18 and 2017-BirthYEAR<=22;

count() sum()  max()  min avg  distinct()

mod 求余

select grade,(grade mod 3) from score;

select grade,(grade mod 3) from score where (grade mod 3) =0;

select..from ..(where)..group by ..having ..order by ..limit;

group by  分组  having 分组后进行的条件选择

order by ..asc

order by  列名 desc

对成绩表中各科成绩从高到低排序,如果成绩相同,则按照学号由小到大排序

select stu_id,grade,c_name from score order by c_name desc,grade desc,stu_id asc;

+--------+-------+--------+

| stu_id | grade | c_name |

+--------+-------+--------+

|    901 |    98 | 计算机 |

|    906 |    90 | 计算机 |

|    904 |    70 | 计算机 |

|    902 |    65 | 计算机 |

|    905 |    94 | 英语  |

|    904 |    92 | 英语  |

|    906 |    85 | 英语  |

|    901 |    80 | 英语  |

|    903 |    95 | 中文  |

|    901 |    88 | 中文  |

|    902 |    88 | 中文  |

+--------+-------+--------+

between  and

limit

6、从student表中查询每个院系有多少人

select count(*),Department from student group by Department;

7、从score表中查询每个科目的最高分

max(grade)

select max(grade),c_name from score group by c_name;

8、计算每个学生的总成绩

select sum(grade),stu_id from score group by stu_id;

总成绩大于150分的学生

select sum(grade),stu_id from score group by stu_id having sum(grade)>150;

哪一性别的学生人数是大于2人的?

select sex,count(*) from student group by sex having count(*)>2;

9、计算每个考试科目的平均成绩

select avg(grade),c_name from score group by c_name;

10、将计算机考试成绩按从高到低进行排序

select grade,c_name from score where c_name="计算机"  order by grade desc;

11、查询姓张或者姓王的同学的姓名、院系和考试科目及成绩

like

%全匹配

_ 单个字符匹配

name like “%18K%”

select goods_name from ecs_goods where goods_name like '____18K_____';

1、多表连接一般步骤

① 找涉及了哪些表

② 找表与表的对应关系

③ 建立连接关系

④ 写完整的SQL

注意点:

1、别名用法

2、一旦用了别名,select where 都要用别名了

3、如果查询的内容在多个表中都有相同的字段,那么必须指明是来自哪个表

多表查询:

1、男同学的考试科目

select c_name,sex from score,student where student.id=score.stu_id and sex="男";

select distinct c_name from score where stu_id in (select id from student where sex='男');

2、姓张同学的考试科目

select c_name from score,student where student.id=score.stu_id and name like "%张%";

3、同时学习英语和计算机的学生信息

select s1.* from student s1,score s2,score s3 where s1.id=s2.stu_id and s1.id=s3.stu_id and s2.c_name='计算机' and s3.c_name='英语';

练习:

1、女同学的考试科目

select distinct c_name from score,student where student.id=score.stu_id and sex='女';

2、同时学习中文和计算机的学生信息;

select s1.* from student s1,score s2,score s3 where s1.id=s2.stu_id and s1.id=s3.stu_id and s2.c_name='计算机' and s3.c_name='中文’;

3、姓王的同学并且有一科以上成绩大于80分的学生信息;

select distinct student.id,name,sex,birthyear,department,address from student,score where student.id=score.stu_id and name like '%王%' and grade>80;

1、查询李四的考试科目(c_name)和考试成绩(grade)

2、查询计算机成绩低于95的学生信息

3、查询都是湖南的学生的姓名、年龄、院系和考试科目及成绩

相关文章

  • 数据库9.12

    1、创建表 create table 表名(id int(4), name char(10) ); insert ...

  • 无标题文章

    9.12

  • 9.29 - 小结篇

    最后一篇日记是9.12, 之后9.12到9.19都在总结9.12之前遗留下的问题,并且在leetcode上创造了一...

  • 晚安

    9.12 晚安。

  • Sunset

    Sunset,9.12,2016

  • 2021-09-13

    今日主题:1-9.06-9.12总结,以及9.13-9.19计划。 9.06-9.12 做过的事情:1- 有两件事...

  • 9.12

    听了五大销售技巧,受益颇多,教授讲得生动形象,很到位,我很喜欢他的讲课方式,不止教,还会教你具体怎么用,例如用一个...

  • 9.12

    《儿童行为的塑造与矫正》(100-120页)继续学习正增强的作用。我们上课是一种师生互动的过程,在这个过程中,教室...

  • 9.12

    在沟通中,能给对方描述的越详细越好。 包括在组织语言时的逻辑关系,主次顺序...自己明不明白最重要的是看能不能给别...

  • 9.12

    今天学习了润总的自律!我检讨!我在前段时间给自己定制了21天的好习惯,小目标!结果我没能做到!沒有原因!就是沒做到...

网友评论

      本文标题:数据库9.12

      本文链接:https://www.haomeiwen.com/subject/bzfhsxtx.html