mysql外连接基准表_4.mysql数据库创建,表创建模等模板脚本,mysql_SQL99标准的连接查询(内连接,外连接,满外连接,交叉连接)...
mysql数据库创建,表创建模等模板脚本
--用root用户登录系统,执行脚本
--创建数据库
create database mydb61 character set utf8 ;
--选择数据库
use mydb61;
--增加dbuser1用户
--创建用户‘dbuser61’密码为‘dbuser61’拥有操作数据库mydb61的所有权限
GRANT ALL ON mydb61.* TO dbuser61 IDENTIFIED BY "dbuser61";
flush privileges;
-- grant select,insert,update,delete on mydb61.* to dbuser61@localhost identified by "dbuser61";
-- grant select,insert,update,delete on mydb61.* to dbuser61@'%' identified by "dbuser61";
--创建表
--创建部门表并赋值
DROP TABLE IF EXISTS `dept`;
CREATE TABLE `dept`(
`deptno`int(2) PRIMARY KEY,
`dname`varchar(14) NOT NULL,
`loc`varchar(13)
)DEFAULT CHARSET=utf8;
INSERT INTO dept VALUES(10, 'ACCOUNTING', 'NEW YORK');
INSERT INTO dept VALUES(20, 'RESEARCH', 'DALLAS');
INSERT INTO dept VALUES(30, 'SALES', 'CHICAGO');
INSERT INTO dept VALUES(40, 'OPERATIONS', 'BOSTON');
commit;
--注意mysql的sql语言约束如果起名字,需要单独写在表后面
--创建员工表并赋值
DROP TABLE IF EXISTS `emp`;
CREATE TABLE `emp`(
-- `empno`int(4) constraint emp_empno_pk PRIMARY KEY,
`empno`int(4) PRIMARY KEY,
`ename`varchar(10) NOT NULL,
`job`varchar(9),
`mgr`int(4),
`hiredate`DATE,
`sal`int ,
`comm`int,
`deptno`int(2) ,
constraint emp_deptno_fkforeign key(deptno) references dept(deptno)
)DEFAULT CHARSET=utf8;
--创建索引
-- CREATEINDEX MYSCOTT.IX_CAtbAuditOperInfo_OT ON MYSCOTT.EMP(ENAME) TABLESPACE ts_myscott2;
create index emp_ename_index on emp(ename);
--注意日期格式不一样
INSERT INTO emp VALUES(7369, 'SMITH', 'CLERK', 7902, '1980-12-17', 800, NULL, 20);
INSERT INTO emp VALUES(7499, 'ALLEN', 'SALESMAN', 7698, '1981-02-20', 1600, 300, 30);
-- INSERT INTO emp(empno, ename, job, mgr, hiredate, sal,deptno) VALUES(7499, 'ALLEN', 'SALESMAN', 7698, '1981-02-20', 1600, 30);
INSERT INTO emp VALUES(7521, 'WARD', 'SALESMAN', 7698, '1981-02-22', 1250, 500, 30);
INSERT INTO emp VALUES(7566, 'JONES', 'MANAGER', 7839, '1981-04-02', 2975, NULL, 20);
INSERT INTO emp VALUES(7654, 'MARTIN', 'SALESMAN', 7698, '1981-09-28', 1250, 1400, 30);
INSERT INTO emp VALUES(7698, 'BLAKE', 'MANAGER', 7839, '1981-05-01', 2850, NULL, 30);
INSERT INTO emp VALUES(7782, 'CLARK', 'MANAGER', 7839, '1981-06-09', 2450, NULL, 10);
INSERT INTO emp VALUES(7788, 'SCOTT', 'ANALYST', 7566, '1987-04-19', 3000, NULL, 20);
INSERT INTO emp VALUES(7839, 'KING', 'PRESIDENT', NULL, '1981-11-17', 5000, NULL, 10);
INSERT INTO emp VALUES(7844, 'TURNER', 'SALESMAN', 7698, '1981-09-08', 1500, 0, 30);
INSERT INTO emp VALUES(7876, 'ADAMS', 'CLERK', 7788, '1987-05-23', 1100, NULL, 20);
INSERT INTO emp VALUES(7900, 'JAMES', 'CLERK', 7698, '1981-12-03', 950, NULL, 30);
INSERT INTO emp VALUES(7902, 'FORD', 'ANALYST', 7566, '1981-12-03', 3000, NULL, 20);
INSERT INTO emp VALUES(7934, 'MILLER', 'CLERK', 7782, '1982-01-23', 1300, NULL, 10);
commit;
--创建工资级别表并赋值
DROP TABLE IF EXISTS `salgrade`;
CREATE TABLE `salgrade`(
`grade`int,
`losal`int,
`hisal`int
)DEFAULT CHARSET=utf8;
INSERT INTO salgrade VALUES(1, 700, 1200);
INSERT INTO salgrade VALUES(2, 1201, 1400);
INSERT INTO salgrade VALUES(3, 1401, 2000);
INSERT INTO salgrade VALUES(4, 2001, 3000);
INSERT INTO salgrade VALUES(5, 3001, 9999);
commit;
--创建奖金表
DROP TABLE IF EXISTS `bonus`;
CREATE TABLE bonus(
`ename`VARCHAR(10),
`job`VARCHAR(9),
`sal`int,
`comm`int
)DEFAULT CHARSET=utf8;
commit;
mysql_SQL99标准的连接查询(内连接,外连接,满外连接,交叉连接)
使用SQL99标准的连接查询(JOIN..ON..)
内连接(innerjoin等价于oracle中的“逗号”,下面的on替换掉了where)
只返回满足连接条件的数据(两边都有的才显示)。
Mysql
Oracle
select e.*, d.*
from emp e
inner join dept d
on e.deptno=d.deptno
select e.*, d.*
from emp e, dept d
where e.deptno=d.deptno;
--也可以省略inner关键字。
左外连接
左边有值才显示。
Mysql
Oracle
select e.*, d.*
from emp e
left outer join dept d
on e.deptno=d.deptno
select e.*, d.*
from emp e
, dept d
where e.deptno=d.deptno(+)
--也可以省略outer关键字
右外连接
右边边有值才显示。
Mysql
Oracle
select e.*, d.*
from emp e
right outer join dept d
on e.deptno=d.deptno
select e.*, d.*
from emp e
, dept d
where e.deptno(+)=d.deptno
--也可以省略outer关键字
满外联接
任一边有值就会显示。
selecte.*, d.*
fromemp e
fullouter join dept d
one.deptno=d.deptno
--也可以省略outer关键字
交叉连接:
叉集,就是笛卡尔积
selecte.*, d.*
fromemp e
crossjoin dept d
--没有连接条件
eg:查询员工信息,员工号,姓名,月薪,部门名称
select e.empno, e.ename, e.sal, d.dname
from emp e, dept d
where e.deptno=d.deptno
select e.empno, e.ename, e.sal, d.dname
from emp e inner join dept d--逗号join
on e.deptno=d.deptno-- where on
//显示所有部门信息
//显示各个部门的部门人数
select d.deptno部门号, d.dname部门名称,count(e.empno)人数
from emp e, dept d
where e.deptno(+)=d.deptno
group by d.deptno, d.dname
select d.deptno部门号, d.dname部门名称,count(e.empno)人数
from emp e right outer join dept d
on e.deptno=d.deptno
group by d.deptno, d.dname
自连接: --查询员工信息,老板信息
显示:****的老板是****
select e.ename , b.ename
from emp e, emp b
where e.mgr=b.empno
select concat ( concat(e.ename, '的老板是'), b.ename)
from emp e, emp b
where e.mgr=b.empno
select e.ename, ifnull(b.ename,'他自己')
from emp e left outer join emp b
on e.mgr=b.empno
select concat ( concat(e.ename, '的老板是'), ifnull(b.ename,'他自己'))
from emp e left outer join emp b
on e.mgr=b.empno
+------------------------------------------------------------------------+
| concat ( concat(e.ename, '的老板是'), ifnull(b.ename,'他自己'))|
+------------------------------------------------------------------------+
| SMITH的老板是FORD|
| ALLEN的老板是BLAKE|
| WARD的老板是BLAKE|
| JONES的老板是KING|
| MARTIN的老板是BLAKE|
| BLAKE的老板是KING|
| CLARK的老板是KING|
| SCOTT的老板是JONES|
| KING的老板是他自己|
| TURNER的老板是BLAKE|
| ADAMS的老板是SCOTT|
| JAMES的老板是BLAKE|
| FORD的老板是JONES|
| MILLER的老板是CLARK|
+------------------------------------------------------------------------+
aaaadddccccbbbbbb
aaaadddccccbbbbbb
aaaadddccccbbbbbb
aaaadddccccbbbbbb
方法:按住alt键以后,鼠标拖动,选中一个矩形区域
mysql外连接基准表_4.mysql数据库创建,表创建模等模板脚本,mysql_SQL99标准的连接查询(内连接,外连接,满外连接,交叉连接)...相关推荐
- 4.mysql数据库创建,表创建模等模板脚本,mysql_SQL99标准的连接查询(内连接,外连接,满外连接,交叉连接)
mysql数据库创建,表创建模等模板脚本 --用root用户登录系统,执行脚本 --创建数据库 create database mydb61 character set utf8 ; --选择数 ...
- mysql交叉连接后生成的记录总数_4.mysql数据库创建,表创建模等模板脚本,mysql_SQL99标准的连接查询(内连接,外连接,满外连接,交叉连接)_MySQL...
-- 用root用户登录系统,执行脚本 -- 创建数据库 create database mydb61 character set utf8 ; -- 选择数据库 use mydb61; -- 增加 ...
- mysql创建表时外连接_4.mysql数据库创建,表创建模等模板脚本,mysql_SQL99标准的连接查询(内连接,外连接,满外连接,交叉连接)_MySQL...
-- 用root用户登录系统,执行脚本 -- 创建数据库 create database mydb61 character set utf8 ; -- 选择数据库 use mydb61; -- 增加 ...
- ios mysql 创建不同的用户表_iOS中数据库-创建表-增删改查数据-基础语法
什么是SQL:结构化查询语言.create创建表drop删除表,delete是删除表中的数据 SQL语句不区分大小写,每条语句必须以分号结束,数据库中不可以使用关键字用为表名(sql常用关键字 se ...
- mysql 建表 练习_数据库创建表,插入数据练习
create table shangpin("商品名称" varchar2(30), "商品种类" varchar2(30), "商品单价" ...
- oracle怎么赋予表空间,oracle数据库创建表空间和用户并赋予权限步骤教程-Oracle...
管理员用户登录oracle数据库 1.创建临时表空间 select name from v$tempfile;查出当前数据库临时表空间,主要是使用里面的存放路径; 得到其中一条记录/opt/oracl ...
- python Django 连接mysql数据库创建表详细全过程
python Django 连接mysql数据库创建表详细全过程 1,在数据库中新建一个要连接的数据库(在cmd命令行里登录数据库进行创建创建) mysql -u root -p**+密码** cre ...
- R操作MySQL数据库创建表、删除表、增删改查(CRUD)
R操作MySQL数据库创建表.删除表.增删改查(CRUD) 关系数据中的数据是按照一定范式去存储的.当我们需要非常高级和复杂的Sql查询就可以使用关系数据库的数据资产.不光java和python可以容 ...
- mysql建立修改表存储过程_MySQL数据库创建、表的创建、存储过程、触发器
一.基本内容 (1) 使用SQL语句创建数据库: (2) 为数据库分配管理权限: (3) 定义表和数据库的完整性,student(学生表),course(课程表)和 sc(学生选课表), 并设置各个表 ...
最新文章
- Bootstrap select 多选并获取选中的值
- iOS 9应用开发教程之显示编辑文本标签文本框
- SQL SERVER – Beginning of SQL Server Architecture – Terminology – Guest Post
- 【STM32】I2C详解
- 从头搭建一个深度学习框架
- tablets计算机英语,计算机专业英语词汇
- 计算机网络之数据链路层:11、CSMA/CD协议-随机访问介质访问控制
- JavaScript高级程序设计(2)在HTML中使用JavaScript
- lua语言和python_[动态语言]python和lua中的三元操作符and-or
- Quartz使用总结(转)
- linux --- 启动过程
- 织梦dede采集文章
- 【noi.ac #1779】D
- python毕业设计论文-基于Python的网络爬虫的设计与实现.doc
- CentOS7.5 远程桌面设置
- 电脑开启后,进入桌面黑屏,任务管理器可以用(排除是硬件问题)
- OpenCV-Python 中文教程15——OpenCV 中的轮廓
- 用vba复制模板,并根据指定的列形成多个sheet重命名
- 开机出现checking file system on C或者D E F盘符的解决方法
- centOS6使用NAT方式联网