emp

牛客——数据库实战(31~61)

我与影子孤独终老i 提交于 2019-11-27 15:58:01
文章目录 31. 获取select 32. 将employees表的所有员工的last_name和first_name拼接起来作为Name,中间以一个空格区分 33. 创建一个actor表,包含如下列信息 34. 批量插入数据 35. 批量插入数据,如果数据已经存在,请忽略,不使用replace操作 36. 创建一个actor_name表,将actor表中的所有first_name以及last_name导入改表 37. 对first_name创建唯一索引uniq_idx_firstname,对last_name创建普通索引idx_lastname 38. 针对actor表创建视图actor_name_view 39. 针对上面的salaries表emp_no字段创建索引idx_emp_no,查询emp_no为10005, 40. 在last_update后面新增加一列名字为create_date 41. 构造一个触发器audit_log,在向employees表中插入一条数据的时候,触发插入相关的数据到audit中 42. 删除emp_no重复的记录,只保留最小的id对应的记录。 43. 将所有to_date为9999-01-01的全部更新为NULL 44. 将id=5以及emp_no=10001的行数据替换成id=5以及emp_no=10005,其他数据保持不变

游标练习 Oracle

混江龙づ霸主 提交于 2019-11-27 15:57:19
练习题: -- 1 :任意执行一个 update 操作,用隐式游标 sql 的属性 %found,%notfound,%rowcount,%isopen 观察 update 语句的执行情况。 --2. 使用游标和 loop 循环来显示所有部门的名称 --3. 使用游标和 while 循环来显示所有部门的地理位置 ( 用 %found 属性 ) declare -- 游标声明 --4. 接受用户输入的部门编号,用 for 循环和游标,打印出此部门的所有雇员的所有信息 ( 使用循环游标 ) --5. 向游标传递一个工种,显示此工种的所有雇员的所有信息 ( 使用参数游标 ) --6. 用更新游标来为雇员加佣金: ( 用 if 实现,创建一个与 emp 表一模一样的 emp1 表,对 emp1 表进行修改操作 ) ,并将更新前后的数据输出出来。 --7. 编写一个 PL/SQL 程序块,对名字以 'A' 或 'S' 开始的所有雇员按他们的基本薪水 (sal) 的 10% 给他们加薪 ( 对 emp1 表进行修改操作 ) --8. 编写一个 PL/SQL 程序块,对所有的 salesman 增加佣金 (comm)500 --9. 编写一个 PL/SQL 程序块,以提升 2 个资格最老的职员为 MANAGER( 工作时间越长,资格越老 ) --( 提示

Oracle数据库基本操作

霸气de小男生 提交于 2019-11-27 15:18:38
本文根据自己经验所写,如有错误及时提出 --每段语句使用分号结束 --创建表空间 create tablespace zimegll --创建数据库文件 datafile 'c:\travel.dbf' --文件大小 size 100m autoextend on next 10m; --删除表空间 drop tablespace zimegll; --创建用户 create user zimegll identified by zimegll --出生的表空间 default tablespace zimegll; --给用户授权 --Oracle数据库中常用角色 -- connect:连接角色,基本角色 -- resource:开发者角色 -- dba:超级管理员用户角色 -- 方便学习,我们给用户授予dba角色 grant dba to zimegll; --切换用户 session->log off all->log on --创建一个表 create table person( pid number(20), panme varchar2(10) ); --修改表结构 --添加一列,多列则用逗号隔开 alter table person add (gender number(1)); --修改列类型 alter table person modify gender

Oracle-DDL 2- 视图&索引

十年热恋 提交于 2019-11-27 14:04:56
DDL-数据定义语句: 二、视图 --视图(view),本身不保存数据,保存的是一个查询语句 --对视图的操作等同于对查询语句中源数据的操作 --视图占用存储空间较小,可以快速的对特定数据进行访问和操作 --视图主要用于针对相同的数据,创建不同的视图来区分访问和操作的权限 --创建适当的视图可以简化查询语句 --创建视图需要相应的权限 /* create 【or replace】 view 视图名称 【(列名1,列名2,……)】 as select …… 【with read only】; or replace 如果不写,创建的视图名称已经存在会报错 如果写上 or replace 则同名的视图会被替换 with read only 表示该视图只能查看,不能修改数据 */ --使用管理员给scott用户赋予创建视图的权限 GRANT CREATE VIEW TO scott; 1.区分权限 --emp表针对不同的员工和职位,能够访问和操作的数据不一样 --boss和hr 可以查看和修改所有员工的信息,直接使用emp --部门经理可以查看和修改本部门的员工信息 --普通员工只能查看自己的信息,不能修改 --针对部门经理和普通员工创建不同的视图进行区别 --部门经理的视图 CREATE VIEW v_dept20 AS SELECT * FROM emp WHERE deptno =

Spring boot 2.x 中使用redis

假装没事ソ 提交于 2019-11-27 13:20:25
一、添加Maven 依赖      <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> <version>2.1.3.RELEASE</version> </dependency> 二.application.yml 中配置 redis 相关配置 spring: datasource: url: jdbc:mysql://localhost:3306/order?serverTimezone=GMT%2B8&characterEncoding=UTF-8 username: root password: xxxxxx redis: host: ip database: 0 port: 6379 password: jdbc4.0 是不用显式的去加载驱动,如果驱动包符合 SPI 模式就会自动加载 就是说程序会自动去项目中查找是否有驱动,当然没有驱动的话自然是连接不了的 三、写一个 redis 配置类 redis 默认的是使用JDK 的序列化方式。 JdkSerializationRedisSerializer 当保存实体后,Redis 中的实体信息乱码,需要修改redis 默认的序列化方式

MySQL基础练习02---牛客网

微笑、不失礼 提交于 2019-11-27 12:56:30
目录 1、 从titles表中获取title并按照title分组 2、从titles表中获取title并按照title分组,重复的emp_no忽略 3 查找employees表 4 统计平均工资 5 获取第二多的薪水 6 获取第二多的薪水不使用order by 7 查找员工的名字和对应的部门名字 8 查找薪水涨幅 9 查找所有员工的薪水涨幅 10 对所有员工薪水排序 11 获取员工其当前的薪水比其manager当前薪水还高的相关信息 12 汇总各个部门当前员工的title类型的分配数目 13 给出每个员工每年薪水涨幅超过5000的员工编号emp_no 1、 从titles表中获取title并按照title分组 题目描述: 从titles表获取按照title进行分组,每组个数大于等于2,给出title以及对应的数目t。 输出描述: 1 /* 2 此题应注意以下三点: 3 1、用COUNT()函数和GROUP BY语句可以统计同一title值的记录条数 4 2、根据题意,输出每个title的个数为t,故用AS语句将COUNT(title)的值转换为t 5 3、由于WHERE后不可跟COUNT()函数,故用HAVING语句来限定t>=2的条件 6 */ 7 8 SELECT title, COUNT(title) AS t FROM titles 9 GROUP BY title

MYSQL 高效查询的例子

感情迁移 提交于 2019-11-27 11:33:53
1: 用EXISTS替代IN、用NOT EXISTS替代NOT IN: 在许多基于基础表的查询中,为了满足一个条件,往往需要对另一个表进行联接.在这种情况下, 使用EXISTS(或NOT EXISTS)通常将提高查询的效率. 在子查询中,NOT IN子句将执行一个内部的排序和合并. 无论在哪种情况下,NOT IN都是最低效的 (因为它对子查询中的表执行了一个全表遍历). 为了避免使用NOT IN ,我们可以把它改写成外连接(Outer Joins)或NOT EXISTS. 例子: (高效)SELECT * FROM EMP (基础表) WHERE EMPNO > 0 AND EXISTS (SELECT ‘X' FROM DEPT WHERE DEPT.DEPTNO = EMP.DEPTNO AND LOC = ‘MELB') (低效)SELECT * FROM EMP (基础表) WHERE EMPNO > 0 AND DEPTNO IN(SELECT DEPTNO FROM DEPT WHERE LOC = ‘MELB') 2: 用EXISTS替换DISTINCT: 当提交一个包含一对多表信息(比如部门表和雇员表)的查询时,避免在SELECT子句中使用DISTINCT. 一般可以考虑用EXIST替换, EXISTS 使查询更为迅速

oracle 逻辑对象

元气小坏坏 提交于 2019-11-27 10:29:12
视图 视图的作用: a 让查询返回的字段更容易理解。 b 对复杂select语句的封装。 c 安全性。视图可以单独授权。对于数据量巨大的表,可以创建视图仅仅返回前100条数据,将该视图select权限开放。但是不开放表的select权限。 --grant create view to resource; --a 让查询返回的字段更容易理解 create or replace view vw_emp as select empno 员工号,ename 员工名,job 工作岗位,sal 工资 from emp; select *from vw_emp; --b 对复杂的sql语句进行封装 --、薪水大于1200的雇员,按照部门编号进行分组,分组后平均薪水必须大于1500,查询各分组的平均水平,按照工资的倒序进行排列。* create or replace view vw_avg_sal as select deptno,avg(sal) avg_sal from emp where sal>1200 group by deptno having avg(sal)>1500 order by avg(sal) desc; select * from vw_avg_sal; --c安全性 试图可以单独授权,对于数据量巨大的表,可以创建视图仅仅返回前100条数据,将该视图select权限开放

mysql 语句

旧城冷巷雨未停 提交于 2019-11-27 09:27:26
单表查询(增删改) 1. 添加数据: * 语法: * insert into 表名(列名1,列名2,...列名n) values(值1,值2,...值n); * 注意: 1. 列名和值要一一对应。 2. 如果表名后,不定义列名,则默认给所有列添加值 insert into 表名 values(值1,值2,...值n); 3. 除了数字类型,其他类型需要使用引号(单双都可以)引起来 2. 删除数据: * 语法: * delete from 表名 [where 条件] * 注意: 1. 如果不加条件,则删除表中所有记录。 2. 如果要删除所有记录 1. delete from 表名; -- 不推荐使用。有多少条记录就会执行多少次删除操作 2. TRUNCATE TABLE 表名; -- 推荐使用,效率更高 先删除表,然后再创建一张一样的表。 3. 修改数据: * 语法: * update 表名 set 列名1 = 值1, 列名2 = 值2,... [where 条件]; * 注意: 1. 如果不加任何条件,则会将表中所有记录全部修改。 1. 语法: select 字段列表 from 表名列表 where 条件列表 group by 分组字段 having 分组之后的条件 order by 排序 limit 分页限定 2. 基础查询 1. 多个字段的查询 select 字段名1,字段名2

Hadoop中级之Sqoop

家住魔仙堡 提交于 2019-11-27 09:22:26
sqoop数据迁移 概述 sqoop是apache旗下一款 “ Hadoop 和关系数据库服务器之间传送数据” 的工具。 导入数据 :MySQL,Oracle导入数据到Hadoop的HDFS、HIVE、HBASE等数据存储系统; 导出数据: 从Hadoop的文件系统中导出数据到关系数据库 工作机制 将导入或导出命令翻译成mapreduce程序来实现 在翻译出的mapreduce中主要是对inputformat和outputformat进行定制 sqoop实战及原理 sqoop安装 安装sqoop的前提是已经具备java和hadoop的环境 1、下载并解压 最新版下载地址http://ftp.wayne.edu/apache/sqoop/1.4.6/ 2、修改配置文件 $ cd $SQOOP_HOME/conf $ mv sqoop-env-template.sh sqoop-env.sh 打开sqoop-env.sh并编辑下面几行: export HADOOP_COMMON_HOME=/home/pirate/programs/hadoop export HADOOP_MAPRED_HOME=/home/pirate/programs/hadoop export HIVE_HOME=/home/pirate/programs/hive 3、加入mysql的jdbc驱动包