emp

Oracle_SQL92_连接查询

我与影子孤独终老i 提交于 2019-12-17 02:50:06
Oracle _SQL92 _连接查询 笛卡儿积 -- 笛卡尔积 select * from emp ; ----14 select * from dept ; ----4 select * from emp , dept ; ----56 等值连接 -- 等值连接(用两张表都存在的列进行等值连接) select * from emp , dept where emp.deptno = dept.deptno ; -- 查询员工的姓名,薪水,部门编号,部门名称 select ename , sal , emp.deptno , dname from emp , dept where emp.deptno = dept.deptno ; -- 给表起了别名(不能加 as),就不能使用原来的名字了 select ename , sal , e.deptno , dname from emp e , dept d where e.deptno = d.deptno ; 非等值连接 -- 非等值连接(用两张表都存在的列进行非等值连接) --查询员工的姓名,职位,薪资,薪资等级 select e.ename , e.job , e.sal , s.grade from emp e , salgrade s where e.sal >= s.losal and e.sal <= s.hisal

Oracle数据库4--多表关联

我们两清 提交于 2019-12-16 19:40:31
1. 92语法多表关联 1.1笛卡尔积 -- 笛卡尔积 select * from emp,dept 1.2等值连接 -- 等值连接 -- 需求:查询雇员的部门名称 select e.ename,e.deptno,d.dname from emp e,dept d where e.deptno = d.deptno 1.3不等值连接 -- 不等值连接 -- 查询每个雇员的薪资等级 select e.ename,e.sal,sg.grade from emp e,salgrade sg where e.sal >= sg.losal and e.sal <= sg.hisal -- where e.sal between sg.losal and sg.hisal 1.4外连接 左外连接:左边的表作为主表,右边表作为从表,主表数据都显示,从表数据没有,用null填充,用+号表示。 -- 左外连接(B) -- 需求:查询所有部门的雇员 select * from dept d,emp e where d.deptno = e.deptno(+) 右外连接: 右边的表作为主表,左边表作为从表,主表数据都显示,从表数据没有,用null填充,用+号表示。 -- 右外连接(B) select * from emp e,dept d where e.deptno(+) = d.deptno; 1

SQL语句之查询(SELECT)

↘锁芯ラ 提交于 2019-12-16 15:48:13
目录 SQL语句之查询(SELECT) 简单查询 限定查询 模糊查询 排序查询 多表查询 SQL语句之查询(SELECT) SQL 是用于访问和处理数据库的标准计算机语言; 中文:结构化查询语言;英文全称:Structured Query Language; 而其中的核心就是查询。 简单查询 SELECT 字段,字段,字段... [SELECT 子句] FROM EMP;(数据来源) [FROM 子句] 以上两个语句执行时,先执行 FROM 子句,再执行 SELECT 子句。 当查询所有字段信息时可以使用通配符 * 。 当信息有重复时,可以使用关键字 DISTINCT 来去除重复。 限定查询 再实际开发中基本上都会使用限定查询 SELECT 字段,字段,字段... [SELECT 子句] FROM 数据来源 [FROM 子句] WHERE 过滤条件 [WHERE 子句] WHERE 子句会根据过滤条件来选择出满足条件的数据。 1.关系运算符 SELECT * FROM EMP WHERE SAL>1000; 查询月薪大于1000的员工信息。 SELECT * FROM EMP WHERE ENAME = 'SMITH'; 查询名为 SMITH 的员工信息。 SELECT * FROM EMP WHERE JOB<>'SALESMAN'; 查询工作不是 SALESMAN (销售

select单表查询以及sqlplus

南楼画角 提交于 2019-12-16 14:12:29
1.使用select语句查询某张表的所有数据内容 语法: select [distinct] *{col_name1,col_name2,..} from tb_name; 注意:语法中出现的中括号[],表示该部分可有可无 *:表示所有列,仅仅作为测试和学习使用,在企业用语中不出现,因为效率低下且可读性差 col_name1:列名,将需要查阅的数据字段列举出来,可以查看多列值,列名之间用,进行分割即可 s_emp :员工信息表 s_dept:员工部门表 需求:查看s_dept表中的所有记录 select * from s_dept; select id,name,region_id from s_dept; 练习:查看s_dept表中的所有记录的id和name select id,name from s_dept; 练习:查看所有员工的id,名字(last_name)和薪资(salary) select id,last_name,salary from s_emp; 2.select语句可以对指定的列的所有值进行算术运算。 语法: select col_name 运算符 数字 from tb_name; 需求:查看每个员工的员工id,名字和年薪。 select id,last_name,salary*12 from s_emp; 注意:select语句永远不对原始数据进行修改。

每日两SQL(三),欢迎交流~

我的未来我决定 提交于 2019-12-15 10:01:57
题目描述 查找所有员工的last_name和first_name以及对应部门编号dept_no,也包括展示没有分配具体部门的员工 CREATE TABLE `dept_emp` ( `emp_no` int(11) NOT NULL, `dept_no` char(4) NOT NULL, `from_date` date NOT NULL, `to_date` date NOT NULL, PRIMARY KEY (`emp_no`,`dept_no`)); CREATE TABLE `employees` ( `emp_no` int(11) NOT NULL, `birth_date` date NOT NULL, `first_name` varchar(14) NOT NULL, `last_name` varchar(16) NOT NULL, `gender` char(1) NOT NULL, `hire_date` date NOT NULL, PRIMARY KEY (`emp_no`)); 源数据: 解答: select e.last_name,e.first_name,d.dept_no from employees e left join dept_emp d on e.emp_no = d.emp_no 结果展示 题目描述 查找所有员工入职时候的薪水情况

MySQL 多键

半腔热情 提交于 2019-12-14 18:18:55
1.外键: 用来建立两张表之间的关系 - 一对多 - 多对多 - 一对一 2.了解知识点: - 修改表的操作 - 复制表操作 研究表与表之间的关系: 1.定义一张 员工部门表 id, name, gender, dep_name, dep_desc - 将所有数据存放在一张表中的弊端: 1.结构不清晰 ---> 不致命 2.浪费空间 ---> 不致命 3.可扩展性极差 ---> 不可忽视的弊端 - 类似于将所有python代码存放在一个py文件中,强耦合到一起了----> 解耦合 ----> 拆分表 - 拆分表解决以上问题. - 需要给两张表之间,建立一种强有力的关系, 使用 “外键” - !!!!! ****** 如何确认表与表之间的关系是 (一对多、多对多、一对一) - 注意: 要确立两张表之间的关系,必须站在两个位置去思考: - 站在员工表的位置: 多个员工能否对应一个部门? 能!!! - 员工与部门: 多 对 一 - 员工表单向 多 对 一 部门表 - 站在部门表的位置: 多个部门能够对应一个员工? 不能!!! 总结: 凡是单向 多 对 一 的表关系,称之为 一对多 的外键关系。 - 外键: 语法: foreign key(当前表中建立关系的外键字段) references 被关联表名(id) # 创建两张表 1.必须先建立被关联表,再建立关联表 # 被关联表: dep:

MySQL 数据库 查询语句的基本操作,单表查询,多表查询

只谈情不闲聊 提交于 2019-12-14 09:51:22
1.查询语句的基本操作   - select   - from   - where   - group by   - having   - distinct   - order by   - limit   - 聚合函数: count, max, min, avg, sum 2.单表查询: #前期表与数据准备 # 创建一张部门表 create table emp( id int not null unique auto_increment, name varchar(20) not null, sex enum('male','female') not null default 'male', #大部分是男的 age int(3) unsigned not null default 28, hire_date date not null, post varchar(50), post_comment varchar(100), salary double(15,2), office int, # 一个部门一个屋子 depart_id int ); # 插入记录 # 三个部门:教学,销售,运营 insert into emp(name,sex,age,hire_date,post,salary,office,depart_id) values ('tank','male',17,

数据库语法二之外键

て烟熏妆下的殇ゞ 提交于 2019-12-12 18:53:34
数据库语法二之外键 外键(******必备知识点******): 1、外键:用来建立两张表之间的关系 - 一对多 - 多对多 - 一对一 2、了解的知识点: - 修改表的操作 - 赋值表操作 研究表与表之间的关系: 1、定义一张员工表,员工部门表 id,name,gender,dep_name,dep_desc - 将所有数据存放在一张表中的弊端; 1、结构不清晰:---不致命 2、浪费空间:----不致命 3、可扩展性差----不可忽视的弊端 - 类似于将所有的python代码存放到一个py文件中,强耦合到一起 - 拆分表解决以上问题 - 需要给两张表之间,建立一种强有力的关系,这就得使用外键 -!!!!注意:如何确认表与表之间的关系是(一对多,多对多,一对一) - 注意:要确立两张表之间的关系,必须站在两个位置去思考 - 站在员工表达位置:多个员工能否对应一个部门?能! 员工与部门:多 对 一 员工表单向 多 对 一部门表 - 站在部门表的位置:多个部门能否对应一个员工? 不能!!! 总结:凡是单向 多 对 一 的表达关系,称之为 一对多的外键关系。因为python中的mysql中没有多对一的关系 - 外键:语法: foreign key(当前表中建立关系的外键字段) references 被关联表名(id) #####注意:创建两张表 必须先建立被关联表,在建立关联表

Oracle 数据库 - PL/SQL 游标

北慕城南 提交于 2019-12-12 11:04:45
目录 PL/SQL 游标 1、显式游标 1)、声明游标 2)、打开游标 3)、读取游标 4)、关闭游标 2、游标属性 3、隐式游标 4、通过 for 语句循环游标 实例——使用游标查询工资小于 1000 元的员工工资 实验:游标提取比指定员工工资少的员工信息 PL/SQL 游标 游标提供了一种从表中检索数据并进行操作的灵活手段,游标主要用在服务器上,处理由客户端发送给服务器端的 SQL 语句,或是批处理、存储过程、触发器中的数据处理请求。 游标的作用就相当于指针 ,通过游标 PL/SQL 程序可以一次处理查询结果集中的一行,并可以对该行数据执行特定操作 ,从而为用户在处理数据的过程中提供很大方便。 在 Oracle 中,通过游标操作数据主要使用显式游标和隐式游标。另外,还包括具有引用类型特性的 REF 游标。在这里仅介绍前两种经常使用的显式游标和隐式游标。 1、显式游标 显式游标是由用户声明和操作的一种游标,通常用于操作查询结果集(即由 select 语句返回的查询结果), 使用它处理数据的步骤包括:声明游标、打开游标、读取游标和关闭游标4个步骤 。其中读取游标可能是个反复操作的步骤,因为游标每次只能读取一行数据,所以 对于多条记录,需要反复读取,直到游标读取不到数据为止 。 1)、声明游标 声明游标主要包括游标名称和为游标提供结果集的 select 语句。因此,在声明游标时

数据库SELECT查询

半腔热情 提交于 2019-12-11 21:02:58
主要内容: 一.单行函数 二.组函数 三.分组 四.rowid和rownum 单行函数 根据函数的返回结果,我们将函数分为单行函数和多行函数 1、单行函数:一条记录返回一个结果 2、多行函数 组函数 聚合函数 (重点) :多条记录 返回一个结果 (重点) 1.日期函数 日期函数: 注意区分 db数据库时间 ,java应用服务器的时间。以一方为准 oracle以内部数字格式存储日期:年,月,日,小时,分钟,秒 sysdate/current_date 以date类型返回当前的日期 add_months(d,x) 返回加上x月后的日期d的值 LAST_DAY(d) 返回的所在月份的最后一天 months_between(date1,date2) 返回date1和date2之间月的数目 next_day(sysdate,‘星期一’) 下周星期一 1)当前时间 select current_date from dual where 1 = 1; select sysdate from dual where 1 = 1; 2)修改日期(天数±) –两天后的时刻 select sysdate+2 from dual; 3)修改月份 –当前5个月后的时间 select add_months(sysdate,5) from dual; –雇佣日期 2个月的时间 select ename