您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 市场营销 > 第三章带where条件的select语句
第三节带where条件的select语句1.where条件语法:select字段1,字段2,字段3……from表名where条件;2.比较运算,,=,=,=,例:SQLselectfirst_name,salaryfromemployeeswheresalary5000;题:查询学生表中,为计算机系的学生。SQLselect*fromstudentwheresdept='计算机';3.查询当前系统时间SQLselectsysdatefromdual;其中sysdate为系统时间,dual为虚表题:查询员工表中,雇佣日期为1994-8-16的员工。SQLselect*fromemployeeswherehire_date='16-8月-94';题:查询员工表中,first_name为“Steven”的用户。SQLselect*fromemployeeswherefirst_name='Steven';注意:1.在Oracle中,sql语句不区分大小写,但是,数据库中的记录内容是区分大小写的。2.日期类型的数据要用单引号表示,日期类型的格式必须与当前数据库的日期显示格式一致,也可以利用相应的函数转化(后面学)。4.between…and…查询记录中某一区域的数据,内容[]SQLselectfirst_name,salaryfromemployeeswheresalarybetween5000and10000;注意:其中between条件1and条件2。其中条件1=条件2。Notbetween…and….表示不再这个范围内的数据SQLselectfirst_name,salaryfromemployeeswheresalarynotbetween5000and10000;5.范围内原则关键字:inSQLselectfirst_name,salaryfromemployeeswheresalaryin(17000,4200,12000);否定时,则为notin题:SQLselectfirst_namefromemployeeswhereemployee_id||first_namein('100Steven','202Pat');6.模糊查询like关键字,通配符:_%通配符:_代表任意一个字符。通配符:%代表任意多个字符。题:查询学生表中姓张的学生。SQLselect*fromstudentwheresnamelike'张%';题:查询员工表中first_name以“E”开头的员工信息。SQLselect*fromemployeeswherefirst_namelike'E%';题:查询员工表中,job_id以AD_开头的员工信息。SQLselectfirst_name,job_idfromemployeeswherejob_idlike'AD_%';-----------错误写法正确写法:SQLselectfirst_name,job_idfromemployeeswherejob_idlike'AD\_%'escape'\';6.判断是否为空利用isnull与isnotnullSQLselectfirst_name,commission_pctfromemployeeswherecommission_pctisnull;SQLselectfirst_name,commission_pctfromemployeeswherecommission_pctisnotnull;7.逻辑运算符(and,not,or)题:查询员工表中job_id为SA_MAN,工资大于8000的员工。SQLselectjob_id,salaryfromemployeeswherejob_id='SA_REP'andsalary8000;题:查询学生表中,计算机系的男生。SQLselect*fromstudentwheresdept='计算机'andssex='男';题:在计算机系中,年龄在12到22岁之间,姓张或姓李的男生。SQLselect*fromstudentwheresdept='计算机'andsage=12andsage=22andsnamelike'张%'orsnamelike'李%'andssex='男';-------错,没有考虑优先级问题逻辑运算的优先级为:notandor正确写法:SQLselect*fromstudentwheresdept='计算机'andsage=12andsage=22and(snamelike'张%'orsnamelike'李%')andssex='男';8.排序语法:orderby需排序的字段asc或者desc;SQLselectfirst_name,salaryfromemployeesorderbysalaryasc;------asc表示升序排列SQLselectfirst_name,salaryfromemployeesorderbysalarydesc;------desc表示降序排列默认不写asc和desc,则与asc一致为升序排列,如下:SQLselectfirst_name,salaryfromemployeesorderbysalary;题:查询学生表,先按性别升序排列,再按年龄降序排列SQLselect*fromstudentorderbyssex,sagedesc;注意:1.如果字段中含有null值,则此字段降序排在表的最上边;升序排在最下边。2.orderby排序比较轻松,可以利用列名,列的位置,列的别名等排序。3.如果有过个字段进行排序,升序降序的字段要分别写上desc和asc如:SQLselect*fromstudentorderbyssexdesc,sagedesc;与SQLselect*fromstudentorderbyssexdesc,sage;是两条语句
本文标题:第三章带where条件的select语句
链接地址:https://www.777doc.com/doc-2182005 .html