一、mysql常用语句

创建,删除和最基本查询:

显示数据库     mysql->show databases;

创建数据库     mysql->create database db;

删除数据库  mysql->drop database db;

选择数据库     mysql->use db;

创建表         mysql->create table mytable(name varchar(20),sex(char(1),birth date);

删除表    mysql->drop table mytable;

显示表的内容   mysql->show tables;

显示表的结构   mysql->describe mytable;

更新:

1、对列的操作:

在一个表中增加一条字段 mysql->alter table yourtable add  name varchar(20)not null;

删除一个字段  mysql->alter table yourtable drop name ;

2、对行的操作:

插入一条记录   mysql->insert into mytable values('summer','m','1983-08-24');

删除一条记录  mysql->delete from mytable where name='summer';

修改一条记录  mysql->update mytable set sex='vm' where name='summer';

插入多条记录   mysql->insert into mytable  select *from yourtable;(

简单查询:

1.在查询结果中显示列名

a.用as关键字:select name as '姓名'   from students order by age

b.直接表示:select name '姓名'   from students order by age

.精确查找:

a.用in限定范围:select * from students where native in ('湖南', '四川')

b.between...and:select * from students where age between 20 and 30

c. 比较测试符:(包括=,<>,<,<=,>,>=)select * from students where name = '李山'

d.like:select * from students where name  like  '李%' (注意查询条件中有“%”,则说明是部分匹配,而且还有先后信息在里面,即查找以“李”开头的匹配项。所以若查询有“李”的所有对象,应该命令:'% 李%';若是第二个字为李,则应为'_李%'或'_李'或'_李_'。)

e.[]匹配检查符:select * from courses where cno like '[AC]%' (表示或的关系,与"in(...)"类似,而且"[]"可以表示范围,如:select * from courses where cno like '[A-C]%')注:关于这个字符我在mysql里用的时候mysql把它当两个普通自符处理的。

[^]stockname like '[^F-M]%' --------- (^排除指定范围)

a.count()求总数,如:select count(*)  from students (求学生总人数)

b.avg(列)求平均,如:select avg(mark)  from grades where cno=’B2’

c.max(列)和min(列),求最大与最小

二、sql练习

一 在数据库 school 中建立student , sc, course 表。 学生表、课程表、选课表属于数据库 School ,其各自的数据结构如下:

学生 Student (Sno,Sname,Ssex,Sage,Sdept) 

 

课程表 course(Cno,Cname,Cpno,Ccredit)

 

学生选课 SC(Sno,Cno,Grade)

 

修改sc的Gread类型

 

1 Student表的主码:sno

2 Course表的主码:cno

3 Sc表的主码:sno,cno

 

在student表中插入信息

 

在student表添加属性sbirthdate 类型 datetime

 

删除所有 JSJ 系的男生

 

 

删除“数据库原理”的课的选课纪录(选课记录由SC(课程表)的Cno(课程号)课程名字在course的cname)

 

1 修改 4001 学生的系科为: JSJ

 

张三的年龄加1岁,性别改为女。

 

修改ZY的1001课程的成绩为 93 分

 

查询年龄在19至21岁之间的女生的学号,姓名,年龄,按年龄从大到小排列。

 

查询姓名中第2个字为“明”字的学生学号、性别

 

3查询 1001课程没有成绩的学生学号、课程号

 

5按10分制查询学生的sno,cno,10分制成绩 (1-10分 为1 ,11-20分为2 ,30-39分为3,。。。90-100为10)

 

("new Grade"是Grade的新名字)

6查询 student 表中的学生共分布在那几个系中。(distinct)

 

7查询4001号学生1001,1002课程的成绩。

 

查询姓名中有“明”字的学生人数。

 

或者

 

计算‘JSJ’系的平均年龄及最大年龄。

 

计算每一门课的总分、平均分,最高分、最低分,按平均分由高到低排列

 

4计算 1001,1002 课程的平均分。

 

查询平均分大于80分的学生学号及平均分

 

统计有10位(返回结果行数count(*)=10)成绩大于85分以上的课程号。

 

统计平均分不及格的学生学号

​​​​​​​

 

统计有大于两门课不及格的学生学号

查询平均分及格的学生人数

 

查询没有选修1002 课程的学生的学生姓名

 

查询没有选修1001,1002课程的学生姓名。

 

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐