#はじめに
初めまして、公務員からエンジニア転職を目指して勉強している者です。Dockerについて勉強したので、まとめていきたいと思います。間違い、アドバイス等あればコメント頂きたいです。
#目次
1.DB
2.DBMS
3.SQL(DML,DDL)
#1.DB
###DBって何?
データの基地。=基礎、土台。
例)電話帳、Excel等
###できること
・データを探しやすくする
・データを保管する
・検索、抽出、集計ができる
###DBの種類
・リレーショナル型(RDB)
→Excelのような、表のDB(SQLで操作可能)
・階層型
→ツリー構造のDB
・ネットワーク型
→網目状にデータがつながったDB
・NoSQL
→SQLを使わないDB
###DBの必須用語
・テーブル:表全体
・レコード:横の行のデータ
・カラム:縦の列のデータ
・フィールド:一つ一つの入力項目
※DBはテーブルがいくつもある
#2.DBMS
###DBMSとは
Database Management Systemの頭文字を取ったもので、データベース管理システムと呼ばれる。
=DB自体を管理するシステム。
###RDBMSとは
Relational Database Management Systemの頭文字を取ったもので、SQLを使って、リレーショナル型DBを管理するシステム。
###一般的なRDBMSの種類
・Oracle Database:有料で、最近のクラウド環境にも対応できる
・Microsoft SQL Server:無料と有料があり、Microsoft OSと相性がいい
・MySQL:オープンソース。基本は無料で、研修や個人開発等で使われる
・PostgreSQL:オープンソース。MySQLと同じような規模で使われる
#3.SQL
###SQLとは
RDBを操作するための言語。
###SQLの種類
・データ操作言語 (DML: data manipulation language)
・データ定義言語 (DDL: data definition language)
・データ制御言語 (DCL: data control language)
##データ操作言語(DML)
・SELECT : DBからデータを取得
・INSERT : DBにデータを追加
・UPDATE : DBに保存されてるデータを更新
・DELETE : DBに保存されてるデータを削除
###SELECT:データの取得
○全てのカラムのデータを取得
→SELECT *
FROM テーブル名;
※ * =全て
○複数のカラムを選んでデータを取得
→SELECT カラム1, カラム2 …
FROM テーブル;
○レコードを絞ってデータを取得
→SELECT *
FROM テーブル名
WHERE 条件式;
●条件式について
・WHERE カラム1 AND カラム2
→カラム1とカラム2を満たすデータを取得
・WHERE カラム1 OR カラム2
→カラム1かカラム2のいずれかを満たすデータを取得
※ANDとORには優先順位があり、ANDが先に実行される。
ORを先に実行したい場合は、(カラム1 OR カラム2)の様に括弧で
くくって、その後ろにAND処理を書く
→WHERE 条件式1 OR 条件式2]
AND 条件式3
###INSERT:データの追加
○データを一件追加(カラム指定)
→INSERT INTO テーブル名 (カラム1、カラム2…)
VALUES (値1a, 値1b…);
○データを一件追加(カラム指定省略)
→INSERT INTO テーブル名
VALUES (値1a, 値1b…);
※設定してるカラムの左から順にデータを入れる
○データを複数追加
→INAERT INTO テーブル名(カラム1、カラム2、カラム3…)
VALUES(値1-1, 値1-2…),
(値2-1, 値2-2…),
(値3-1, 値3-2…);
###UPDATE:データの更新
→UPDATE テーブル名
SET カラム1 = 値1
WHERE 条件式;
※WHEREは省略可だが、全てのレコードが対象になる
###DELETE:データの削除
→DELETE FROM テーブル名
WHERE 条件式;
##データ定義言語(DDL)
○ルール
・DB名、テーブル名、列名に使える文字
→半角文字のアルファベット、数字、アンダーバー
・名前の最初の文字は半角のアルファベット
・名前の重複は✖️
→1つのDBの中に同じ名前のテーブル✖️
→1つのテーブルの中に同じ名前のカラム(列)✖️
###CREATE:テーブルを作成
→CREATE TABLE テーブル名 (
カラム1 データ型 制約
カラム2 データ型 制約
・・・
);
※データ型 : BOOLEAN,INTEGER, VARCHAR, DATE, TIMESTAMP等をカラムによって使い分ける
※制約 : ・PRIMARY KEY:UNIQUE + NOT NULL
・UNIQUE:重複するフィールドの禁止
・NOT NULL :NULL値を禁止
・CHECK:条件を満たさないデータを禁止
・FOREIGN KEY:他のテーブルの列を参照してその列にないデータを禁止
###ALTER TABLE:テーブル構造(制約)の変更
○カラムの追加
→ALTER TABLE テーブル名 ADD カラム名 データ型 制約;
○カラム指定の変更
→ALTER TABLE テーブル名 CHANGE 変更前のカラム名 変更後のカラム名 データ型 制約;
○カラムの削除
→ALTER TABLE テーブル名 DROP カラム名;