emp

mysql-08mysql多表查询

自古美人都是妖i 提交于 2020-03-18 13:26:26
实验表创建 建表 #建表 create table dep( id int, name varchar(20) ); create table emp( id int primary key auto_increment, name varchar(20), sex enum('male','female') not null default 'male', age int, dep_id int ); 插入数据 #插入数据 insert into dep values (200,'技术'), (201,'人力资源'), (202,'销售'), (203,'运营'); insert into emp(name,sex,age,dep_id) values ('jason','male',18,200), ('egon','female',48,201), ('kevin','male',38,201), ('nick','female',28,202), ('owen','male',18,200), ('jerry','female',18,204) ; # 当初为什么我们要分表,就是为了方便管理,在硬盘上确实是多张表,但是到了内存中我们应该把他们再拼成一张表进行查询才合理 笛卡尔积 select * from emp,dep; # 左表一条记录与右表所有记录都对应一遍>>

MySQL(多表的表记录的查询)

爷,独闯天下 提交于 2020-03-18 12:57:45
一、外键约束 1、创建外键 --- 每一个班主任会对应多个学生 , 而每个学生只能对应一个班主任 ----主表 CREATE TABLE ClassCharger( id TINYINT PRIMARY KEY auto_increment, name VARCHAR (20), age INT , is_marriged boolean -- show create table ClassCharger: tinyint(1) ); INSERT INTO ClassCharger (name,age,is_marriged) VALUES ("冰冰",12,0), ("丹丹",14,0), ("歪歪",22,0), ("姗姗",20,0), ("小雨",21,0); ----子表 CREATE TABLE Student( id INT PRIMARY KEY auto_increment, name VARCHAR (20), charger_id TINYINT, --切记:作为外键一定要和关联主键的数据类型保持一致 -- [ADD CONSTRAINT charger_fk_stu]FOREIGN KEY (charger_id) REFERENCES ClassCharger(id) ) ENGINE=INNODB; INSERT INTO Student(name

Hive和Sqoop测试数据

不问归期 提交于 2020-03-18 11:30:27
测试数据以Oracle数据库自带scott用户emp和dept表为准: 一、MySQL数据库创建的emp和dept表语法及数据: drop table if exists dept; create table dept ( deptno int not null comment '部门编号', dname varchar(14) comment '部门名称', loc varchar(13) comment '部门地址', PRIMARY KEY (deptno) )default character set 'utf8' comment '部门表'; insert into dept(deptno,dname,loc) values(10,'ACCOUNTING','NEW YORK'); insert into dept(deptno,dname,loc) values(20,'RESEARCH','DALLAS'); insert into dept(deptno,dname,loc) values(30,'SALES','CHICAGO'); insert into dept(deptno,dname,loc) values(40,'OPERATIONS','BOSTON'); ------------------------------------------------

数据库子查询、视图、事务

[亡魂溺海] 提交于 2020-03-18 04:37:46
目录 复习 联合分组 子查询 all与any:区间修饰条件 视图:view 视图的增删改 事务 复习 """ 1、单表查询 增删改查的完整语法 select distinct 字段 from 表 where group by having order by limit 比较:> < = 区间:between and | in | not in 逻辑: and or not 相似:like _% 正则:regexp 聚合函数:group_concat()、max() having:可以对 聚合函数 结果进行筛选,不能使用 聚合函数 别名 order by:分组后对 聚合函数 进行排序,能使用 聚合函数 别名 limit:条数 | 偏移,条数 2、多表查询 内连接:from emp inner join dep on emp.dep_id = dep.id 只保存两表有对应关系的记录 左连接:from emp left join dep on emp.dep_id = dep.id 左表记录全部保存,右边没有对应记录空填充 右连接:from emp right join dep on emp.dep_id = dep.id 右表记录全部保存,左边没有对应记录空填充 全连接: from emp left join dep on emp.dep_id = dep.id union from

springmvc中因xml文件中的sql语句编写的有问题,而引发的错误

人盡茶涼 提交于 2020-03-16 20:13:10
Null ModelAndView returned to DispatcherServlet with name 'springDispatcherServlet': assuming HandlerAdapter completed request handling 一开始以为是配置问题,经过查找各种文档和相关资料后。发现配置没有问题,因此只能在代码上找。因为select的返回值类型写错了,所以一直执行不成功。 一般来说,你的配置文件没有问题。访问也能访问到相对应的controller,但是响应一直不正确,而且控制台也并没有报错。这种情况下就要检查xml中写的sql语句了,在这里强调检查以下几点: 1、参数类型:parameterType是否和方法一致 2、返回值类型:resultType是否和方法一致 3、添加的if判断条件是否在输入参数中有相对应的属性 resultType=“Emp” < select id = "countAll" parameterType = "PageInfo" resultType = "Emp" > select count ( * ) from emp < where > < if test = "queryVal != null" > ename like concat ( '%' , # { queryVal } , '%' ) < /

MySQL-视图和索引

纵然是瞬间 提交于 2020-03-16 09:52:44
一、视图 视图是从一个或多个表中导出的表,是一种虚拟的表,其内容由查询语句定义。 视图是逻辑上来自一个或多个表的数据集合 视图一旦定义,就可以像表一样进行查询、修改和删除。 对视图引用的基础表来说,视图的作用类似于筛选。 视图的数据来自定义视图查询时引用的表,且在引用视图时动态生成。 为什么使用视图? 限制其他用户对数据库表的访问,因为视图可以有选择性的显示数据库表的一部分 容易实现复杂的查询 对于相同的数据可以产生不同的视图 1 、创建视图 Create view 视图名 [(列名1,列名2)] as select语句 创建视图时,所引用的表尽量<=3,为保证执行效率 范例1:CREATE VIEW emp11 AS SELECT * FROM emp; 范例2:CREATE VIEW emp10 as SELECT * FROM emp WHERE deptno=10; 范例3:CREATE VIEW emp20(no,name) as SELECT empno, ename FROM emp; 范例4:CREATE VIEW emp02(no,name,deptno,dname) as SELECT empno, ename, d.deptno,dname FROM emp e, dept d WHERE e.deptno = d.deptno AND loc =

SQL 表查询之内连接

淺唱寂寞╮ 提交于 2020-03-15 19:29:47
1 # 查询每名员工的部门信息,用ON子句规定表连接条件 2 SELECT e.empno,e.ename,d.dname FROM t_emp e JOIN t_dept d ON e.deptno=d.deptno; 3 # 多种内连接写法 4 SELECT e.empno,e.ename,d.dname FROM t_emp e JOIN t_dept d WHERE e.deptno=d.deptno; 5 SELECT e.empno,e.ename,d.dname FROM t_emp e , t_dept d WHERE e.deptno=d.deptno; 6 # 查询每个员工工号,姓名,部门名称,底薪,职位,工资等级 7 SELECT e.empno,e.ename,d.dname,e.sal,e.job,s.grade FROM t_emp e,t_dept d,t_salgrade s WHERE e.deptno=d.deptno AND e.sal BETWEEN s.losal AND s.hisal ORDER BY s.grade; 8 # 查找与SCOTT部门相同的员工都有谁 9 # 子查询方式 10 SELECT ename FROM t_emp WHERE deptno=(SELECT deptno FROM t_emp WHERE ename

oracle PL、SQL(概念)

你离开我真会死。 提交于 2020-03-15 11:32:18
一 .PL/SQL 简介。    Oracle PL/SQL 语言( Procedural Language/SQL )是结合了 结构化查询 和 Oracle 自身过程控制 为一体的强大语言, PL/SQL 不但支持更多的数据类型,拥有自身的变量申明,赋值语句,而且还有条件,循环等流程控制语句。过程控制结构与 SQL 数据处理能力无缝的结合形成了强大的编程语言,可以创建过程和函数以及程序包。 二.优点: 1,支持 SQL      SQL 是访问数据库的标准语言,通过 SQL 命令,用户可以操纵数据库的数据。     PL/SQL 支持所有的 SQL 数据操纵命令、游标控制命令、事务控制命令、 SQL 函数、运算符和伪列。 2,支持面向对象编程      PL/SQL 支持面向对象的编程,在 PL/SQL 中可以创建类型,可以对类型进行继承,可以在子程序中重载方法等。 3,更好的性能      SQL 是非过程语言,只能一条一条的执行,而 PL/SQL 把一个 PL/SQL 统一进行编译后执行,同时还可以把编译好的 PL/SQL 块存储起来,以备重用,减少了应用程序和服务器之间的通信时间,所以 PL/SQL 是高效而快速的。 4,可移植性     使用 PL/SQL 编写的应用程序语言,可以移植到任何操作平台的 ORACLE 服务器,同时还可以编写可移植程序库,在不同环境中使用。

Oracle 检索数据(查询数据、select语句)

放肆的年华 提交于 2020-03-15 08:00:37
/*--> */ /*--> */   用户对表或视图最常进行的操作就是检索数据,检索数据可以通过 select 语句来实现,该语句由多个子句组成,通过这些子句完成筛选、投影和连接等各种数据操作,最终得到想要的结果。 语法:   select { [ distinct | all ] columns | * }   [ into table_name ]   from { tables | views | other select }   [ where conditions]   [ group by columns ]   [ having conditions ]   [ order by columns ] select子句 :用于选择数据表、视图中的列 into 子句:用于将原表的结构和数据插入新表中 from 子句:用于指定数据来源,包括表,视图和其他select 语句。 where 子句:用于检索的数据进行筛选 group by 子句:用于检索结果进行分组显示 having 子句:用于从使用group by子句分组后的查询结果中筛选数据行 order by 子句:用来对结果集进行排序(包括升序和降序) 一、简单查询   只包含select 子句和 from 子句的查询就是简单查询,同时也是select语句的必选项。   select

[Java] DAO设计模式

无人久伴 提交于 2020-03-14 12:40:55
背景 B/S(Browser/Server):浏览器/服务器架构,用于广域网 C/S(Client/Server):客户机/服务器架构,用于局域网 业务分析 前端 控制层 调用业务层 业务层(Business Object BO) 调用数据层实现业务操作 业务层需要明确地知道数据层的操作方法,但不需要知道它的具体实现 使用代理模式(动态代理)进行业务控制,Sprint、Struct框架中会提供 定义操作协议(接口) 定义业务实现类,控制数据库的打开和关闭,取得数据层接口对象,调用数据层操作 定义业务工厂类,用于供控制层实例化,隐藏具体实现 数据层(Data Access Object DAO,持久层) 把具体的业务“翻译”成数据库的原子操作(增删改查) 定义接口,对业务层隐藏子类,一个数据表对应一个接口 定义简单Java类(POJO),对数据表中的数据进行包装,以便在不同层之间传递数据 定义实现类,一个类实现一个接口,类中一个方法实现一个具体的SQL操作 定义工厂类,用于其它层实例化接口对象,隐藏具体实现 数据库 实例 功能 连接mysql,为雇员表增加一行数据 项目结构 项目代码 数据库连接类 -- DatabaseConnection.java 1 package dbc; 2 3 import java.sql.Connection; 4 import java.sql