emp

Mysql Join-连接查询(中)

蹲街弑〆低调 提交于 2019-12-04 02:41:08
Mysql Join-连接查询(中) 认识 就我平时的数据接触来看, 连接查询也没有很复杂,不够是非常需要耐心和逻辑的, 一点点将数据查出来, 拼接等. 没有什么技巧, 多练习就会了. 无非就是 表之间根据共同key来连接, 查询时结合union, where, 子查询这些... , 真的不难的, 就是有点烦, 有时会嵌套很多层,会晕. 实现 这里在网上找了一些培训班的查询练习资料做演示, 其实市场面上的培训班资料, 怎么说的, 优势在于覆盖面广, 重视应用, 缺点是很肤浅,只适合入门了解 . 部门表dept (id, name) 员工表emp(id, name, gender, salary, join_date, dept_id) 关联key: dept.id ~ dept_id (我不用外键) 准备数据 -- mysql -u root -p .... -- show database; -- use cj; -- show tables; -- 新建表格测试数据 drop table if exists emp; drop table if exists dept; create table dept( id int primary key auto_increment, name varcahr(20) ); -- 员工表 create table emp( id int

MySQL学习笔记4——DQL

醉酒当歌 提交于 2019-12-03 15:12:34
DQL(数据查询语言) 一、基本查询 1.字段(列)控制 1)查询所有列 SELECT * FROM 表名; ->"*"表示查询所有列 2)查询指定列 SELECT 列1 [, 列2,..., 列n] FROM 表名; 3)让完全重复的记录只显示一次 当查询结果中的多行记录一模一样时,只显示一行。一般查询所有列时很少会有这种情况,但只查询一列或几列时,就有可能发生。 SELECT DISTINCT *|列1 [, 列2,..., 列n] FROM 表名; SELECT DISTINCT sal FROM emp; ->查询员工表的工资,如果存在相同的工资只显示一次。 4)列运算 1.数量类型的列可以做加、减、乘、除运算 SELECT sal*1.5 FROM emp; SELECT sal+comm FROM emp; 2.字符串类型可以做连续运算 SELECT CONCAT('$', sal) FROM emp; 3.转换NULL值 有时需要把NULL转换成其他值,例如com+1000时,如果com列存在NULL值,那么NULL+1000还是NULL,而我们这时希望把NULL当成0来运算。 SELECT IFNULL(comm, 0)+1000 FROM emp; ->IFNULL(comm, 0):如果comm中存在NULL值,那么当成0来运算。 4.给列起别名

操作数据库

左心房为你撑大大i 提交于 2019-12-03 13:08:29
数据库 一,数据库简介 1.数据库的起源: 随着互联网时代的到来,需要持久化数据呈现井喷式发展,常规的 io操作虽然 可以满足持久化的需求,但是,对于持久化的目的,对数据的操纵,显然力不从心, 且操作的复杂度很大,不利于大规模的发展,审时度势,数据库应运而生。 2.数据库的定义:数据库(Database)是按照数据结构来组织、存储和管理数据的仓库;随着信息 技术和市场的发展,数据管理不再仅仅是存储和管理数据,而转变成用户所需要的各 种数据管理的方式。数据库有很多种类型,从最简单的存储有各种数据的表格到能够 进行海量数据存储的大型数据库系统都在各个方面得到了广泛的应用。 数据库现在已经成为数据管理的重要技术,也是计算机的重要分支。由于数据 库具有数据结构化,最低冗余度、较高的程序与数据独立性,易于扩展、易于编制应 用程序等优点,较大的信息系统都是建立在数据库设计之上的。数据库的运用从一般 管理扩大到计算机辅助技术、人工智能以及科技计算等领域。 随着数据库技术的发展,计算机技术也随着得到了很大的发展,数据库为我们 提供了可以快速存储以及检索的便利,它也为近几年软件可以如此普及贡献不小的力 量 3.常用的数据库有:MySQL,Oracle,DB2 4. 数据库管理系统(Database Management System)是一种操纵和管理数据库的大 型软件,用于建立、使用和维护数据库

数据库进阶

和自甴很熟 提交于 2019-12-03 13:08:27
一 . rowid和rownum 1. rowid相当于对象的地址,在数据插入到表中时候已经存在,rowid不是地址,根据地址转换的. rowid是伪列. --项目数据值保留唯一的,删除重复的 --查询到要保留的数据 select deptno,dname,rowid from dept; select name,course,score,min(rowid) from tb_student group by name,course,score; --要删除的数据 select * from tb_student where not rowid in(select min(rowid) from tb_student group by name,course,score); --删除数据 delete from tb_student where not rowid in(select min(rowid) from tb_student group by name,course,score) 2.rownum rownum 是伪列 . --分页 rownum 结果集的序号 从1开始 --如果按照主键进行排序,先排序后确定rownum --如果根据非主键进行排序,先确定rownum再排序 select deptno,dname,rownum from dept order by

java-day22

China☆狼群 提交于 2019-12-03 11:55:07
## 多表查询: * 查询语法: select 列名列表 from 表名列表 where.... * 准备sql # 创建部门表 CREATE TABLE dept( id INT PRIMARY KEY AUTO_INCREMENT, NAME VARCHAR(20) ); INSERT INTO dept (NAME) VALUES ('开发部'),('市场部'),('财务部'); # 创建员工表 CREATE TABLE emp ( id INT PRIMARY KEY AUTO_INCREMENT, NAME VARCHAR(10), gender CHAR(1), -- 性别 salary DOUBLE, -- 工资 join_date DATE, -- 入职日期 dept_id INT, FOREIGN KEY (dept_id) REFERENCES dept(id) -- 外键,关联部门表(部门表的主键) ); INSERT INTO emp(NAME,gender,salary,join_date,dept_id) VALUES('孙悟空','男',7200,'2013-02-24',1); INSERT INTO emp(NAME,gender,salary,join_date,dept_id) VALUES('猪八戒','男',3600,'2010-12-02

MySql学习笔记06

易管家 提交于 2019-12-03 11:51:09
课程回顾 一对一关联 案例1:查询每个员工的名字和主管领导的名字 select e.ename 员工姓名,m.ename 领导姓名from emp e join emp mon e.mgr=m.empno; 案例2: 查询主管领导名字为blake的所有员工名字 select e.ename 员工姓名,m.ename 领导姓名 from emp e join emp m on e.mgr=m.empno where m.ename='blake' 案例3:查询有商品的分类信息及上级分类信息 往t item category表内部插入以下数据 id 162 name 办公用品 id 229 name 文具 id 913 name 户外用品 -插入数据 insert into t item category (id,name) values(162,'办公用品'),(229,'文具'),(913,'户外用品'); -查询所有有商品的分类id SELECT DISTINCT category id FROM t item WHERE category id IS NOT NULL -查询分类详情 select * from t item category where id in (SELECT DISTINCT category id FROM t item WHERE category

How to synchronize two tables of different MySQL databases on the same machine?

匿名 (未验证) 提交于 2019-12-03 10:24:21
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试): 由 翻译 强力驱动 问题: I have 2 different databases, let say db_one and db_two. Each one has a table. db1_emp_company and db2_emp_info respectively. Structure is given below: db_one | db_two __________________________________ db1_emp_company | db2_emp_info __________________________________ phone_no | contact_no emp_email | email_add home_address | address These two databases are hosted by two different php websites on the same server. I want to synchronize these both tables of different databases. For example if a user update the phone_no of db1_emp

Complement of empty index vector is empty index vector

匿名 (未验证) 提交于 2019-12-03 09:14:57
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试): 问题: I am removing values from a vector by using - (minus sign) in front of the index vector. Like this: scores <- scores[-indexes.to.delete] Sometimes indexes.to.delete vector is empty, that is N/A. So the scores vector should then remain unchanged. However, I am getting empty scores vector when indexes.to.delete is empty. Example: x <- c(1, 2, 3); y <- c(4, 5, 6); indexes.to.delete <- which(y < x); # will return empty vector y <- y[-indexes.to.delete]; # returns empty y vector, but I want y stay untouched I could code an if statement checking

Oracle: year must be between -4713 and +9999, and not be 0

匿名 (未验证) 提交于 2019-12-03 08:54:24
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试): 问题: I have an Oracle table like this |---------------------------------| |EMPNO | HIREDATE | INDEX_NUM | |---------------------------------| |1 | 2012-11-13 | 1 | |2 | 2 | 1 | |3 | 2012-11-17 | 1 | |4 | 2012-11-21 | 1 | |5 | 2012-11-24 | 1 | |6 | 2013-11-27 | 1 | |7 | 2 | 2 | |---------------------------------| I am trying to execute this query against this table SELECT hiredate FROM admin_emp WHERE TO_DATE('hiredate','yyyy-mm-dd') >= TO_DATE('2012-05-12','yyyy-mm-dd'); But getting the error ORA-01841: (full) year must be between -4713 and +9999

Haskell: Does ghci show “Chunk .. Empty”?

匿名 (未验证) 提交于 2019-12-03 08:42:37
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试): 问题: Learn You a Haskell has a code example like this: ghci> B.pack [99,97,110] Chunk "can" Empty ( B stands for Data.ByteString.Lazy ) But my ghci does not show Chunk and Empty data constructors. > B.pack [99,97,110] "can" Did Haskell developers change the way the values of ByteString are printed? 回答1: Looks like Duncan added hand-written Show instance for lazy ByteString somewhere between 0.9.2.1 and 0.10.0.1 . See http://hackage.haskell.org/packages/archive/bytestring/0.10.2.0/doc/html/src/Data-ByteString-Lazy-Internal.html#ByteString Add: