emp

test1

ぐ巨炮叔叔 提交于 2019-11-28 02:07:42
---视图 ---视图的概念:视图就是提供一个查询的窗口,所有数据来自于原表。 ---查询语句创建表 create table emp as select * from scott.emp; select * from emp; ---创建视图【必须有dba权限】 create view v_emp as select ename, job from emp; ---查询视图 select * from v_emp; ---修改视图[不推荐] update v_emp set job='CLERK' where ename='ALLEN'; commit; ---创建只读视图 create view v_emp1 as select ename, job from emp with read only; ---视图的作用? ---第一:视图可以屏蔽掉一些敏感字段。 ---第二:保证总部和分部数据及时统一。 ---索引 --索引的概念:索引就是在表的列上构建一个二叉树 ----达到大幅度提高查询效率的目的,但是索引会影响增删改的效率。 ---单列索引 ---创建单列索引 create index idx_ename on emp(ename); ---单列索引触发规则,条件必须是索引列中的原始值。 ---单行函数,模糊查询,都会影响索引的触发。 select * from emp

多表查询

风格不统一 提交于 2019-11-28 01:56:27
多表查询尽量使用SQL:1999语法 预先预估可能产生的数据量 ③SELECT [DISTINCT] * | 列 [别名] , .. | 计算 ①FROM 数据表 | 行列的集合 [AS] |别名|,数据表 |行列的集合 [AS] [别名] , ... ②[WHERE 数据筛选条件(s)] ④[ORDER BY 排序字段 | 别名 [ASC | DESC]] 1.多表查询: 统计emp,dept表中数据量 ,如果直接使用下列语句查询会造成笛卡儿积,两个表的查询结果积(正确的应该是18条); 查询另外一个表里的信息需要进行表关联 SELECT COUNT(*) FROM emp,dept; //结果是56条,正确的应该是18条 消除迪尔卡积(会有重复,只不过不显示) SELECT * FROM emp,dept WHERE emp.deptno=dept.deptno ; //根据部门进行关联查询 SELECT emp e ,dept d WHERE e.deptno=d.deptno ; //使用别名进行查寻 2.表连接 内连接:内连接为等值连接,等值连接必须保证多张表指定列完全一致 外连接(左外连接,右外连接,全外连接):可以显示左表或右表完整数据(即使判断条件不足) (1)内连接: SELECT e.empno,e.enam,e.job,e.deptno,d.dname

数据库之表关系,一对多、多对多、一对一(外键,级联更新级联删除)

故事扮演 提交于 2019-11-28 01:53:18
如何让两种表有代码层面上真正的关联 就必须使用外键 什么是外键? 让表与表有硬性层面上的关系 一对多(Foreign Key) foreign key 外键约束 1.在创建表的时候 必须先创建被关联表 2.插入数据的时候 也必须先插入被关联表的数据 #部门表 id dep_name dep_sesc 1 技术部 技术支持 2 管理部 公司经营管理 3 销售部 负责产品的销售和后期的客户关系维护 4 咨询部 公司产品介绍 #先创建被关联表 create table dep( id int primary key auto_increment, dep_name varchar(32), dep_desc varchar(128) ); #再创建关联表 create table emp( id int primary key auto_increment, emp_name varchar(16), emp_gender enum('male','female','others') default 'male', dep_id int, foreign key(dep_id) references dep(id) ); #先插入被关联表的数据 insert into dep(dep_name,dep_desc) values('技术部','技术支持'), ('管理部','公司经营管理'

sql解惑 34 咨询顾问收入问题

99封情书 提交于 2019-11-28 01:24:50
create table consultants( emp_id number not null, emp_name varchar2(10) not null ); insert into consultants values(1,'larry'); insert into consultants values(2,'moe'); insert into consultants values(3,'curly'); select * from consultants; EMP_ID EMP_NAME ---------- -------------------- 1 larry 2 moe 3 curly create table billings( emp_id number not null, bill_date date not null, bill_rate number(5,2) ); insert into billings values(1,date'1990-01-01',25.00); insert into billings values(2,date'1989-01-01',15.00); insert into billings values(3,date'1989-01-01',20.00); insert into billings values(1

表与表的关系

孤者浪人 提交于 2019-11-28 01:20:27
表与表的关系 >>> 思维导图 >>> 中二青年 表与表之间的关系 所有信息都记录在一张表中所带来的问题 1.表的结构不清晰 2.浪费硬盘空间 3.表的扩展性极差(无法忽略的缺点) 类似于我们将所有的代码都写在同一个py文件内 确立表与表之间的关系一定要换位思考(必须两方都考虑周全之后才能得出结论) 一对多关系 以员工表和部门为例 先站在员工表看,一个部门可以有多个员工 再站在部门表看,一个员工不能属多个部门 结论:员工表和部门表之间仅仅是单向的多对一,那么他们的表关系就是‘一对多’(表关系中没有多对一一说,只有一对多,无论是多对一还是一对多都叫‘一对多’) 外键 如何让两种表有代码层上真正的关联,就必须使用外键。 什么是外键?外键就是让表与表有硬性层上的关系 foreign key 外键约束 1.在创建表的时候,必须先创建被关联表 2.插入数据的时候,也必须先插入被关联表的数据 create table dep( id int primary key auto_increment, dep_name varchar(32), dep_desc varchar(128) ); create table emp( id int primary key auto_increment, emp_name varchar(64), emp_gender enum('male',

数据库之表与表之间建关系

痞子三分冷 提交于 2019-11-28 01:15:08
一、一对多关系 定义一张部门员工表 我们就会发现把所有数据存放于一张表的弊端: 1.组织结构不清晰 2.浪费硬盘空间 3.扩展性极差 这样的弊端是不是看着很眼熟,没错!这就类似于我们代码全部写在一个py文件中,那么当我们发现一个py文件中的代码冗余度很高会怎么做呢?当然就是要进行解耦合! 那么我再来分析这张表数据之间的关系:多个用户对应一个部门,一个部门就对应了多个用户,那么他们之间的关系就应该是一对多的关系,我们可以将上面的表拆开成两张表,一张是记录用户信息,另一张记录部门信息,再用某种方法使者两张表关联起来,这个方法就是:使用 Foreign Key 确立表与表之间的关系一定要换位思考(必须两方面都考虑周全之后才能得出结论) Foreign Key:外键约束 1.在创建表的时候,必须先创建被关联表 2.插入数据的时候,也必须先插入被关联表的数据 创建表: 1 #在创建表的时候,一定要先建被关联的表,才能创建关联表 2 create table dep( 3 id int primary key auto_increment, 4 dep_name varchar(64), 5 dep_desc varchar(64) 6 ); 7 8 create table emp( 9 id int primary key auto_increment, 10 name varchar

表与表之间建关系

帅比萌擦擦* 提交于 2019-11-28 01:11:12
一、一对多 1.确立表与表之间的关系 一定要换位思考(必须两方都考虑周全之后才能得出结论) 以员工表和部门表为例: 1.先站在员工表看能否有多个员工对应一个部门 翻译过来: 一个部门能否有多个员工 可以!!!(暂时只能确定员工单向多对一部门) 2.再站在部门表看能否有多个部门对应一个员工 翻译过来: 一个员工能否属于多个部门 不可以!!! 结论:员工表和部门表之间仅仅是单向的多对一 那么它们的表关系就是"一对多" 表关系中没有多对一一说,只有一对多 (无论是多对一还是一对多都叫"一对多") 2.如何让两种表有代码层面上真正的关联 就必须使用外键(foreign key) 什么是外键? 让表与表有硬性层面上的关系 foreign key 外键约束 1.在创建表的时候 必须先创建被关联表 2.插入数据的时候 也必须先插入被关联表的数据 1、在创建表时,先建被关联的表dep,才能建关联表emp create table dep( id int primary key auto_increment, dep_name varchar(32), dep_desc varchar(128) ); create table emp( id int primary key auto_increment, emp_name varchar(64), emp_gender enum('male',

数据库——多表关系

半世苍凉 提交于 2019-11-28 01:06:06
数据库——多表关系 一对多表关系 确定表与表之间的关系,一定要换位思考(必须两方都考虑周全之后才能得出结论) 表1——>表2 一对多 表2——>表1 多对一 例如:一个部门有多个员工,而一个员工只有一个部门。此时部门表是主表,员工表是从表。 员工表和部门表之间仅仅是单向的多对一,那么它们的关系就是"一对多",表关系中没有多对一一说,只有一对多(无论是多对一还是一对多都叫"一对多") # foreign key 外键约束,建立表与表之间的关系 foreign key(id) references biao(id) # 外键约束,建立表之间的关系 on delete cascade # 级联删除,删除主表时,从表跟着删除 # 建立表 * 先建立被关联的表,并且保证被关联的字段唯一 * 再建关联的表:从表 # 部门表 create table dep( id int primary key auto_increment, dep_name varchar(32), dep_desc varchar(128) ); # 员工表 create table emp( id int primary key auto_increment, emp_name varchar(64), emp_gender enum('male','female','others') default 'male',

表与表之间建立关系

安稳与你 提交于 2019-11-28 00:59:29
一、表的概念与分类   主要通过外键关键字:pirmary key 来建立连系 1、表与表之间的关系可以分为三种:一对多,多对多,一对一的关系   建立表关系的原因?: 2、 针对数据量大的情况下讨论   1:表的结构不清晰(一张表中涵盖多种数据)   2:浪费硬盘空间(有重复的数据)   3:表的扩展性极差(不便于增加,修改,删除等操作) 二、表与表的关系:一对多 例如:一个公司的员工和部门之间的连系,把员工和部门分别抽离出来分析   (1)先站在员工表看能否有多个员工对应一个部门>>>一个部门能否有多个员工(可以)   (2)再站在部门表看能否有多个部门对应一个员工>>>一个员工能否属于多个部门(不可以) 结论:员工表和部门表之间的关系是“一对多”的关系(一对多或者多对一),根据id索引来寻找匹配的内容 先通过列表的形式,把一张完整的表切分出来,分析它们之间的关系多对一还是多对多就可以看出情况,换位思考! foreign key:外键约束   1、创建表的时候,必须先创建被关联的表   2、插入数据的时候,也必须先插入被关联表的数据(先后顺序不能颠倒,不然会报错!) 代码如下:   建表: # 先建被关联的表 create table dep( id int primary key auto_increment, dep_name varcher(32), dep_desc

mysql数据库 day03

与世无争的帅哥 提交于 2019-11-28 00:54:22
---恢复内容开始--- 1.外键(重点) 2.修改表的完整语句(了解知识点) 一.外键 外键一共分为三大类:一对多,多对多,一对一 1.一对多: 为什么要有这些外键了: 比如说定义了一张员工表 # 定义一张部门员工表 id name gender dep_name dep_desc 1 jason male 教学部 教书育人 2 egon male 外交部 漂泊游荡 3 tank male 教学部 教书育人 4 kevin male 教学部 教书育人 5 owen female 技术部 技术能力有限部门 那么这张表有什么问题 ?: 把所有的数据都存放在一张表的弊端: 1.表的结构不清晰 2.浪费硬盘空间(因为有相同的部门,需要重复写) 3.表的扩展性极差(无法忽略的缺点) 这个问题就类似我们将所有的代码都写在用一个py文件内 那么我们该怎么解决这个问题:(我们要把表分开,解耦和)           emp id emp_name emp_gender dep_id 1 jason male 1 2 egon female 2 3 tank male 2 4 jerry male 2 5 kevin male 3             dep id dep_name dep_desc 1 外交部 形象代言人 2 教学部 教书育人 3 技术部 技术能力有限部门 表示解耦和了