日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

4.mysql数据库创建,表中创建模具模板脚本,mysql_SQL99标准连接查询(恩,外部连接,全外连接,交叉连接)...

發布時間:2025/3/21 数据库 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 4.mysql数据库创建,表中创建模具模板脚本,mysql_SQL99标准连接查询(恩,外部连接,全外连接,交叉连接)... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

  • mysql數據庫創建,表創建模等模板腳本

  • -- root用戶登錄系統,運行腳本

    ?

    -- 創建數據庫

    create database mydb61 character set utf8 ;

    ?

    -- 選擇數據庫

    use mydb61;

    ?

    -- 添加 dbuser1 用戶

    -- ??? 創建用戶‘dbuser61’password為 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;

    ?

    -- 注意mysqlsql語言 約束假設起名字,須要單獨寫在表后面

    -- 創建員工表 并賦值

    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;

    ?

  • 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;

    -- 也能夠省略innerkeyword。

    ?

    ???????? 左外連接

    ?????????????????? 左邊有值才顯示。

    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(+)

    -- 也能夠省略outerkeyword

    ?

    ???????? 右外連接

    ?????????????????? 右邊邊有值才顯示。

    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

    -- 也能夠省略outerkeyword

    ?

    ???????? 滿外聯接

    ?????????????????? 任一邊有值就會顯示。

    ?????????????????? selecte.*, d.*

    ?????????????????? fromemp e

    ?????????????????? fullouter join dept d?????????????????

    ?????????????????? one.deptno=d.deptno

    ?????????????????? --也能夠省略outerkeyword

    ????????

    ???????? 交叉連接:

    ?????????????????? 叉集,就是笛卡爾積

    ?????????????????? 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鍵以后,鼠標拖動,選中一個矩形區域

    ?

    ?

    總結

    以上是生活随笔為你收集整理的4.mysql数据库创建,表中创建模具模板脚本,mysql_SQL99标准连接查询(恩,外部连接,全外连接,交叉连接)...的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。