ホームページ データベース mysql チュートリアル 4.mysql数据库创建,表创建模等模板脚本,mysql_SQL99标准的连接查询(内连接,外连接,满外连接,交叉连接)_MySQL

4.mysql数据库创建,表创建模等模板脚本,mysql_SQL99标准的连接查询(内连接,外连接,满外连接,交叉连接)_MySQL

Jun 01, 2016 pm 01:02 PM
データベース テンプレート 脚本



  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 までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

iOS 18では、紛失または破損した写真を復元するための新しい「復元」アルバム機能が追加されます iOS 18では、紛失または破損した写真を復元するための新しい「復元」アルバム機能が追加されます Jul 18, 2024 am 05:48 AM

Apple の最新リリースの iOS18、iPadOS18、および macOS Sequoia システムでは、さまざまな理由で紛失または破損した写真やビデオをユーザーが簡単に回復できるように設計された重要な機能が写真アプリケーションに追加されました。この新機能では、写真アプリのツール セクションに「Recovered」というアルバムが導入され、ユーザーがデバイス上に写真ライブラリに含まれていない写真やビデオがある場合に自動的に表示されます。 「Recovered」アルバムの登場により、データベースの破損、カメラ アプリケーションが写真ライブラリに正しく保存されない、または写真ライブラリを管理するサードパーティ アプリケーションによって失われた写真やビデオに対する解決策が提供されます。ユーザーはいくつかの簡単な手順を実行するだけで済みます

PHP で MySQLi を使用してデータベース接続を確立するための詳細なチュートリアル PHP で MySQLi を使用してデータベース接続を確立するための詳細なチュートリアル Jun 04, 2024 pm 01:42 PM

MySQLi を使用して PHP でデータベース接続を確立する方法: MySQLi 拡張機能を含める (require_once) 接続関数を作成する (functionconnect_to_db) 接続関数を呼び出す ($conn=connect_to_db()) クエリを実行する ($result=$conn->query()) 閉じる接続 ( $conn->close())

PHP でデータベース接続エラーを処理する方法 PHP でデータベース接続エラーを処理する方法 Jun 05, 2024 pm 02:16 PM

PHP でデータベース接続エラーを処理するには、次の手順を使用できます。 mysqli_connect_errno() を使用してエラー コードを取得します。 mysqli_connect_error() を使用してエラー メッセージを取得します。これらのエラー メッセージをキャプチャしてログに記録することで、データベース接続の問題を簡単に特定して解決でき、アプリケーションをスムーズに実行できるようになります。

Golangを使用してリモートデータベースに接続するにはどうすればよいですか? Golangを使用してリモートデータベースに接続するにはどうすればよいですか? Jun 01, 2024 pm 08:31 PM

Go 標準ライブラリのデータベース/SQL パッケージを通じて、MySQL、PostgreSQL、SQLite などのリモート データベースに接続できます。データベース接続情報を含む接続文字列を作成します。 sql.Open() 関数を使用してデータベース接続を開きます。 SQL クエリや挿入操作などのデータベース操作を実行します。 defer を使用してデータベース接続を閉じ、リソースを解放します。

Golangでデータベースコールバック関数を使用するにはどうすればよいですか? Golangでデータベースコールバック関数を使用するにはどうすればよいですか? Jun 03, 2024 pm 02:20 PM

Golang でデータベース コールバック関数を使用すると、次のことを実現できます。 指定されたデータベース操作が完了した後にカスタム コードを実行します。追加のコードを記述せずに、個別の関数を通じてカスタム動作を追加します。コールバック関数は、挿入、更新、削除、クエリ操作に使用できます。コールバック関数を使用するには、sql.Exec、sql.QueryRow、または sql.Query 関数を使用する必要があります。

C++ テンプレートとジェネリックの比較? C++ テンプレートとジェネリックの比較? Jun 04, 2024 pm 04:24 PM

C++ におけるテンプレートとジェネリックの違い: テンプレート: コンパイル時に定義され、明確に型指定され、効率が高く、コード サイズが小さい。ジェネリック: 実行時の型指定、抽象インターフェイス、柔軟性を提供しますが、効率は低くなります。

実際の開発における C++ テンプレートの一般的な用途は何ですか? 実際の開発における C++ テンプレートの一般的な用途は何ですか? Jun 05, 2024 pm 05:09 PM

C++ テンプレートは、コンテナ クラス テンプレート、アルゴリズム テンプレート、汎用関数テンプレート、メタプログラミング テンプレートなど、実際の開発で広く使用されています。たとえば、汎用の並べ替えアルゴリズムを使用して、さまざまな種類のデータの配列を並べ替えることができます。

C++ を使用してデータベース接続と操作を処理するにはどうすればよいですか? C++ を使用してデータベース接続と操作を処理するにはどうすればよいですか? Jun 01, 2024 pm 07:24 PM

C++ の DataAccessObjects (DAO) ライブラリを使用して、データベース接続の確立、SQL クエリの実行、新しいレコードの挿入、既存のレコードの更新など、データベースに接続して操作します。具体的な手順は次のとおりです。 1. 必要なライブラリ ステートメントを含めます。 2. データベース ファイルを開きます。 3. SQL クエリを実行するかデータを操作するための Recordset オブジェクトを作成します。 4. 特定のニーズに応じて結果をスキャンするか、レコードを更新します。

See all articles