MYSQL常用语句及练习
mysql常用语句及练习
一、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课程的学生姓名。
更多推荐
所有评论(0)