emp

MySql之深入分析MySql 的锁

时光毁灭记忆、已成空白 提交于 2020-01-31 11:21:47
文章目录 1.InnoDB 存储引擎的锁 1.1.锁的类型 -八中类型 1.2.锁的基本模式 1.2.1.表锁 1.2.2.行锁 1.2.3.关于行锁和表锁的粒度概述 1.3.锁的类型 1.3.1.Shared Locks (共享锁) ----->行级别的锁 1.3.1.1.概念 1.3.1.2.如何设置共享锁 1.3.1.2.如何释放共享锁 1.3.1.3.案例1-查询加锁后查询 1.3.1.3.案例2-查询加锁后更新 1.3.2.Exclusive Locks(排它锁)又称写锁或者X锁 ----->行级别的锁 1.3.2.1.概念 1.3.2.2.如何设置排它锁 自动加锁 delete/update/insert 手动加锁 FOR UPDATE 1.3.2.3.如何释放排它锁 commit/rollback; 1.3.2.3.案例演示 1.3.3.意向锁 1.3.3.1.概念 1.3.3.1.如何设置意向锁 1.3.3.2.意向锁的意义 1.3.3.3.意向锁使用场景 1.3.3.4.案例演示- 行锁之后进行表锁试验 1.3.3.5.案例演示- 表锁之后进行行锁试验 1.3.3.6.解锁 1.4. 数据准备 SET NAMES utf8mb4 ; SET FOREIGN_KEY_CHECKS = 0 ; -- -- -- -- -- -- -- -- -- -- -- -- -

DBS-Oracle:表的连接查询

橙三吉。 提交于 2020-01-31 04:03:20
ylbtech-DBS-Oracle:表的连接查询 链接查询是指基于两个或两个以上表或试图的查询。在实际应用中,查询单个表可能无法满足应用程序的实际需求(例如显示雇员的部门名称以及雇员名),在这种情况下就需要进行链接查询(DEPT和EMP表)。 1. 返回顶部 1、 7.4.1 简单链接 链接查询实际上是通过各个表之间共同列的关联性来查询数据的,它是关系数据库查询最主要的特征。简单链接使用逗号将两个或多个表进行连接,这是最简单也是最常用的多表查询形式。 1. 自然连接 自然连接是指使用相等比较符(=)指定链接条件的链接查询,这种链接查询主要用于检索主从表之间的相关数据。使用自然链接的语法如下: select table1.column,table2.column from table1,table2 where table1.column1=table2.column2 例如显示所有雇员的名称、工资及其所在部门名称: SQL> select emp.ename,emp.sal,dept.dname from emp,dept 2  where emp.deptno=dept.depno ENAME  SAL  DNAME --------------- ------------ ------------------- SMITH  800   RESEARCH ALLEN 

PostgreSQL学习手册(SQL语言函数)

让人想犯罪 __ 提交于 2020-01-31 02:06:17
一、基本概念: SQL函数可以包含任意数量的查询,但是函数只返回最后一个查询(必须是SELECT)的结果。在简单情况下,返回最后一条查询结果的第一行。如果最后一个查询不返回任何行,那么该函数将返回NULL值。如果需要该函数返回最后一条SELECT语句的所有行,可以将函数的返回值定义为集合,即SETOF sometype。 SQL函数的函数体应该是用分号分隔的SQL语句列表,其中最后一条语句之后的分号是可选的。除非函数声明为返回void,否则最后一条语句必须是SELECT。事实上,在SQL函数中,不仅可以包含SELECT查询语句,也可以包含INSERT、UPDATE和DELETE等其他标准的SQL语句,但是和事物相关的语句不能包含其中,如BEGIN、COMMIT、ROLLBACK和SAVEPOINT等。 CREATE FUNCTION命令的语法要求函数体写成一个字符串文本。通常来说,该文本字符串常量使用美元符($$)围住,如: CREATE FUNCTION clean_emp() RETURNS void AS $$ DELETE FROM emp WHERE salary < 0; $$ LANGUAGE SQL ; 最后需要说明的是SQL函数中的参数,PostgreSQL定义$1表示第一个参数,$2为第二个参数并以此类推。如果参数是复合类型,则可以使用点表示法,即$1

mysql数据库 day03

Deadly 提交于 2020-01-31 00:15:51
---恢复内容开始--- 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 技术部 技术能力有限部门 表示解耦和了

外键、表与表之间的关系

六眼飞鱼酱① 提交于 2020-01-30 22:50:26
今日学习总结: 一、外键:用来建立两张表之间的关系 外键的约束的条件: 需要先提前建立被关联表 级联更新级联删除 1、一对多 2、多对多 3、 一对一 注意:mysql中 没有 多对一 1. 一对多 01、创建两张表:必须先建立被关联表,再建立关联表 dep: # 被关联表: create table dep( id int primary key auto_increment, # 主键+自增 dep_name varchar(16), dep_desc varchar(255) ); emp: # 关联表: create table emp( id int primary key auto_increment, name varchar(16), age int, gender enum('male', 'female', 'others') default 'male', dep_id int not null, foreign key(dep_id) references dep(id) # 外键:foreign key(dep_id) 。references dep 表示关联 被关联表 02、插入数据: 必须先插入被关联表(dep)的数据,再插入关联表(emp)的数据 # dep: insert into dep(dep_name, dep_desc) values(

10、获取所有非manager的员工emp_no

白昼怎懂夜的黑 提交于 2020-01-30 11:30:56
1、题目描述: 获取所有非manager的员工emp_no CREATE TABLE `dept_manager` ( `dept_no` char(4) NOT NULL, `emp_no` int(11) 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`)); 输入描述: 无 输出描述: emp_no 10001 10003 10007 10008 10009 10011 2、代码: select emp_no from employees where emp_no not in ( select emp_no from dept_manager ) 来源: https://www

ORACLE SEQUENCE 介绍

北城以北 提交于 2020-01-30 09:36:53
在oracle中sequence就是所谓的序列号,每次取的时候它会自动增加,一般用在需要按序列号排序的地方。 1、Create Sequence 你首先要有CREATE SEQUENCE或者CREATE ANY SEQUENCE权限, CREATE SEQUENCE emp_sequence INCREMENT BY 1 -- 每次加几个 START WITH 1 -- 从1开始计数 NOMAXVALUE -- 不设置最大值 NOCYCLE -- 一直累加,不循环 CACHE 10; 一旦定义了emp_sequence,你就可以用CURRVAL,NEXTVAL CURRVAL=返回 sequence的当前值 NEXTVAL=增加sequence的值,然后返回 sequence 值 比如: emp_sequence.CURRVAL emp_sequence.NEXTVAL 可以使用sequence的地方: - 不包含子查询、snapshot、VIEW的 SELECT 语句 - INSERT语句的子查询中 - NSERT语句的VALUES中 - UPDATE 的 SET中 可以看如下例子: INSERT INTO emp VALUES (empseq.nextval, 'LEWIS', 'CLERK',7902, SYSDATE, 1200, NULL, 20); SELECT

HIVE实验

╄→尐↘猪︶ㄣ 提交于 2020-01-29 04:04:15
Hive基本操作实验 show命令显示数据库和表 show databases ; show tables ; create创建test数据库,并通过show命令查看。 create database test ; show database ; create命令创建emp表,列名分别为empno、ename、deptno、mgr、和salary,并通过show命令查看。 create table emp ( empno string,ename string,deptno string,mgr string,salary int ) row format delimited fields terminated by '\t' ; show tables ; 将/root下面的emp.txt中的内容导入到emp表,数据之间以 \t 分隔开。 load data local inpath '/root/emp.txt' overwrite into table emp; select * from emp; 向emp表增加列adress,然后显示emp表的结构; alter table emp add columns (adress string); desc emp; 建立以firstname为分区列的分区表testa;向分区表testa中插入数据,然后查看目录结构。 create

从lambda表达式到方法引用

微笑、不失礼 提交于 2020-01-29 03:58:03
比如我们有一个员工类: package com . company . lambda ; public class Employee { private String name ; private int age ; private double salary ; public String getName ( ) { return name ; } public void setName ( String name ) { this . name = name ; } public int getAge ( ) { return age ; } public void setAge ( int age ) { this . age = age ; } public double getSalary ( ) { return salary ; } public void setSalary ( double salary ) { this . salary = salary ; } public Employee ( String name , int age , double salary ) { this . name = name ; this . age = age ; this . salary = salary ; } public Employee ( int age

数据结构--哈希表

筅森魡賤 提交于 2020-01-28 23:04:11
1.哈希表(散列)-Google 上机题 1)看一个实际需求,Google 公司的一个上机题: 2)有一个公司,当有新的员工来报到时,要求将该员工的信息加入(id,性别,年龄,住址...),当输入该员工的id时,要求查 找到该员工的所有信息。 3)要求:不适用数据库,尽量节省内存,速度越快越好=> 哈希表(散列) 2.哈希表的基本介绍 散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值 映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。 Google 公司的一个上机题: 有一个公司,当有新的员工来报到时,要求将该员工的信息加入(id,性别,年龄,住址...),当输入该员工的id时,要求查 找到该员工的所有信息。 要求: 1)不使用数据库,速度越快越好=>哈希表(散列) 2)添加时,保证按照id从低到高插入[课后思考:如果id不是从低到高插入,但要求各条链表仍是从低到高,怎么解决?] 3)使用链表来实现哈希表,该链表不带表头[即:链表的第一个结点就存放雇员信息] 4)思路分析并画出示意图 5)代码实现 package com.example.demo.hashtable; import java.util.Scanner; public class