Loading...  * 结构化查询语言(SQL语言)的分类 - DQL:数据查询语言 select from where - DML:数据操作语言 update insert delete,用于更新、新增、删除表中的数据 - DDL:数据定义语言 CREATE、DROP、ALTER,用于定义、销毁、修改数据库对象 - DCL:数据控制语言 GRANT和REVOKE,用于进行授权和收回权限 - TPL:事务控制语言 COMMIT和ROLLBACK,用于提交和回滚。 - select * from emp; *** - SELECT子句 表示所需检索的数据列。 - FROM子句 表示检索的数据来自哪个表。 - from 表名 - select 列名 - 语句:子句的集合,简单来说就是语句就是由子句组成的 select * from emp; - 子句:部分的SQL语句 from emp select * *** * SQL语句的书写规则:** - ①对象名和关键字不区分大小写 from/From/FrOm SeleCt/select - ②关键字最好使用大写 - ③关键字不可以缩写、分开以及跨行书写 - ④可以单行来书写,也可以书写多行,建议分多行书写 *** 1、查询所有员工信息 *是通配符表示所有列 select * from emp; SelEct * from EmP; 2、查询所有员工信息 select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp; --执行速度较快 3、查询所有员工的姓名和入职日期 (选择指定列) select ename,hiredate from emp; *** 表结构 oracle中的数据类型 数据库中的数据类型的作用:规定数据列能够存放数据的类型 NUMBER(4)整型 -10^4~10^4-1 NUMBER(7,2)浮点型 12323.11 VARCHAR2(10):字符类型 date:日期类型 EMP: empno: 雇员编号 ename: 雇员姓名 job: 工作 mgr: 经理编号 hiredate: 入职日期 sal: 工资 comm: 奖金 deptno: 部门编号 *** select * from dept; dept deptno: 部门编号 dname: 部门名称 loc: 部门地点 *** * 算术运算符 + — * / - 算术运算符优先级 * /> + - - 乘除优先于加减 - 相同优先权的表达式按照从左至右的顺序依次计算 - 括弧可以提高优先权,并使表达式的描述更为清晰 *** 4、查询所有员工薪资增长500之后的工资 select empno,ename,sal+500,sal from emp; 5、查询所有员工增长200之后的年薪(不计奖金) select ename,empno,sal,(sal+200)*12 from emp; *** 1.员工转正后,月薪上调20%,请查询出所有员工转正后的月薪。 select sal*1.2,sal from emp; 2.员工试用期6个月,转正后月薪上调20%,请查询出所有员工工作第一年的年薪所得(不考虑奖金部分,年薪的试用期6个月的月薪+转正后6个月的月薪) select (sal+sal*1.2)*6 from emp; *** * 空值NULL - 空值是指一种无效的、未赋值、未知的或不可用的值。 - 空值不同于零或者空格。 - 注意:和null做算数运算后得到的结果都为null 6、查询所有员工年薪包括奖金部分 select sal,ename,empno,sal*12+comm from emp; select sal,ename,empno,sal*12+nvl(comm,0) from emp; - 排除null对算术运算的影响 nvl(a,b):如果a为null用b替换,否者为a *** * 列别名 - 作用:更改结果集列名,增加可阅读性 + 语法: - 列名 as 别名 - 列名 别名 + 注意:以下三种情况列别名两侧需要添加双引号 - 列别名中包含有空格 - 列别名中要求区分大小写 - 列别名中包含有特殊字符 select sal,ename,empno,sal*12+nvl(comm,0) as 年薪 from emp; select sal,ename,empno,sal*12+nvl(comm,0) as yearSal from emp; select sal,ename,empno,sal*12+nvl(comm,0) yearSal from emp; select sal,ename,empno,sal*12+nvl(comm,0) "year Sal" from emp; --列别名有空格 select sal,ename,empno,sal*12+nvl(comm,0) "yearSal" from emp; --列别名中要求区分大小写 select sal,ename,empno,sal*12+nvl(comm,0) "$yearSal" from emp; --列别名中包含有特殊字符 *** 1.员工试用期6个月,转正后月薪上调20%,请查询出所有员工工作第一年的所有收入(需考虑奖金部分),要求显示列标题为员工姓名,工资收入,奖金收入,总收入。 select sal 工资收入,ename 员工姓名,empno 员工编号,sal*12+nvl(comm,0) 年薪 from emp; --------------------连接操作符------------------------------ || 作用:用来连接字符串与列 列与列 列与列 7、查询员工的工资信息,显示的结果为 员工姓名+员工工资(simth800) select (ename || sal) 工资 from emp; --字符串与列 8、查询员工的姓名信息,显示的结果为 员工姓名是员工(simth是员工) select ename || '是员工' from emp; ----------------------原义字符------------------------------ - 原义字符串是包含在SELECT列表中的一个字符、一个数字或一个日期。 - 日期和字符字面值必须用单引号引起来。 - 每个原义字符串都会在每个数据行输出中出现 9、查询员工的姓名信息,显示的结果为 员工姓名是员工(simth是员工) select ename || '是员工' from emp; select ename || 6666 from emp; 10、查询员工的工资信息,显示的结果为 员工姓名+员工工资是+员工工资(simth的工资是800) select ename || '的工资是' || sal 工资 from emp; --------------------------消除重复行--------------------------- - 在SELECT字句中使用关键字DISTINCT可消除重复行 11、查询有员工的部门 select distinct deptno from emp; select * from emp; select * from dept; --------------------------查看表结构---------------------- 注意:desc 表名命令必须去命令行窗口才能执行 desc 表名 1.员工试用期6个月,转正后月薪上调20%,请查询出所有员工工作第一年的所有收入(需考虑奖金部分),要求显示格式为:XXX的第一年总收入为XXX。 select sal,ename,empno,ename || '的第一年总收入为' || (sal*12+nvl(comm,0)) from emp; 2.查询员工表中一共有哪几种岗位类型。 select distinct job from emp; 最后修改:2020 年 11 月 18 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 0 如果觉得我的文章对你有用,请随意赞赏