MySQLチュートリアルは、このブログシリーズの2番目のブログです。前のブログで ' MySQLとは ' 、このリレーショナルデータベースを使い始める前に理解する必要のあるすべての基本的な用語を紹介しました。このMySQLのブログでは、データベースを探索するために必要なすべての操作とコマンドを学習します。
このブログで取り上げるトピックは、主にDDL、DML、DCL、TCLの4つのカテゴリに分類されます。
- ザ・ DDL (データ定義言語)は、データベースを定義するために使用されるコマンドで構成されています。例:CREATE、DROP、ALTER、TRUNCATE、COMMENT、RENAME。
- ザ・ DML (データ操作言語)コマンドは、データベースに存在するデータの操作を処理します。例:SELECT、INSERT、UPDATE、DELETE。
- ザ・ DCL (データ制御言語)コマンドは、データベースシステムの権限、アクセス許可、およびその他の制御を処理します。例:GRANT、INVOKE
- ザ・ TCL (トランザクション制御言語)は、主にデータベースのトランザクションを処理するコマンドで構成されています。
コマンドとは別に、ブログで取り上げられている他のトピックは次のとおりです。
これらの各カテゴリを1つずつ説明します。
MySQLチュートリアルに関するこのブログでは、コマンドの記述方法を示すために、以下のデータベースを例として検討します。
学生証 | 学生の名前 | 親の名前 | 住所 | 市 | 郵便番号 | 国 | 料金 |
01 | ハズニティス | エミズ | デリスロード | アフィール | 35110 | アルジェリア | 42145 |
02 | シュバム | 那羅延天 | MGロード | バンガロール | 560001 | インド | 45672 |
03 | サロマオ | バレンタイン | メイヨーロード | 澄んだ川 | 27460 | ブラジル | 65432 |
04 | ヴィシャール | ラメッシュ | クイーンズキー | トロント | 416 | カナダ | 23455 |
05 | Park Jimin | キム・タイヒョン | 江南通り | ソウル | 135081 | 韓国 | 22353 |
表1: サンプルデータベース–MySQLチュートリアル
それでは、今すぐ始めましょう!
新しいアップデートを入手するには、YouTubeチャンネルに登録してください。
MySQLチュートリアル:データ定義(DDL)コマンド
このセクションは、データベースを定義するためのコマンドで構成されています。コマンドは次のとおりです。
ここで、コマンドを開始する前に、MySQLでコメントに言及する方法を説明します。
コメント
他のプログラミング言語と同様に、コメントには主に2つのタイプがあります。
- 単一行コメント– 1行のコメントは「–」で始まります。したがって、その後に記載されているテキストは、行末までコンパイラによって無視されます。
例:
-すべて選択:SELECT * FROM学生
- 複数行コメント– 複数行コメントは/ *で始まり、* /で終わります。したがって、/ *と* /の間に記載されているテキストは、コンパイラーによって無視されます。
例:
/ * Studentテーブルのすべてのレコードのすべての列を選択します:* / SELECT * FROM Student
これで、MySQLでコメントに言及する方法がわかったので、DDLコマンドを続けましょう。
CREATE
createステートメントは、スキーマ、テーブル、またはインデックスのいずれかを作成するために使用されます。
「CREATESCHEMA」ステートメント
このステートメントは、データベースを作成するために使用されます。
構文:
CREATE SCHEMA Database_Name
例:
CREATE SCHEMA StudentInfo
「CREATETABLE」ステートメント
このステートメントは、データベースに新しいテーブルを作成するために使用されます。
構文:
CREATE TABLE table_name (( column1データ型 、 column2データ型 、 column3データ型 、 ...。 )
例:
CREATE TABLE Student(StudentID int、StudentName varchar(255)、ParentName varchar(255)、Address varchar(255)、PostalCode int、City varchar(255))
「CREATETABLEAS」ステートメント
このステートメントは、既存のテーブルから新しいテーブルを作成するために使用されます。したがって、このテーブルは、既存のテーブルと同じ列定義を取得します。
C ++でのオーバーロードとオーバーライドの違い
構文:
CREATE TABLE new_table_name なので 選択する column1、column2、..。 から 既存のテーブル名 どこ ....
例:
CREATE TABLE ExampleTable AS SELECT Studentname、Parentname FROM Student
年齢
ALTERコマンドは、制約または列を追加、変更、または削除するために使用されます。
「ALTERTABLE」ステートメント
このステートメントは、テーブルから制約と列を追加、変更、または削除するために使用されます。
構文:
他の机 table_name 追加 column_nameデータ型
例:
ALTERTABLEの学生はDateOfBirth日付を追加します
落とす
DROPコマンドは、データベース、テーブル、または列を削除するために使用されます。
「DROPSCHEMA」ステートメント
このステートメントは、完全なスキーマを削除するために使用されます。
構文:
DROP SCHEMA schema_name
例:
DROPSCHEMAStudentsInfo
「DROPTABLE」ステートメント
このステートメントは、テーブル全体とそのすべての値を削除するために使用されます。
構文:
DROP TABLE table_name
例:
DROP TABLE table_name
切り捨てる
このステートメントは、テーブル内に存在するデータを削除するために使用されますが、テーブルは削除されません。
構文:
切り捨てテーブル table_name
例:
切り捨てテーブルの学生
名前を変更
このステートメントは、1つ以上のテーブルの名前を変更するために使用されます。
構文:
名前を変更 テーブル tbl_name に new_tbl_name [、 tbl_name2 に new_tbl_name2 ] 。。。
例:
学生の名前をInfostudentsに変更
ここで、次のセクションに進む前に、データベースを操作するときに言及する必要のあるさまざまなタイプのキーと制約について説明します。
MySQLチュートリアル: データベース内のさまざまなタイプのキー
キーには主に5種類あり、データベースに記載されています。
- 候補キー– タプルを一意に識別できる属性の最小セットは、候補キーと呼ばれます。リレーションは複数の候補キーを保持できます。キーは単純キーまたは複合キーのいずれかです。
- スーパーキー– タプルを一意に識別できる属性のセットは、スーパーキーと呼ばれます。したがって、候補キーはスーパーキーですが、その逆は当てはまりません。
- 主キー– すべてのタプルを一意に識別するために使用できる属性のセットも主キーです。したがって、関係に3〜4個の候補キーが存在する場合、それらの中から1つを主キーとして選択できます。
- 代替キー– 主キー以外の候補キーは代替キーと呼ばれます 。
- 外部キー - 他の属性の値として存在する値のみを取得できる属性は、それが参照する属性への外部キーです。
MySQLチュートリアル: データベースで使用される制約
以下の画像を参照してください。データベースで使用される制約です。
図1: データベースで使用される制約–MySQLチュートリアル
さまざまなタイプのキーと制約がわかったので、次のセクション、つまりデータ操作コマンドに進みましょう。
認定データベース管理者になりたいですか?MySQLチュートリアル: データ操作(DML)コマンド
このセクションは、データベースを操作するためのコマンドで構成されています。コマンドは次のとおりです。
これらのコマンドとは別に、次のような他の操作演算子/関数もあります。
使用する
USEステートメントは、すべての操作を実行するためにどのデータベースを使用する必要があるかを示すために使用されます。
構文:
Database_nameを使用する
例:
StudentInfoを使用する
インサート
このステートメントは、テーブルに新しいレコードを挿入するために使用されます。
print_r()
構文:
INSERT INTOステートメントは、次の2つの方法で記述できます。
挿入する table_name (( column1 、 column2 、 column3 、...) 値( value1 、 value2 、 value3 、...) -列名を指定する必要はありません 挿入する table_name 値( value1 、 value2 、 value3 、...)
例:
INSERT INTO Infostudents(StudentID、StudentName、ParentName、Address、City、PostalCode、Country)VALUES( '06'、 'Sanjana'、 'Jagannath'、 'Banjara Hills'、 'Hyderabad'、 '500046'、 'India')INSERT INTO Infostudents VALUES('07 '、' Shivantini '、' Praveen '、' Camel Street '、' Kolkata '、' 700096 '、' India ')
更新
このステートメントは、テーブル内の既存のレコードを変更するために使用されます。
構文:
更新 table_name セットする column1 = value1 、 column2 = value2 、..。 どこ 調子
例:
Infostudentsの更新SETStudentName = 'Alfred'、City = 'Frankfurt' WHERE StudentID = 1
削除
このステートメントは、テーブル内の既存のレコードを削除するために使用されます。
構文:
削除元 table_name どこ 調子
例:
インフォスチューデントから削除WHEREStudentName = 'Salomao'
選択する
このステートメントは、データベースからデータを選択するために使用され、返されたデータは、と呼ばれる結果テーブルに格納されます。 結果セット 。
このステートメントを使用する2つの方法は次のとおりです。
構文:
選択する column1 、 column2、..。 から table_name -(*)は、テーブルからすべてを選択するために使用されます SELECT * FROM table_name
例:
SELECT StudentName、City FROM Infostudents SELECT * FROM Infostudents
個々のSELECTキーワードとは別に、SELECTキーワードで使用される次のステートメントも表示されます。
「SELECTDISTINCT」ステートメント
このステートメントは、異なる値または異なる値のみを返すために使用されます。したがって、重複する値を持つテーブルがある場合は、このステートメントを使用して個別の値を一覧表示できます。
構文:
SELECT DISTINCT column1 、 column2、..。 から table_name
例:
学生から国を選択
「ORDERBY」ステートメント
このステートメントは、目的の結果を昇順または降順で並べ替えるために使用されます。デフォルトでは、結果は昇順で並べ替えられます。結果セットのレコードを降順で表示する場合は、 DESC キーワード。
構文:
選択する column1 、 column2、..。 から table_name ORDER BY column1、column2、..。 ASC | DESC
例:
SELECT * FROM Infostudents ORDER BY Country SELECT * FROM Infostudents ORDER BY Country DESC SELECT * FROM Infostudents ORDER BY Country、StudentName SELECT * FROM Infostudents ORDER BY Country ASC、StudentName DESC
「GROUPBY」ステートメント
このステートメントは、結果セットを1つ以上の列でグループ化するために集計関数とともに使用されます。
構文:
選択する column_name(s) から table_name どこ 調子 GROUP BY column_name(s) ORDER BY column_name(s)
例:
SELECT COUNT(StudentID)、Country FROM Infostudents GROUP BY Country ORDER BY COUNT(StudentID)DESC
「HAVING」条項ステートメント
以来 どこ キーワードは集計関数では使用できません。HAVING句が導入されました。
構文:
選択する column_name(s) から table_name どこ 調子 GROUP BY column_name(s) 持っている 調子 ORDER BY column_name(s)
例:
SELECT COUNT(StudentID)、City FROM Infostudents GROUP BY City HAVING COUNT(Fees)> 23000
論理演算子
この演算子のセットは、次のような論理演算子で構成されます。 そして / または / ない 。
およびオペレーター
AND演算子は、複数の条件に依存するレコードをフィルタリングするために使用されます。この演算子は、ANDで区切られたすべての条件を満たすレコードを表示し、出力をTRUEにします。
構文:
選択する column1 、 column2、..。 から table_name どこ 状態1 そして 条件2 そして 条件3..。
例:
SELECT * FROM Infostudents WHERE Country = 'Brazil' AND City = 'Rio Claro'
またはオペレーター
OR演算子は、ORで区切られた条件のいずれかを満たすレコードを表示し、出力をTRUEにします。
構文:
選択する column1 、 column2、..。 から table_name どこ 状態1 または 条件2 または 条件3..。
例:
SELECT * FROM Infostudents WHERE City = 'Toronto' OR City = 'Seoul'
オペレーターではありません
この演算子は、条件がTRUEでない場合にレコードを表示します。
構文:
選択する column1 、 column2、..。 から table_name どこにもない 調子
例:
SELECT * FROM Infostudents WHERE NOT Country = 'India'-上記の3つの演算子をすべて組み合わせて、次のようなクエリを作成することもできます。SELECT* FROM Infostudents WHERE Country =' India 'AND(City =' Bangalore 'OR City ='カナダ')データベース管理者のインタビューをクラックすることに興味がありますか?
算術、ビット、比較、および複合演算子
図2: 算術、ビット単位、比較および複合演算子–MySQLチュートリアル
集計関数
記事のこのセクションには、次の機能が含まれています。
MIN()関数
この関数は、テーブル内の選択された列の最小値を返します。
構文:
SELECT MIN(column_name) FROMtable_name WHEREcondition
例:
Infostudentsから最小IDとしてMIN(StudentID)を選択します
MAX()関数
この関数は、テーブル内の選択された列の最大値を返します。
構文:
SELECT MAX( column_name ) から table_name どこ 調子
例:
InfostudentsからMAXimumFeesとしてMAX(Fees)を選択します
COUNT()関数
この関数は、指定された基準に一致する行数を返します。
構文:
SELECT COUNT( column_name ) から table_name どこ 調子
例:
InfostudentsからCOUNT(StudentID)を選択します
AVG()関数
この関数は、選択した数値列の平均値を返します。
構文:
SELECT AVG( column_name ) から table_name どこ 調子
例:
InfostudentsからAVG(料金)を選択
SUM()関数
この関数は、選択した数値列の合計を返します。
構文:
SELECT SUM( column_name ) から table_name どこ 調子
例:
InfostudentsからSUM(Fees)を選択します
特別なオペレーター
このセクションには、次の演算子が含まれています。
オペレーター間
この演算子は、指定された範囲内の値(数値、テキスト、または日付)を選択する包括的な演算子です。
構文:
選択する column_name(s) から table_name どこ column_name の間に value1 そして value2
例:
SELECT * FROM InfostudentsWHERE料金20000と40000の間
ISNULL演算子
比較演算子(=、)を使用してNULL値をテストすることはできないため、代わりにISNULLおよびISNOTNULL演算子を使用できます。
構文:
--ISNULLの構文 選択する column_names から table_name どこ column_name 無効です --IS NOTNULLの構文 選択する column_names から table_name どこ column_name NULLではありません
例:
SELECT StudentName、ParentName、Address FROM Infostudents WHERE Address IS NULL SELECT StudentName、ParentName、Address FROM Infostudents WHERE Address IS NOT NULL
LIKE演算子
この演算子は、WHERE句で使用され、テーブルの列で指定されたパターンを検索します。
以下に説明するのは、LIKE演算子と組み合わせて使用される2つのワイルドカードです。
- %–パーセント記号は、0文字、1文字、または複数文字を表します
- _ –アンダースコアは単一の文字を表します
構文:
選択する column1、column2、..。 から table_name どこ カラム お気に入り パターン
LIKE演算子で言及できるさまざまなパターンについては、次の表を参照してください。
LIKE演算子 | 説明 |
WHERE CustomerName LIKE‘z% | 「z」で始まる値を検索します |
WHERE CustomerName LIKE ‘%z’ | 「z」で終わる値を検索します |
WHERE CustomerName LIKE ‘%and%’ | 任意の位置に「and」がある値を検索します |
WHERE CustomerName LIKE‘_s% ’ | 2番目の位置に「s」がある値を検索します。 |
WHERE CustomerName LIKE‘d _%_% ’ | 「d」で始まり、長さが3文字以上の値を検索します |
WHERE ContactName LIKE‘j%l ’ | 「j」で始まり「l」で終わる値を検索します |
表2: LIKE演算子で言及されたパターン–MySQLチュートリアル
例:
SELECT * FROM Infostudents WHERE StudentName LIKE'S% '
IN演算子
これは、WHERE句で複数の値を指定できる複数のOR条件の省略演算子です。
構文:
選択する column_name(s) から table_name どこ column_name IN( value1 、 value2 、...)
例:
SELECT * FROM Infostudents WHERE Country IN( 'アルジェリア'、 'インド'、 'ブラジル')
注意: 書き込み中にINを使用することもできます ネストされたクエリ 。以下の構文を検討してください。
EXISTS演算子
この演算子は、レコードが存在するかどうかをテストするために使用されます。
構文:
選択する column_name(s) から table_name 存在する場所 (選択する column_name から table_name どこ 調子 )
例:
SELECT StudentName FROM Infostudents WHERE EXISTS(SELECT ParentName FROM Infostudents WHERE StudentId = 05 AND Price<25000)
ALL演算子
この演算子はWHERE句またはHAVING句とともに使用され、すべてのサブクエリ値が条件を満たす場合にtrueを返します。
構文:
選択する column_name(s) から table_name どこ column_name演算子 すべて (選択する column_name から table_name どこ 調子 )
例:
SELECT StudentName FROM Infostudents WHERE StudentID = ALL(SELECT StudentID FROM Infostudents WHERE Fees> 20000)
任意の演算子
ALL演算子と同様に、ANY演算子もWHERE句またはHAVING句とともに使用され、サブクエリ値のいずれかが条件を満たす場合にtrueを返します。
構文:
選択する column_name(s) から table_name どこ column_name演算子 どれか (選択する column_name から table_name どこ 調子 )
例:
SELECT StudentName FROM Infostudents WHERE StudentID = ANY(SELECT SttudentID FROM Infostudents WHERE Fees BETWEEN 22000 AND 23000)
さて、DMLコマンドについてたくさんお話ししたので、簡単に説明しましょう。 ネストされたクエリ 、 参加する そして セット操作 。
クラウドでリレーショナルデータベースを設定する方法を知りたいですか? 今すぐAmazonのRDSを探索してください!MySQLチュートリアル: ネストされたクエリ
ネストされたクエリ 外側のクエリと内側のサブクエリを持つクエリです。したがって、基本的に、サブクエリは、SELECT、INSERT、UPDATE、DELETEなどの別のクエリ内にネストされたクエリです。以下の画像を参照してください。
図3: ネストされたクエリの表現–MySQLチュートリアル
例を含むJavaのpojoクラス
MySQLチュートリアル: 参加する
JOINSは、2つ以上のテーブル間の関連する列に基づいて、それらのテーブルの行を結合するために使用されます。結合のタイプは次のとおりです。
- 内部結合: この結合は、両方のテーブルで値が一致するレコードを返します。
- 完全結合: この結合は、左側または右側のテーブルに一致するすべてのレコードを返します。
- 左結合: この結合は、左側のテーブルのレコードと、右側のテーブルの条件を満たすレコードを返します。
- 右結合: この結合は、右側のテーブルのレコードと、左側のテーブルの条件を満たすレコードを返します。
下の画像を参照してください。
図4: 結合の表現–MySQLチュートリアル
結合の構文を理解するために、Infostudentsテーブルとは別に以下のテーブルを検討してみましょう。
CourseID | 学生証 | コース名 | 開始日 |
1 | 10 | DevOps | 2018年9月9日 |
2 | 十一 | ブロックチェーン | 2018年7月4日 |
3 | 12 | Python | 2018年8月6日 |
表3: サンプルデータベース–MySQLチュートリアル
内部結合
構文:
選択する column_name(s) から 表1 内部結合 table2 オン table1.column_name = table2.column_name
例:
SELECT Courses.CourseID、Infostudents.StudentName FROM Courses INNER JOIN Infostudents ON Courses.StudentID = Infostudents.StudentID
完全結合
構文:
選択する column_name(s) から 表1 完全外部結合 table2 オン table1.column_name = table2.column_name
例:
Infostudents.StudentName、Courses.CourseIDをInfostudentsから選択します。Infostudents.StudentID= Orders.StudentIDの注文をInfostudents.StudentNameで完全外部結合します。
左結合
構文:
選択する column_name(s) から 表1 左結合 table2 オン table1.column_name = table2.column_name
例:
SELECT Infostudents.StudentName、Courses.CourseID FROM Infostudents LEFT JOIN Courses on Infostudents.CustomerID = Courses.StudentID ORDER BY Infostudents.StudentName
右結合
構文:
選択する column_name(s) から 表1 右結合 table2 オン table1.column_name = table2.column_name
例:
コースからCourseIDを選択します。コースでInfostudentsに右結合します。StudentID= Infostudents.StudentID Courses.CourseID ORDER BY
MySQLチュートリアル: セット操作
主に3つのセット操作があります:UNION、INTERSECT、SETDIFFERENCE。以下の画像を参照して、SQLの集合演算を理解できます。
さて、皆さんはDMLコマンドを知っています。次のセクションに進み、DCLコマンドを見てみましょう。
MySQLチュートリアル: データ制御(DCL)コマンド
このセクションは、データベースの特権を制御するために使用されるコマンドで構成されています。コマンドは次のとおりです。
付与
このコマンドは、データベースに対するユーザーアクセス権限またはその他の権限を提供するために使用されます。
構文:
オブジェクトに対する権限をユーザーに付与する
例:
ローカルホストに任意のテーブルを作成することを許可する
取り消す
このコマンドは、GRANTコマンドを使用して指定されたユーザーのアクセス権限を取り消すために使用されます。
構文:
ユーザーからのオブジェクトに対する権限を取り消す
例:
Infostudentsから*。*の挿入を取り消す
それでは、このブログの最後のセクション、つまりTCLコマンドに移りましょう。
MySQLチュートリアル: トランザクション制御(TCL)コマンド
コマンドのこのセクションでは、主にデータベースのトランザクションを扱います。コマンドは次のとおりです。
コミット
このコマンドは、最後のCOMMITまたはROLLBACKコマンド以降のすべてのトランザクションをデータベースに保存します。
構文:
コミット
例:
手数料= 42145コミットするInfostudentsから削除
ロールバック
このコマンドは、最後のCOMMITまたはROLLBACKコマンドが発行されてからのトランザクションを元に戻すために使用されます。
構文:
ロールバック
例:
手数料= 42145ロールバックのInfostudentsから削除
セーブポイント
このコマンドは、ロールバックするトランザクションのグループ内にポイントを作成します。したがって、このコマンドを使用すると、トランザクション全体をロールバックせずに、トランザクションを特定のポイントにロールバックすることができます。
構文:
SAVEPOINTSAVEPOINT_NAME-SAVEPOINTを保存するための構文 ROLLBACK TO SAVEPOINT_NAME --Savepointコマンドにロールバックするための構文
例:
SAVEPOINT SP1 DELETE FROM Infostudents WHERE Fees = 42145 SAVEPOINT SP2
リリースセーブポイント
このコマンドを使用して、作成したSAVEPOINTを削除できます。
構文:
RELEASE SAVEPOINT SAVEPOINT_NAME
例:
リリースポイントSP2
トランザクションの設定
このコマンドは、トランザクションに名前を付けます。
構文:
トランザクションの設定[読み取り/書き込み|読み取り専用]
MySQLチュートリアルブログでこのブログを楽しんでいただけたでしょうか。クエリを記述し、データベースを操作するのに役立つさまざまなコマンドを見てきました。
MySQLについてもっと知りたいですか?MySQLについてさらに学び、このオープンソースのリレーショナルデータベースについて知りたい場合は、 インストラクター主導のライブトレーニングと実際のプロジェクト経験が付属しています。このトレーニングは、MySQLを深く理解し、主題を習得するのに役立ちます。
質問がありますか? 」のコメントセクションでそれについて言及してください MySQLチュートリアル 」と私はあなたに戻ります。