一张学生成绩表score,部分内容如下: name course grade 张三 操作系统 67 张三 数据结构 86 李四 软件工程 89
用一条SQL 语句查询出每门课都大于80 分的学生姓名
DDL(Data Definition Language): 数据定义语言 用来定义数据库对象: 数据库,表,列等。 关键字:create,drop, alter等。
DML(Data Manipulation Language): 数据操作语言 用来对数据库中的表进行增删改操作。 关键字:insert,delete,update等。
DQL(Data Query Language): 数据查询语言 用来查询数据库中表的记录(数据)。 关键字:select, where等
DCL(Data Control Language): 数据控制语言 用来定义数据库的访问控制权限和安全级别,及创建用户。 关键字: grant, revoke等
select 目标表的列名或列表达式序列
from 基本表名和(或)视图序列
[where 行条件表达式]
[group by 列名序列] [having 组条件表达式]
[order by 列名[asc | desc]],
排序采用 order by 子句,order by 后面跟上排序字段,排序字段可以放多个,多个采用逗号 间隔,order by 默认采用升序,如果存在 where 子句那么 order by 必须放到 where 语句的后 面。
order by 必须放到 group by 后面
则sql语句的执行顺序是:
2),3),4),1) ,5)
DELETE FROM waterinfo001; 清除 waterinfo001 表全部记录
DROP TABLE waterinfo001; 删除 waterinfo001 表
delete是数据操作语言,drop是数据定义语言
请取出 BORROW表中日期 (RDATE字段) 为当天的所有记录? RDATE字段为datetime型,包含日期与时间。
select * from BORROW where datediff(RDATE,getdate())=0;MySQL中DATEDIFF()函数语法为DATEDIFF(date1,date2), 返回两个日期之间的天数
例1
SELECT DATEDIFF('2008-12-29','2008-12-30') AS DiffDate;返回结果是-1
例2
SELECT DATEDIFF('2008-12-30','2008-12-29') AS DiffDate;返回结果是1
any表示有任何一个满足就返回true,all表示全部都满足才返回true
运动员ATHLETE(运动员编号 Ano,姓名Aname,性别Asex,所属系名 Adep)
项目 ITEM (项目编号Ino,名称Iname,比赛地点Ilocation)
成绩SCORE (运动员编号Ano,项目编号Ino,积分Score)
写出目前总积分最高的系名及其积分.
SELECT Adep,SUM(Score)FROM ATHLETE,SCORE WHERE ATHLETE.Ano=SCORE.Ano GROUP BY Adep HAVING SUM(Score)>= ALL(SELECT SUM(Score) FROM ATHLETE,SCORE WHERE ATHLETE.Ano=SCORE.Ano GROUP BY Adep);我的答案:
select a.adep, sum(s.score) total_score from score s left join athlete a on s.ano=a.ano group by a.adep order by total_score desc limit 1;有一张学生成绩表sc(sno 学号,class 课程,score 成绩),请查询出每个学生的英语、数学的成绩(行转列,一个学生只有一行记录)。
select sno, sum(if(class='english',score,0)) as english, sum( if(class='math',score,0) ) as math from sc where class in('english','math') group by sno;某打车公司将表drivers 中 驾驶里程(drivedistanced)超过5000里的司机信息转移到一张称为seniordrivers 的表中
select * into seniordrivers from drivers where drivedistanced >=5000;INSERT INTO 语句用于向表格中插入新的行。 INSERT INTO table_name VALUES (值1, 值2,…)
指定所要插入数据的列: INSERT INTO table_name (列1, 列2,…) VALUES (值1, 值2,…)
SELECT INTO 语句从一个表中选取数据,然后把数据插入另一个表中。 常用于创建表的备份复件或者用于对记录进行存档。
把所有的列插入新表 SELECT * INTO new_table_name [IN externaldatabase] FROM old_tablename
只把希望的列插入新表 SELECT column_name(s) INTO new_table_name [IN externaldatabase] FROM old_tablename