-
リレーショナルデータベース
●2次元テーブル
●テーブル内の行をレコードと呼び、テーブル内の列をフィールド(属性)と呼びます。
●行と列を交差させるセルの値を属性値またはフィールド値と呼びます。
●ORACLEDB2 Mysql SQLSERVERリレーショナルデータベース -
一般的に使用されるコマンド(コマンドラインで実行することも、Navicatで新しいクエリ実行を作成することもできます)
バージョン番号を表示
select version()
すべてのデータベースを表示
show databases;
現在のデータベースを設定する
use 数据库名
データベース内のすべてのテーブルを表示する
show tables
テーブル構造を表示
desc 表名
- ストレージエンジン
データベースのストレージ、管理、およびクエリ操作に関するいくつかのルール。
3種類のデータエンジン
1)innoDBストレージエンジン
●デフォルトストレージエンジン
●外部キーを
サポート●トランザクションをサポート
2)MYISAM
●全文検索を
サポート●外部キーをサポートしない
3)MEMERY
●メモリエンジン、メモリ内にテーブルを作成
●高速アクセス
-
文字セット
●データベースに保存されているデータのエンコード形式
●中国語は一般にutf8を使用します●
照合utf8_general_ciciは、大文字と小文字が区別されないことを意味し
ます●MySQLは英語文字の大文字と小文字を区別しません -
sqlスクリプト
●拡張子が付いたファイルとしての.sql
●データベースの展開に便利 -
データベース管理
データベースの作成
CREATE DATABASE 数据库名 CHARACTER SET utf8 COLLATE utf8_general_ci
CREATE DATABASE IF NOT EXISTS 数据库名 CHARACTER SET UTF8 COLLATE utf8_general_ci ;
データベースの削除
DROP DATABASE 数据库名
-
ER図
●ENTITYRELATIONSHIPエンティティ関係図。データベースの論理設計フェーズで生成されるデータモデルです。
●次の3つの要素が含まれています。- エンティティエンティティは、実際にはデータベース内のテーブルに対応します
- 属性は実際にはテーブルのフィールドに対応しています
- テーブルとテーブルの関係
●1対1
● 1対多
●多対多
-
データタイプ
1)数値タイプ
●BITビット
●TINYINT小整数、-128〜127 unsigned unsigned 0〜255
●BOOLEANはTINYINT(1)で表され、0はfalseを表し、ゼロ以外の値はtrueを表します
●SAMLLINT -32768〜32767
●INTプラスマイナス21億以上
●BIGINT多数、多数
●FLOAT
●DOUBLE
●DECIMAL
2)文字列タイプ
●CHAR(n)nの固定長文字列
●VARCHAR(n)可変長文字列、nは最大長、実際保存される長さは、文字列の実際の長さです。
●小説の章の内容など、テキストの大きなテキスト。
●ENUM列挙
3)日付タイプ
●DATE
●DATETIME
●TIME
●YEAR
●TIMESTAMPタイムスタンプメモリは、最終更新時刻を記録します。フィールドのデフォルト値をCURRENT_TIMESTAMPに設定する必要があり、タイムスタンプがチェックされます。 -
制約タイプ
●レコードをテーブルに挿入するときは、データの整合性と一貫性を確保するために、制約と呼ばれる特定のルールに従います。
主キー制約
●PRIMARYKEY
●テーブル内の1つ以上の列で、主キー制約を設定します。これは、列の値がテーブル内で一意であることを意味します。
●主キーの値をNULLにすることはできず、一意である必要があります。
●構文:
字段名 PRIMARY KEY AUTO_INREMENT
●AUTO_INREMENTは、プライマリキーが
一意性制約をインクリメントすることを示します
●UNIQUE
●フィールドの値がテーブル内で一意であることを示しますが、値はNULLです
●テーブル内の複数のフィールドは一意の制約を設定できます
●構文:
字段名 UNIQUE
null以外の制約
●NOTNULL
●フィールドの値をnullにすることはできません
●構文:
字段名 NOT NULL
デフォルト値
●DEFUALT
●テーブルにレコードを挿入するときにフィールドに値が割り当てられていない場合は、デフォルト値が使用されます。
●構文:
字段名 DEFAULT 值
外部キー制約
●FOREIGNKEY
●テーブル内のフィールドは、外部キー制約を形成するために別のテーブル内のフィールドから取得された値です
●2つのテーブル内の関連フィールドのデータタイプは一貫している必要があります。
●外部キー制約の戦略:
●restrict、noaction外部キー制約を形成したレコードの場合、参照されるテーブル内の関連するレコードを削除することはできません。
●nullに設定外部キー制約を形成したレコードの場合、参照テーブルのレコードが削除された後、メインテーブルの関連レコードの対応するフィールド値がnullに設定されます
●カスケード外部キー制約を形成したレコードの場合、削除または参照されたテーブルのレコードを更新します。メインテーブルの関連レコードも削除または更新されます。
CHECK制約
●mysqlはこの制約をサポートしていません。通常、列挙またはトリガーによって実装されます。
- テーブルの作成
●構文
CREATE TABLE 表名(
字段名 数据类型 约束,
字段名 数据类型 约束
)
- テーブルの削除
DROP TABLE 表名
-
テーブルの変更
●ALTER -
SQLステートメント
● SQL構造化照会言語
● DDLデータ定義言語データ定義言語
データベースまたはデータベースコンポーネントの構造に対する操作のためのCREATELART
DROP
機能:トランザクションのロールバックは許可されていません。
● DMLデータ操作言語データ操作言語
テーブルレコードの追加、削除及び変更する
INSERT
DELETE
UPDATEが
特長:トランザクションのロールバックが可能です
● DQLデータクエリ言語は、データのクエリ言語
SELECT
● DCLデータ制御言語データ制御言語
GRANTが許可
REVOKE回復権限
● TPL TRANSACTIONをPROCESS LANGUAGE
COMMIT
ROOLBACK -
DMLINSERT
テーブルにレコードを挿入
●構文
INSERT INTO 表名(字段列表) VALUES(值列表)
●その中:
●1。フィールドリストと値リストはコンマで区切られます。
●2 。値リストの値、文字列および日付定数は、一重引用符で囲む必要があります。
●3。値のタイプはフィールドのデータタイプと一致する必要があります。
●4。INTOは省略できます。
●5 。フィールドリストがテーブル全体に挿入されるフィールドである場合は省略できますが、値リストの数と順序は定義されたテーブルと一致している必要があります。フィールドの順序は同じです。
●6。フィールドには、次の値の数に対応するいくつかの値を書き込むこともできます。
●7。VALUESキーワードもVALUEを使用できますが、値が一般的に使用されます
●複数のレコードをバッチで挿入します
●INSERT INTOテーブル名(フィールド名)VALUES(値リスト1)、(値リスト2)、…、(値リストn)
UPDTAE
●テーブルのレコードに変更を加える
●構文
UPDATE 表名 SET 字段名1=值1, 字段名2=值2 WHERE子句
●where句は、変更されたレコードを制限するために使用されます。where句が追加されていない場合、テーブル内のすべてのレコードがデフォルトで変更されます。
DELETE
●テーブル内のレコードを削除するために使用されます
●構文
DELETE FROM 表 WHERE子句
テーブルの切り捨て
●TRUNCATETABLEテーブル名
●テーブルの切り捨て、テーブル内のすべてのレコードをクリアします。
TRUNCATEとDELETEの違い
●どちらもテーブル内のレコードを削除できます。Deleteは、テーブル内のすべてのレコードを削除するか、where条件に従って一部のレコードを削除でき、truncateはテーブル内のすべてのレコードのみをクリアできます。
●削除はDMLに属し、トランザクションはロールバックでき、切り捨てはDDLに属し、トランザクションはロールバックできません。
- where句は
、
関係演算子を条件付きで制限するために使用されます
●=等しい
●!= <>等しくない
●>> =
●<< =
●注:値の比較に加えて、関係演算子は日付を比較することもできます、hiredate> '1982-1 -1'
ヌル価値判断は
●NULL IS
●IS NOT NULL
区間判定
BETWEEN●... AND ...値が連続区間であることを意味し
3000と5000の間の給与のレコードをフィルタリングするための3000と5000の手段BETWEEN SAL●、および含ま3000と5000の2つの境界。
●NOTBETWEEN…AND…は、値が連続した間隔
セット(離散)にない
ことを示します●INは、値がセットにあることを示します
●WHERE deptno IN(10,20,40)
●NOT INは、値がセット
ロジックにないことを示します演算子
●where句で複数のフィルター条件を連結します
●&& ANDおよび
●|| ORまたは
●!NOT NOT
出典:Neusoft Java Training