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チュートリアルに関するこのブログでは、コマンドの記述方法を示すために、以下のデータベースを例として検討します。
StudentID | StudentName | ParentName | アドレス | 都市 | PostalCode | 国 | 料金 |
01 | Haznitiz | Emiz | Dellys Road | Afir | 35110 | アルジェリア | 42145 |
02 | Shubham | ナラヤン | MG Road | バンガロール | 560001 | インド | 45672 |
03 | Salomao | Valentim | マヨロード | Rio Claro | 27460 | ブラジル | 65432 |
04 | Vishal | Ramesh | Queens Quay | トロント | 416 | カナダ | 23455 |
05 | ジミン | Kim Tai Hyung | Gangnam Street | ソウル | 135081 | 韓国 | 22353 |
表1: サンプルデータベース–MySQLチュートリアル
では、今すぐ始めましょう!
YouTubeチャンネルに登録して、新しいアップデートを入手してください。..!
MySQLチュートリアル:データ定義(DDL)コマンド
このセクションは、データベースを定義するためのコマンドで構成されています。コマンドは次のとおりです。
- 作成
- 代替
- ドロップ
- 切り捨て
- 名前の変更
さて、コマンドを始める前に、MySQLでコメントに言及する方法をお話ししましょう。
コメント
他のプログラミング言語と同様に、コメントには主に2つのタイプがあります。
- 1行のコメント– 1行のコメントは「–」で始まります。したがって、その後に記載されているテキストは、行の終わりまでコンパイラによって無視されます。
例:
-すべて選択:SELECT * FROM Student;
- 複数行のコメント– 複数行のコメントは/*で始まり、*/で終わります。したがって、/*と*/の間にあるテキストは、コンパイラによって無視されます。
例:
/ * Studentテーブルのすべてのレコードのすべての列を選択します:* / SELECT * FROM Student;
これで、MySQLでコメントに言及する方法がわかったので、DDLコマンドを続けましょう。
作成
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」ステートメント
このステートメントは、既存のテーブルから新しいテーブルを作成するために使用されます。したがって、このテーブルは既存のテーブルと同じ列定義を取得します。
構文:
CREATE TABLE new_table_name AS SELECT column1、column2、... FROM existing_table_name WHERE ....;
例:
CREATE TABLE ExampleTable ASSELECT Studentname、ParentnameFROM Student;
後
ALTERコマンドは、制約または列を追加、変更、または削除するために使用されます。
「ALTERTABLE」ステートメント
このステートメントは、テーブルから制約と列を追加、変更、または削除するために使用されます。
構文:
ALTER TABLE table_name column_nameデータ型を追加します;
例:
ALTER TABLE StudentADD DateOfBirth date;
ドロップ
DROPコマンドは、データベース、テーブル、または列を削除するために使用されます。
「DROPSCHEMA」ステートメント
このステートメントは、完全なスキーマを削除するために使用されます。
構文:
DROP SCHEMA schema_name;
例:
DROP SCHEMA StudentInfo;
「DROPTABLE」ステートメント
このステートメントは、テーブル全体とそのすべての値を削除するために使用されます。
構文:
DROP TABLE table_name;
例:
DROP TABLE table_name;
切り捨て
このステートメントは、テーブル内に存在するデータを削除するために使用されますが、テーブルは削除されません。
構文:
TRUNCATE TABLE table_name ;
例:
TRUNCATETABLEの学生;
名前の変更
このステートメントは、1つ以上のテーブルの名前を変更するために使用されます。
構文:
RENAME TABLE tbl_name TO new_tbl_name [、 tbl_name2 TO new_tbl_name2 ] ...
例:
学生の名前をInfostudentsに変更します;
では、次のセクションに進む前に、データベースの操作中に言及する必要のあるさまざまな種類のキーと制約について説明します。
MySQLチュートリアル: データベース内のさまざまなタイプのキー
データベースに記載できるキーには主に5種類あります。
- 候補キー– タプルを一意に識別できる最小限の属性セットは、候補キーと呼ばれます。リレーションは複数の候補キーを保持できます。キーは単純キーまたは複合キーのいずれかです。
- スーパーキー– タプルを一意に識別できる属性のセットは、スーパーキーと呼ばれます。したがって、候補キーはスーパーキーですが、その逆は当てはまりません。
- 主キー– すべてのタプルを一意に識別するために使用できる属性のセットも主キーです。したがって、関係に3〜4個の候補キーが存在する場合、それらの中から1つを主キーとして選択できます。
- 代替キー– 主キー以外の候補キーは、代替キーと呼ばれます。
- 外部キー– 他の属性の値として存在する値のみをとることができる属性は、それが参照する属性への外部キーです。
MySQLチュートリアル: データベースで使用される制約
データベースで使用されている制約は次の画像を参照してください。
図1: データベースで使用される制約–MySQLチュートリアル
これで、さまざまなタイプのキーと制約がわかったので、次のセクション、つまりデータ操作コマンドに進みましょう。
認定データベース管理者になりたいですか?MySQLチュートリアル: データ操作(DML)コマンド
このセクションは、データベースを操作するためのコマンドで構成されています。コマンドは次のとおりです。
- 使用
- 挿入
- 更新
- 削除
- SELECT
これらのコマンドの他に、次のような他の操作演算子/関数もあります:
- 論理演算子
- 算術、ビット演算、比較、複合演算子
- 集計関数
- 特別なオペレーター
使用
USEステートメントは、すべての操作を実行するためにどのデータベースを使用する必要があるかを示すために使用されます。
構文:
USE Database_name;
例:
USE StudentInfo;
挿入
このステートメントは、テーブルに新しいレコードを挿入するために使用されます。
構文:
INSERT INTOステートメントは、次の2つの方法で記述できます。
INSERT INTO table_name ( column1 、 column2 、 column3 、...)VALUES( value1 、 value2 、 value3 、...);--列名を指定する必要はありませんINSERT INTO 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 InfostudentsVALUES(' 07'、' Shivantini'、' Praveen'、' Camel Street'、' Kolkata'、' 700096'、' India');
更新
このステートメントは、テーブル内の既存のレコードを変更するために使用されます。
構文:
UPDATE table_name SET column1 = value1 、 column2 = value2 、...場所状態;
例:
UPDATE InfostudentsSET StudentName ='Alfred'、City ='Frankfurt' WHERE StudentID =1;
削除
このステートメントは、テーブル内の既存のレコードを削除するために使用されます。
構文:
DELETE FROM table_name WHERE条件;
例:
DELETE FROM InfostudentsWHERE StudentName ='Salomao';
選択
このステートメントは、データベースからデータを選択するために使用され、返されたデータは、結果セットと呼ばれる結果テーブルに保存されます。 。
このステートメントを使用する2つの方法は次のとおりです。
構文:
SELECT column1 、 column2、... FROM table_name ;-(*)は、テーブルからすべてを選択するために使用されますSELECT * FROM table_name ;
例:
SELECT StudentName、City FROM Infostudents; SELECT * FROM Infostudents;
個々のSELECTキーワードとは別に、SELECTキーワードで使用される次のステートメントも表示されます。
- DISTINCT
- 注文者
- GROUP BY
- HAVING句
「SELECTDISTINCT」ステートメント
このステートメントは、異なる値または異なる値のみを返すために使用されます。したがって、値が重複しているテーブルがある場合は、このステートメントを使用して個別の値を一覧表示できます。
構文:
SELECT DISTINCT column1 、 column2、... FROM table_name ;
例:
学生から国を選択;
「ORDERBY」ステートメント
このステートメントは、目的の結果を昇順または降順で並べ替えるために使用されます。デフォルトでは、結果は昇順で並べ替えられます。結果セットのレコードを降順で表示する場合は、 DESCを使用します。 キーワード。
構文:
SELECT column1 、 column2、... FROM table_name ORDER BY column1、column2、... ASC | DESC;
例:
SELECT * FROM InfostudentsORDER BY Country; SELECT * FROM InfostudentsORDER BY Country DESC; SELECT * FROM InfostudentsORDER BY Country、StudentName; SELECT * FROM InfostudentsORDER BY Country ASC、StudentName DESC;
「GROUPBY」ステートメント
このステートメントは、結果セットを1つ以上の列でグループ化するために集計関数で使用されます。
構文:
SELECT column_name(s) FROM table_name WHERE条件 GROUP BY column_name(s) ORDER BY column_name(s);
例:
SELECT COUNT(StudentID)、CountryFROM InfostudentsGROUP BY CountryORDER BY COUNT(StudentID)DESC;
「HAVING」条項ステートメント
WHERE以降 キーワードは集計関数では使用できないため、HAVING句が導入されました。
構文:
SELECT column_name(s) FROM table_name WHERE条件 GROUP BY column_name(s) 状態があります ORDER BY column_name(s);
例:
SELECT  COUNT(StudentID)、CityFROM  InfostudentsGROUP  BY  CityHAVING  COUNT(Fees)> 23000;
論理演算子
この一連の演算子は、AND / OR/NOTなどの論理演算子で構成されています。
およびオペレーター
AND演算子は、複数の条件に依存するレコードをフィルタリングするために使用されます。この演算子は、ANDで区切られたすべての条件を満たすレコードを表示し、出力をTRUEにします。
構文:
SELECT column1 、 column2、... FROM table_name WHERE condition1 AND condition2 AND condition3 ... ;
例:
SELECT * FROM InfostudentsWHERE Country ='Brazil' AND City ='Rio Claro';
または演算子
OR演算子は、ORで区切られた条件のいずれかを満たすレコードを表示し、出力をTRUEにします。
構文:
SELECT column1 、 column2、... FROM table_name WHERE condition1 またはcondition2 またはcondition3... ;
例:
SELECT * FROM InfostudentsWHERE City ='Toronto' OR City ='Seoul';
オペレーターではありません
この演算子は、条件がTRUEでない場合にレコードを表示します。
構文:
SELECT column1 、 column2、... FROM table_name 状態ではありません;
例:
SELECT * FROM InfostudentsWHERE NOT Country ='India';-上記の3つの演算子をすべて組み合わせて、次のようなクエリを作成することもできます:SELECT * FROM InfostudentsWHERE Country ='India' AND(City ='Bangalore' OR City ='カナダ');データベース管理者のインタビューをクラックすることに興味がありますか?
算術、ビット演算、比較、および複合演算子
下の画像を参照してください。
図2: 算術演算子、ビット演算子、比較演算子、複合演算子–MySQLチュートリアル
集計関数
記事のこのセクションには、次の機能が含まれています。
- MIN()
- MAX()
- COUNT()
- AVG()
- SUM()
MIN()関数
この関数は、テーブル内の選択された列の最小値を返します。
構文:
SELECT MIN(column_name)FROMtable_nameWHEREcondition;
例:
SELECT MIN(StudentID)AS SmallestIDFROM Infostudents;
MAX()関数
この関数は、テーブル内の選択された列の最大値を返します。
構文:
SELECT MAX( column_name )FROM table_name WHERE条件;
例:
SELECT MAX(Fees)AS MaximumFeesFROM Infostudents;
COUNT()関数
この関数は、指定された基準に一致する行数を返します。
構文:
SELECT COUNT( column_name )FROM table_name WHERE条件;
例:
SELECT COUNT(StudentID)FROM Infostudents;
AVG()関数
この関数は、選択した数値列の平均値を返します。
構文:
SELECT AVG( column_name )FROM table_name WHERE条件;
例:
SELECT AVG(Fees)FROM Infostudents;
SUM()関数
この関数は、選択した数値列の合計を返します。
構文:
SELECT SUM( column_name )FROM table_name WHERE条件;
例:
SELECT SUM(Fees)FROM Infostudents;
特別なオペレーター
このセクションには、次の演算子が含まれています:
- BETWEEN
- IS NULL
- いいね
- IN
- 存在
- すべて
- 任意
オペレーター間
この演算子は、指定された範囲内の値(数値、テキスト、または日付)を選択する包括的な演算子です。
構文:
SELECT column_name(s) FROM table_name WHERE column_name value1の間 AND value2;
例:
SELECT * FROM InfostudentsWHERE Fees BETWEEN 20000 AND 40000;
ISNULL演算子
比較演算子(=、<、>)でNULL値をテストすることはできないため、代わりにISNULLおよびISNOTNULL演算子を使用できます。
構文:
-IS NULLSELECT column_namesの構文 FROM table_name WHERE column_name ISNULL;-IS NOT NULLSELECT column_namesの構文 FROM table_name WHERE column_name NULLではありません;
例:
SELECT StudentName、ParentName、Address FROM InfostudentsWHERE Address IS NULL; SELECT StudentName、ParentName、Address FROM InfostudentsWHERE Address IS NOT NULL;
LIKEオペレーター
この演算子は、WHERE句で使用され、テーブルの列で指定されたパターンを検索します。
以下は、LIKE演算子と組み合わせて使用される2つのワイルドカードです。
- %–パーセント記号は、0、1、または複数の文字を表します
- _ –アンダースコアは単一の文字を表します
構文:
SELECT column1、column2、... FROM table_name WHERE列 LIKEパターン;
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 InfostudentsWHERE StudentName LIKE'S%';
IN演算子
これは、WHERE句で複数の値を指定できる複数のOR条件の省略演算子です。
構文:
SELECT column_name(s) FROM table_name WHERE column_name IN( value1 、 value2 、...);
例:
SELECT * FROM InfostudentsWHERE Country IN('Algeria'、'India'、'Brazil');
注: ネストされたクエリの作成中にINを使用することもできます。以下の構文を検討してください:
EXISTSオペレーター
この演算子は、レコードが存在するかどうかをテストするために使用されます。
構文:
SELECT column_name(s) FROM table_name WHERE EXISTS(SELECT column_name FROM table_name WHERE条件 );
例:
SELECT&nbsp; StudentNameFROM&nbsp; InfostudentsWHERE&nbsp; EXISTS&nbsp;(SELECT&nbsp; ParentName&nbsp; FROM&nbsp; Infostudents&nbsp; WHERE&nbsp; StudentId =05&nbsp; AND&nbすべてのオペレーター
この演算子は、WHERE句またはHAVING句とともに使用され、すべてのサブクエリ値が条件を満たしている場合にtrueを返します。
構文:
SELECT column_name(s) FROM table_name WHEREcolumn_name演算子 ALL(SELECT column_name FROM table_name WHERE条件 );例:
SELECT&nbsp; StudentNameFROM&nbsp; InfostudentsWHERE&nbsp; StudentID =&nbsp; ALL&nbsp;(SELECT&nbsp; StudentID&nbsp; FROM&nbsp; Infostudents&nbsp; WHERE&nbsp; Fees> 20000);任意のオペレーター
ALL演算子と同様に、ANY演算子もWHEREまたはHAVING句で使用され、サブクエリ値のいずれかが条件を満たす場合にtrueを返します。
構文:
SELECT column_name(s) FROM table_name WHEREcolumn_name演算子 ANY(SELECT column_name FROM table_name WHERE条件 );例:
SELECT StudentNameFROM InfostudentsWHERE StudentID =ANY (SELECT SttudentID FROM Infostudents WHERE Fees BETWEEN 22000 AND 23000);Now, that I have told you a lot about DML commands, let me just tell you in short about Nested Queries,Joins and Set Operations.
Want to know how to set up a relational database in the cloud?MySQL Tutorial: Nested Queries
Nested queries are those queries which have an outer query and inner subquery. So, basically, the subquery is a query which is nested within another query such as SELECT, INSERT, UPDATE or DELETE. Refer to the image below:
Fig 3: Representation Of Nested Queries – MySQL Tutorial
MySQL Tutorial: Joins
JOINS are used to combine rows from two or more tables, based on a related column between those tables. The following are the types of joins:
- INNER JOIN: This join returns those records which have matching values in both the tables.
- FULL JOIN: This join returns all those records which either have a match in the left or the right table.
- LEFT JOIN: This join returns records from the left table, and also those records which satisfy the condition from the right table.
- RIGHT JOIN: This join returns records from the right table, and also those records which satisfy the condition from the left table.
Refer to the image below.
Fig 4: Representation Of Joins – MySQL Tutorial
Let’s consider the below table apart from the Infostudents table, to understand the syntax of joins.
CourseID | StudentID | CourseName | StartDate |
1 | 10 | DevOps | 09-09-2018 |
2 | 11 | Blockchain | 07-04-2018 |
3 | 12 | Python | 08-06-2018 |
Table 3: Sample Database – MySQL Tutorial
INNER JOIN
Syntax:
SELECT column_name(s) FROM table1 INNER JOIN table2 ON table1.column_name = table2.column_name;
Example:
SELECT Courses.CourseID, Infostudents.StudentNameFROM CoursesINNER JOIN Infostudents ON Courses.StudentID =Infostudents.StudentID;
FULL JOIN
Syntax:
SELECT column_name(s) FROM table1 FULL OUTER JOIN table2 ON table1.column_name = table2.column_name;
Example:
SELECT Infostudents.StudentName, Courses.CourseIDFROM InfostudentsFULL OUTER JOIN Orders ON Infostudents.StudentID=Orders.StudentIDORDER BY Infostudents.StudentName;
LEFT JOIN
Syntax:
SELECT column_name(s) FROM table1 LEFT JOIN table2 ON table1.column_name = table2.column_name;
Example:
SELECT Infostudents.StudentName, Courses.CourseIDFROM InfostudentsLEFT JOIN Courses ON Infostudents.CustomerID =Courses.StudentIDORDER BY Infostudents.StudentName;
RIGHT JOIN
Syntax:
SELECT column_name(s) FROM table1 RIGHT JOIN table2 ON table1.column_name = table2.column_name;
Example:
SELECT Courses.CourseIDFROM CoursesRIGHT JOIN Infostudents ON Courses.StudentID =Infostudents.StudentID ORDER BY Courses.CourseID;
MySQL Tutorial: Set Operations
There are mainly three set operations:UNION, INTERSECT, SET DIFFERENCE. You can refer to the image below to understand the set operations in SQL.
Now, that you guys know the DML commadsn. Let’s move onto our next section and see the DCL commands.
MySQL Tutorial: Data Control (DCL) Commands
This section consists of those commands which are used to control privileges in the database. The commands are:
- GRANT
- REVOKE
GRANT
This command is used to provide user access privileges or other privileges for the database.
Syntax:
GRANT privileges ON object TO user;
Example:
GRANT CREATE ANY TABLE TO localhost;
REVOKE
This command is used to withdraw user’s access privileges given by using the GRANT command.
Syntax:
REVOKE privileges ON object FROM user;
Example:
REVOKE INSERT ON *.* FROM Infostudents;
Now, let’s move on to the last section of this blog i.e. the TCL Commands.
MySQL Tutorial: Transaction Control (TCL) Commands
This section of commands mainly deals with the transaction of the database. The commands are:
- COMMIT
- ROLLBACK
- SAVEPOINT
- RELEASE SAVEPOINT
- SET TRANSACTION
COMMIT
This command saves all the transactions to the database since the last COMMIT or ROLLBACK command.
Syntax:
COMMIT;
Example:
DELETE FROM Infostudents WHERE Fees =42145;COMMIT;
ROLLBACK
This command is used to undo transactions since the last COMMIT or ROLLBACK command was issued.
Syntax:
ROLLBACK;
Example:
DELETE FROM Infostudents WHERE Fees =42145;ROLLBACK;
SAVEPOINT
This command creates points within the groups of transactions in which to ROLLBACK. So, with this command, you can simply roll the transaction back to a certain point without rolling back the entire transaction.
Syntax:
SAVEPOINT SAVEPOINT_NAME; --Syntax for saving the SAVEPOINTROLLBACK TO SAVEPOINT_NAME; --Syntax for rolling back to the Savepoint command
Example:
SAVEPOINT SP1;DELETE FROM Infostudents WHERE Fees =42145;SAVEPOINT SP2;
RELEASE SAVEPOINT
You can use this command to remove a SAVEPOINT that you have created.
Syntax:
RELEASE SAVEPOINT SAVEPOINT_NAME;
Example:
RELEASE SAVEPOINT SP2;
SET TRANSACTION
This command gives a name to the transaction.
Syntax:
SET TRANSACTION [ READ WRITE | READ ONLY ];
I hope you enjoyed reading this blog on MySQL Tutorial blog. We have seen the different commands that will help you write queries and play around with your databases.
Interested in learning more about MySQL?If you wish to learn more about MySQL and get to know this open source relational database, then check out our MySQL DBA Certification Training which comes with instructor-led live training and real-life project experience. This training will help you understand MySQL in depth and help you achieve mastery over the subject.
Got a question for us? Please mention it in the comments section of ”MySQL Tutorial ” and I will get back to you.