//去重复查询
SELECT DISTINCT id FROM tablename1;
//按id升序
SELECT * FROM tablename1 ORDER BY id ASC;
//降
SELECT * FROM tablename1 ORDER BY id DESC;
//分组查询
SELECT * FROM tablename1 GROUP BY
#group by 用于对车讯的结果分组统计
#having 子句用于限制分组显示结果
#having 往往和group by 结合使用,可以对分组查询结果进行筛选
如果在SELEC语句中同时包含group by ,having, order by 那么他们执行的顺序是group by ,having, order by
在选择列中如果有列,表达式,和分组函数,那么这些列和表达式必须有一个出现在group by中,否则就会出错
#针对外键,请注意emp
#外键只能指向主键
#外键和主键的数据类型要一致
#修改值
UPDATE dept SET dname='qqq2' WHERE deptno=20
#批量查询
#显示标号为123,345,800...的雇员
方法一:select *from emp where no=123 or no=345 or no=800
方法二:select *from emp where no in(123,345,800)#效率高,简便
#逻辑操作符号
select * from emp where (sal>500 or job='manager') and ename like 'j%'
#取消重复行(distinct只能消除完全一样的行,保留一行(不是删除(查询)))
#显示姓名末尾为2的员工
SELECT * FROM emp WHERE ename LIKE '%3'
SELECT * FROM emp WHERE ename LIKE '___1%'
SELECT COUNT(*) FROM score;
#子查询是指嵌入在其他sql语句中的select语句,也叫嵌套查询
##########################################
多表查询
##########################################
#如果两张表所有相同的字段,则需要带表名(别名)
SELECT * FROM student st, score sc WHERE st.stuID=sc.stuID
#单行子查询
SELECT * FROM student WHERE classID = (SELECT classID FROM student WHERE stuID=1003)
#多行子查询
#DISTINCT去重复
SELECT * FROM score WHERE courseID IN (SELECT DISTINCT courseID FROM score WHERE course='数学')
#在from中使用子查询
#显示高于科目平均分的学生信息
#1.各个科目平均分数
#2.把上面的查询结果,当着一张临时表 对待
SELECT * FROM (SELECT AVG(score) score ,courseID courseID FROM score GROUP BY course) sg,score sc WHERE sc.score>sg.score AND sc.courseID=sg.courseID ORDER BY sc.courseID