sql >> データベース >  >> RDS >> Mysql

MySQLチュートリアル–MySQLを学ぶための初心者向けガイド

    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.


    1. SQLDeveloperが起動しない

    2. 公式のPostgreSQLDockerイメージの構成ファイルをカスタマイズするにはどうすればよいですか?

    3. TYPE_NAME()を使用して、SQLServerのデータ型の名前を取得します

    4. DDLステートメントは常に暗黙のコミットを提供しますか、それとも暗黙のロールバックを取得できますか?