Oracle是甲骨文公司大型关系数据库systemdheehttp://IP:5560/isqlplus导入数据库脚本:@脚本路径所有的关系数据对表的操作使用的都是SQL语句查询表使用SQL语句中的SELECT语句基本SELECT语句:SELECT列名,列名,……|*|算术表达式FROM表名--查询employees表中所有员工的last_name,salarySELECTLAST_NAME,SALARYFROMEMPLOYEES;Selectlast_name,salaryFromemployees;--查询departments表中所有部门的信息SELECT*FROMDEPARTMENTS;--算术运算符:+,-,*,/+:只有加法运算的功能,没有连接作用/:SELECT5/2FROMDUAL;--查询employees表中所有员工的last_name,job_id,salary,年薪(salary*12)SELECTLAST_NAME,JOB_ID,SALARY,SALARY*12FROMEMPLOYEES;/*列别名1.列名列别名2.列名AS列别名注意:当列别名要区分大小写,或者列别名中包含了特殊字符,或者列别名为关键时,需要将别名放在一对双引号中双引号在关系数据库中表示列别名*/SELECTLAST_NAMEUSER,JOB_ID,SALARY,SALARY*12ASYEARSALFROMEMPLOYEES;--字符串:一对单引号SELECT'DHEE'AS名字,'大连'AScityFROMDUAL;--连接符:||SELECTFIRST_NAME||'.'||LAST_NAMEAS姓名FROMEMPLOYEES;--屏蔽查询结果中重复记录:DISTINCTSELECTDISTINCTJOB_IDFROMEMPLOYEES;SELECTDISTINCTJOB_ID,SALARYFROMEMPLOYEES;--过滤与排序--过滤:WHERE子句SELECTFROM[WHERE条件];--查询employees表中50号部门员工的last_name,salary,department_idSELECTLAST_NAME,SALARY,DEPARTMENT_IDFROMEMPLOYEESWHEREDEPARTMENT_ID=50;--查询employees表中所有工资大于10000的员工的last_name,job_id,salarySELECTLAST_NAME,JOB_ID,SALARYFROMEMPLOYEESWHERESALARY10000;--查询employees表中king员工的employee_id,salary,department_idSELECTEMPLOYEE_ID,SALARY,DEPARTMENT_IDFROMEMPLOYEESWHERELAST_NAME='King';--查询条件为字符串时,查询的值必须放在一对单引号中,并且查询的内容区分大小写--查询employees表中哪些员工的职位(job_id)为it_prog,显示这些员工的last_name,job_id,salarySELECTLAST_NAME,JOB_ID,SALARYFROMEMPLOYEESWHEREJOB_ID='IT_PROG';SELECTLAST_NAME,HIRE_DATEFROMEMPLOYEESWHEREHIRE_DATE='07-6月-94';--查询条件为日期类型时,查询的值必须放在一对单引号中,并且日期格式必须为Oracle默认的日期格式。--Oracle默认的日期格式为:DD-MON-RR--查询employees表中97年以后入职的员工的last_name,hire_date(包含97年)SELECTLAST_NAME,HIRE_DATEFROMEMPLOYEESWHEREHIRE_DATE='01-1月-97';--BETWEEN...AND...:使列大于等于一个值,并且小于等于另一个值(包含边界值)--查询employees表中工资在9000到12000的员工的last_name,salarySELECTLAST_NAME,SALARYFROMEMPLOYEESWHERESALARYBETWEEN9000AND12000;--查询employees表中95年到97年入职员工的last_name,hire_date(包含95年与97年)SELECTLAST_NAME,HIRE_DATEFROMEMPLOYEESWHEREHIRE_DATEBETWEEN'01-1月-95'AND'31-12月-97';--IN(值列表):使列与列表中任意一个值进行匹配--查询employees表中在20,50,90部门工作的员工的last_name,salary,department_idSELECTLAST_NAME,SALARY,DEPARTMENT_IDFROMEMPLOYEESWHEREDEPARTMENT_IDIN(20,50,90);--查询employees表中职位(job_id)为it_prog或st_clerk或sa_rep的员工的last_name,job_id,salarySELECTLAST_NAME,JOB_ID,SALARYFROMEMPLOYEESWHEREJOB_IDIN('IT_PROG','ST_CLERK','SA_REP');--LIKE:模糊查询/*%:任意长度的任意字符_:一个长度的任意字符*/SELECTEMPLOYEE_ID,LAST_NAME,SALARYFROMEMPLOYEESWHERELAST_NAMELIKE'_a%';--查询employees表中倒数第三个字符为o的员工的last_nameSELECTLAST_NAMEFROMEMPLOYEESWHERELAST_NAMELIKE'%o__';SELECTLAST_NAMEFROMEMPLOYEESWHERELAST_NAMELIKE'K%';--查询employees表中job_id中包含A_的员工的last_name,job_idSELECTLAST_NAME,JOB_IDFROMEMPLOYEESWHEREJOB_IDLIKE'%A/_%'ESCAPE'/';--ISNULL:--NULL,0,''--NULL:与类型无关,表示未知或不确定。--查询employees表中所有员工的last_name,departmnet_idSELECTLAST_NAME,SALARY,DEPARTMENT_IDFROMEMPLOYEESWHEREDEPARTMENT_IDISNULL;--AND,OR,NOT--查询employees表中工资在9000到12000的员工的last_name,salarySELECTLAST_NAME,SALARYFROMEMPLOYEESWHERESALARYBETWEEN9000AND12000;SELECTLAST_NAME,SALARYFROMEMPLOYEESWHERESALARY=9000ANDSALARY=12000;--查询employees表中在20,50,90部门工作的员工的last_name,salary,department_idSELECTLAST_NAME,SALARY,DEPARTMENT_IDFROMEMPLOYEESWHEREDEPARTMENT_IDIN(20,50,90);SELECTLAST_NAME,SALARY,DEPARTMENT_IDFROMEMPLOYEESWHEREDEPARTMENT_ID=20ORDEPARTMENT_ID=50ORDEPARTMENT_ID=90;--查询employees表中last_name中包含A(不区分大小写)的员工的last_nameSELECTLAST_NAMEFROMEMPLOYEESWHERELAST_NAMELIKE'%A%'ORLAST_NAMELIKE'%a%';--查询employees表中工资在5000-12000之间,并且在20或50号部门工作的员工的last_name,salary,department_idSELECTLAST_NAME,SALARY,DEPARTMENT_IDFROMEMPLOYEESWHERESALARYBETWEEN5000AND12000ANDDEPARTMENT_IDIN(20,50);SELECTLAST_NAME,SALARY,DEPARTMENT_IDFROMEMPLOYEESWHERE(SALARY=5000ANDSALARY=12000)AND(DEPARTMENT_ID=20ORDEPARTMENT_ID=50);--查询employees表中工资不在9000-12000之间的员工的last_name,salarySELECTLAST_NAME,SALARYFROMEMPLOYEESWHERENOTSALARYBETWEEN9000AND12000;--排序:ORDERBY子句SELECT3FROM1[WHERE]2[ORDERBY排序列]4/*升序:ASC,默认为升序降序:DESC*/SELECTLAST_NAME,SALARYASsalFROMEMPLOYEESWHERESALARY10000ORDERBYsalDESC;SELECTLAST_NAME,HIRE_DATEFROMEMPLOYEESORDERBYHIRE_DATEDESC;SELECTLAST_NAMEFROMEMPLOYEESORDERBYLAST_NAMEDESC;/*1.ORDERBY后面可以放列名2.ORDERBY后面可以放列别名(注意大小写)3.ORDERBY后面可以放查询结果中列的序号*/--查询employees表中所有员工的last_name,job_id,department_id,salary,结果按部门升序,工资降序排序SELECTLAST_NAME,JOB_ID,DEPARTMENT_ID,SALARYFROMEMPLOYEESORDERBYDEPARTMENT_IDASCNULLSFIRST,SALARYDESC;SELECTLAST_NAME,JOB_ID,DEPARTMENT_ID,SALARYFROMEMPLOYEESORDERBYDEPARTMENT_IDDESCNULLSLAST,SALARYDESC;--NULLSFIRST/NULLSLAST--单行函数:SELECTLAST_NAME,UPPER(LAST_NAME)--将参数的值变为大写FROMEMPLOYEES;SELECTLAST_NAME,LOWER(LAST_NAME)--将参数的值变为小写FROMEMPLOYEES;--查询employees表中last_name中包含A(不区分大小写)的员工的last_nameSELECTLAST_NAMEFROMEMPLOYEESWHEREUPPER(LAST_NAME)LIKE'%A%';SELECTLAST_NAMEFROMEMPLOYEESWHERELOWER(LAST_NAME)LIKE'%a%';SELECTINITCAP('abcabc!ABC#ABC$ABC%ABC…^ABC')--将单词的单字母变为大写FROMDUAL;SELECTLAST_NAME,LENGTH(LAST_NAME)FROMEMPLOYEES;SELECTLENGTH('中国')--求字符数FROMDUAL;SELECTLENGTHB('中国')--求字节数FROMDUAL;SELECTLAST_NAME,SUBSTR(LAST_NAME,3)--截取字符串:从第N位开始截取一直截取到最后FROMEMPLOYEES;SELECTLAST_NAME,SUBSTR(LAST_NAME,3,2)--截取字符串:从第N位