//去重复查询 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只能消除完全一样的行,保留一行(不是删除(查询)))
#like模糊查询 #显示姓名末尾为2的员工 SELECT * FROM emp WHERE ename LIKE '%3' #显示姓名第4位为1的员工 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

