emp

三十六、单表与多表查询

自古美人都是妖i 提交于 2019-11-28 03:51:47
单表查询: create table emp( id int not null unique auto_increment, name varchar(20) not null, sex enum('male','female') not null default 'male', #大部分是男的 age int(3) unsigned not null default 28, hire_date date not null, post varchar(50), post_comment varchar(100), salary double(15,2), office int, #一个部门一个屋子 depart_id int ); insert into emp(name,sex,age,hire_date,post,salary,office,depart_id) values ('jason','male',18,'20170301','张江第一帅形象代言',7300.33,401,1), #以下是教学部 ('egon','male',78,'20150302','teacher',1000000.31,401,1), ('kevin','male',81,'20130305','teacher',8300,401,1), ('tank','male',73,'20140701

mysql的基本查询语法及方法 多表查询

╄→尐↘猪︶ㄣ 提交于 2019-11-28 03:50:52
# MySQL的基本查询语法及方法 ## 1,单表查询 ​ ```mysql create table emp( id int not null unique auto_increment, name varchar(20) not null, sex enum('male','female')not null default 'male',#默认为男的 age int(3) unsigned not null default 28, hire_date date not null, post varchar(50), post_comment varchar(99), salary double(15,2), office int, depart_id int); #插入记录 #三个部门:教学,销售,运营 insert into emp(name,sex,age,hire_date,post,salary,office,depart_id) values ('jason','male',18,'20170301','上海第一DSB',7300.33,401,1), #以下是教学部 ('egon','male',78,'20150302','teacher',1000000.31,401,1), ('kevin','male',81,'20130305','teacher'

Mysql基本查询语句及方法

可紊 提交于 2019-11-28 03:40:35
在mysql中 查询一张表中的记录的时候    书写顺序是 : select * from 表名 where name='long' and age ='18'; 但是mysql中的执行顺序是   from 后面加表名 确定你是那张表   where 后面是条件 通过条件 来筛选这表的内容   select 后面是 你where筛选出的数据中的 某些字段 * 是所有字段    # 查询语句执行的结果也是一张表,可以看成虚拟表 我们创建一张 emp的员工表 当我们的字段特别多的时候 结果的排版可能会出现凌乱现象 我们可以在查询语句末尾 加上\G来规范查询结果 select * from 表名\G; 当我们遇到一个需求时 怎么来分析? 例如 1.查询id大于等于3小于等于6的数据    给你展示下实际操作 1.先确定 来自哪一张表 from emp 2. 筛选条件 where id >= 3 and id <=6; 3.select *    select * from emp where id >= 3 and id <= 6; select * from emp where id between 3 and 6; between 等价于id >= 3 and id <= 6 2.查询薪资是20000或者18000或者17000的数据 select id,name from emp

python day37

我与影子孤独终老i 提交于 2019-11-28 03:30:17
今日内容 基本查询语句及方法 from where group by having distinct order by limit .... 书写顺序格式: select id,name from emp where id > 3 and id < 6; 执行顺序格式: from # 确定到底是哪站表 where # 根据过来条件 筛选数据 select # 拿出筛选出来的数据中的某些字段 当表字段特别多的时候 结果的排版可能会出现混乱的现象,你可以在查询语句加\G来规范查询结果 select * from emp\G; 查询练习: # 1.查询id大于等于3小于等于6的数据 select * from emp where id >= 3 and id <= 6; select * from emp where id between 3 and 6; # 上述语句完全等价 ​ # 2.查询薪资是20000或者18000或者17000的数据 select id,name from emp where salary = 20000 or salary = 18000 or salary = 17000; select id,name from emp where salary in (20000,18000,17000); ​ # 3.查询员工姓名中包含o字母的员工姓名和薪资

Oracle-DQL 4- 多表查询

主宰稳场 提交于 2019-11-28 03:27:06
多表查询: 1.笛卡尔积 SELECT * FROM dept; --查询员工的信息和其所在部门的信息 SELECT ename,job,dname,loc FROM emp,dept; --集合A中的所有元素和集合B中的所有元素组成的有序对的集合称为笛卡尔积,也叫做笛卡尔结果 --给两张表建立连接,再进行多表查询可以避免笛卡尔积 --在where字句中定义连接条件,就是两张表之间数据的对应关系 --表1.列1 = 表2.列2 --查询n张表,连接条件至少有n-1个 2.多表查询的语法规范 -- 多表查询时,必须使用表名对列名进行限定:表名.列名 -- 避免两张表中有同名的列,查询时出错;提高查询效率 SELECT emp.ename,emp.job,emp.deptno,dept.dname,dept.loc FROM emp,dept; -- 多表查询时,给表起别名,使用别名对列名进行限定 --先写from SELECT e.ename,e.job,e.deptno,d.dname,d.loc FROM emp e,dept d; -- 如果查询的列中有相同名字,起不同的别名加以区分 SELECT e.ename,e.job,e.deptno eno,d.deptno dno,d.dname,d.loc FROM emp e,dept d; 3.等值连接 --

数据库查询语句,连表操作

瘦欲@ 提交于 2019-11-28 03:24:41
前期准备 create table emp( id int not null unique auto_increment, name varchar(20) not null, sex enum('male','female') not null default 'male', #大部分是男的 age int(3) unsigned not null default 28, hire_date date not null, post varchar(50), post_comment varchar(100), salary double(15,2), office int, #一个部门一个屋子 depart_id int ); #插入记录 #三个部门:教学,销售,运营 insert into emp(name,sex,age,hire_date,post,salary,office,depart_id) values ('jason','male',18,'20170301','张江第一帅形象代言',7300.33,401,1), #以下是教学部 ('egon','male',78,'20150302','teacher',1000000.31,401,1), ('kevin','male',81,'20130305','teacher',8300,401,1), ('tank'

外键 #36

本小妞迷上赌 提交于 2019-11-28 02:45:33
day36外键 表与表之间建关系 1.外键 1 """""" 2 """一对多""" 3 """ 4 5 """ 6 """ 7 例: 8 以员工表和部门表为例 9 先站在员工表 看能否有多个员工对应同一个部门 10 翻译过来:一个部门能否有多个员工 可以!!!(暂时能确认员工单向多对一部门) 11 再站在部门表看能否有多个部门对应一个员工 12 翻译过来:一个员工能否属于多个部门 不可以!!! 13 结论:员工表和部门表之间仅仅是单向的 多对一 14 那么他们的表关系就是"一对多" 15 表关系中没有多对一一说,只有一对多 16 (无论是多对一还是一对多都叫"一对多") 17 """ 18 """ 19 如何让两种表有代码层面上的真正的关联 就必须使用"外键" 20 什么是外键? 21 让表与表有硬性层面的的关系 22 23 foreign key 24 外键约束 25 1.在创建表的时候 必须先创建被关联表 26 2.插入数据的时候 也必须先插入被关联表的数据 27 28 """ 29 """ 30 例: 31 建表: 32 首先创建被关联表 33 create table dep( 34 id int primary key auto_increment, 35 dep_name varchar(32), 36 dep_desc varchar(123) 37 ); 38

Hive 系列(四)—— Hive 常用 DDL 操作

不想你离开。 提交于 2019-11-28 02:44:32
一、Database 1.1 查看数据列表 show databases; 1.2 使用数据库 USE database_name; 1.3 新建数据库 语法: CREATE (DATABASE|SCHEMA) [IF NOT EXISTS] database_name --DATABASE|SCHEMA 是等价的 [COMMENT database_comment] --数据库注释 [LOCATION hdfs_path] --存储在 HDFS 上的位置 [WITH DBPROPERTIES (property_name=property_value, ...)]; --指定额外属性 示例: CREATE DATABASE IF NOT EXISTS hive_test COMMENT 'hive database for test' WITH DBPROPERTIES ('create'='heibaiying'); 1.4 查看数据库信息 语法: DESC DATABASE [EXTENDED] db_name; --EXTENDED 表示是否显示额外属性 示例: DESC DATABASE EXTENDED hive_test; 1.5 删除数据库 语法: DROP (DATABASE|SCHEMA) [IF EXISTS] database_name [RESTRICT

test3

泄露秘密 提交于 2019-11-28 02:38:58
查询test1表中所有员工入职离现在几天: select sysdate-t.date from test_1 t; 查询出明天此刻 select sysdate + 1 from dual; 查询test1表中所有员工入职离现在几月: select (sysdate-t.date)/30 from test_1 t; select months_between(sysdate,t.hiredate) from test_1; 查询test1表中所有员工入职离现在几年: select (sysdate-t.date)/365 from test_1 t; select months_between(sysdate,t.hiredate) /12 from test_1; 查询距离现在几周: select round((sysdate-t.date)/7 ) from test_1 t; 计算两列加减: select e.sal*12 + nvl(e.tim2, 0) from test e; 工资倒叙后每页显示五条, 查询第二页: select * from( select rownum rn, e.* from ( select * from emp order by sal desc) e where rownum<11) where rn>5 ; 通过视图创建表:

test3

霸气de小男生 提交于 2019-11-28 02:25:12
查询test1表中所有员工入职离现在几天: select sysdate-t.date from test_1 t; 查询出明天此刻 select sysdate + 1 from dual; 查询test1表中所有员工入职离现在几月: select (sysdate-t.date)/30 from test_1 t; select months_between(sysdate,t.hiredate) from test_1; 查询test1表中所有员工入职离现在几年: select (sysdate-t.date)/365 from test_1 t; select months_between(sysdate,t.hiredate) /12 from test_1; 查询距离现在几周: select round((sysdate-t.date)/7 ) from test_1 t; 计算两列加减: select e.sal*12 + nvl(e.tim2, 0) from test e; 工资倒叙后每页显示五条, 查询第二页: select * from( select rownum rn, e.* from ( select * from emp order by sal desc) e where rownum<11) where rn>5 ; 通过视图创建表: