搜尋
首頁資料庫mysql教程4.mysql数据库创建,表创建模等模板脚本,mysql_SQL99标准的连接查询(内连接,外连接,满外连接,交叉连接)_MySQL



  1. 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_fk foreign key(deptno) references dept(deptno)

    )DEFAULT CHARSET=utf8;

    --创建索引

    -- CREATE INDEX 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;

    1. 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 |

      +------------------------------------------------------------------------+

      aaaaddd ccccbbbbbb

      aaaaddd ccccbbbbbb

      aaaaddd ccccbbbbbb

      aaaaddd ccccbbbbbb

      方法:按住alt键以后,鼠标拖动,选中一个矩形区域

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
每5分钟执行一次的Python脚本每5分钟执行一次的Python脚本Sep 10, 2023 pm 03:33 PM

自动化和任务调度在简化软件开发中的重复任务方面发挥着至关重要的作用。想象一下,有一个Python脚本需要每5分钟执行一次,例如从API获取数据、执行数据处理或发送定期更新。如此频繁地手动运行脚本可能非常耗时并且容易出错。这就是任务调度的用武之地。在这篇博文中,我们将探讨如何安排Python脚本每5分钟执行一次,确保它自动运行而无需手动干预。我们将讨论可用于实现此目标的不同方法和库,使您能够有效地自动化任务。使用time.sleep()函数每5分钟运行一次Python脚本的一种简单方法是利用tim

Python脚本关闭计算机Python脚本关闭计算机Aug 29, 2023 am 08:01 AM

在当今快节奏的数字世界中,能够自动执行计算机任务可以极大地提高生产力和便利性。其中一项任务是关闭计算机,如果手动完成,这可能会非常耗时。值得庆幸的是,Python为我们提供了一套强大的工具来与系统交互并自动执行此类任务。在这篇博文中,我们将探讨如何编写Python脚本来轻松关闭计算机。无论您是想安排自动关机、远程启动关机,还是只是通过避免手动关机来节省时间,此脚本都会派上用场。导入所需的模块在开始编写脚本之前,我们需要导入必要的模块,以便与系统交互并执行关闭命令。在本节中,我们将导入os模块(它

Python 脚本打包 exe,auto-py-to-exe 来帮你!Python 脚本打包 exe,auto-py-to-exe 来帮你!Apr 13, 2023 pm 04:49 PM

一. 什么是auto-py-to-exeauto-py-to-exe 是一个用于将Python程序打包成可执行文件的图形化工具。本文就是主要介绍如何使用 auto-py-to-exe 完成 python 程序打包。auto-py-to-exe 基于 pyinstaller ,相比于 pyinstaller ,它多了 GUI 界面,用起来更为简单方便二. 安装 auto-py-to-exe首先我们要确保我们的 python 环境要大于或等于 2.7 然后在 cmd 里面输入:pip install

Python脚本重启计算机Python脚本重启计算机Sep 08, 2023 pm 05:21 PM

重新启动计算机是一项常见任务,我们经常执行此任务来解决问题、安装更新或应用系统更改。虽然重新启动计算机的方法有很多种,但使用Python脚本可以提供自动化和便利性。在本文中,我们将探讨如何创建一个可以通过简单执行来重新启动计算机的Python脚本。我们将首先讨论重新启动计算机的重要性及其带来的好处。然后,我们将深入研究Python脚本的实现细节,解释所涉及的必要模块和功能。在整篇文章中,我们将提供详细的解释和代码片段,以确保清晰的理解。重新启动计算机的重要性重新启动计算机是基本的故障排除步骤,可

五个方便好用的Python自动化脚本五个方便好用的Python自动化脚本Apr 11, 2023 pm 07:31 PM

相比大家都听过自动化生产线、自动化办公等词汇,在没有人工干预的情况下,机器可以自己完成各项任务,这大大提升了工作效率。编程世界里有各种各样的自动化脚本,来完成不同的任务。尤其Python非常适合编写自动化脚本,因为它语法简洁易懂,而且有丰富的第三方工具库。这次我们使用Python来实现几个自动化场景,或许可以用到你的工作中。1、自动化阅读网页新闻这个脚本能够实现从网页中抓取文本,然后自动化语音朗读,当你想听新闻的时候,这是个不错的选择。代码分为两大部分,第一通过爬虫抓取网页文本呢,第二通过阅读工

超硬核!11个非常实用的 Python 和 Shell 拿来就用脚本实例!超硬核!11个非常实用的 Python 和 Shell 拿来就用脚本实例!Apr 12, 2023 pm 01:52 PM

Python 脚本部分实例:企业微信告警、FTP 客户端、SSH 客户端、Saltstack 客户端、vCenter 客户端、获取域名 ssl 证书过期时间、发送今天的天气预报以及未来的天气趋势图;Shell 脚本部分实例:SVN 完整备份、Zabbix 监控用户密码过期、构建本地 YUM 以及上篇文章中有读者的需求(负载高时,查出占用比较高的进程脚本并存储或推送通知);篇幅有些长,还请大家耐心翻到文末,毕竟有彩蛋。Python 脚本部分企业微信告警此脚本通过企业微信应用,进行微信告警,可用于

Python脚本注销计算机Python脚本注销计算机Sep 05, 2023 am 08:37 AM

在当今的数字时代,自动化在简化和简化各种任务方面发挥着至关重要的作用。其中一项任务是注销计算机,这通常是通过从操作系统的用户界面中选择注销选项来手动完成的。但是,如果我们可以使用Python脚本自动执行此过程呢?在这篇博文中,我们将探讨如何创建一个Python脚本,只需几行代码就可以注销计算机。在本文中,我们将逐步介绍创建用于注销计算机的Python脚本的过程。我们将介绍必要的先决条件,讨论以编程方式注销的不同方法,并提供编写脚本的分步指南。此外,我们将解决特定于平台的注意事项,并重点介绍最佳实

五个鲜为人知的现代 Bash 脚本编写技术五个鲜为人知的现代 Bash 脚本编写技术Jun 26, 2023 pm 08:36 PM

程序员经常使用Bash命令语言创建Shell脚本来自动化手动任务。例如,他们会为各种配置、文件操作、生成构建结果和各种与DevOps相关的活动创建Bash脚本。几乎所有类Unix或基于Unix的操作系统都为用户提供预安装的Bash解释器,因此我们可以使用Bash编写更具可移植性的自动化脚本。正如我们已经知道的那样,Bash脚本编写是指使用Bash命令语言的语法、内置Bash命令和核心操作系统CLI程序(如GNU核心工具)编写一系列命令。标准且老式的Bash脚本通常执行一些命令并在终端上显示纯文本

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
3 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

SublimeText3 英文版

SublimeText3 英文版

推薦:為Win版本,支援程式碼提示!

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

WebStorm Mac版

WebStorm Mac版

好用的JavaScript開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版