[データベース]リレーショナル・データベースSQL、MySQL
In-Memory
JSで変数を作成して保存すると、プログラム終了時にそのプログラムが使用するデータも消えてしまいます.格納されたデータはプログラムの実行に依存する.
File I/O
ファイルを読み込むように動作する形式.
短所
ACID
これは、データベースで発生するトランザクションのセキュリティを保証するために必要な性質です.
たとえば、銀行から送金されたオブジェクトの場合、金額や顧客名などのすべての演算が正常に送金された場合、または1つの演算が失敗した場合、送金を阻止するために失敗します.
ACIDの性質は以下の通りである.
げんしせい
トランザクション内のすべてのタスクは、結果を予測するためにすべて成功またはすべて失敗する必要があります.
コンシステンシ
トランザクションが発生した後、データベースのステータスは以前と同じように有効である必要があります.
Isolation
すべてのトランザクションは、他のトランザクションとは独立している必要があります.
Durability(継続)
トランザクションが成功した場合は、トランザクションのログを保持する必要があります.
ランタイムエラーまたはシステムエラーが発生した場合は、そのレコードは永続的なレコードである必要があります.
リレーショナル・データベース
CSVファイルまたはExcelテーブルを1つのテーブルとして保存できます.
一度に複数のテーブルを持つことができるので、データのロードが容易です.
SQL (Structured Query Language)
データベースプログラミング言語の1つで、主にリレーショナル・データベースに使用されます.
データベースにクエリーを送信して、必要なデータを取得または挿入できます.
SQLを使用するには、データの構造が固定されている必要があります.
固定データ構造を持たないデータベースをNoSQLと呼びます.
NoSQL (Non Structured Query Language)
主に固定データがないデータベースを指し、必ずしもアーキテクチャがないとは限らないが、NoSQLはデータを読み出す際にアーキテクチャに基づいてデータを読み出す.
データの入力方式によっては、データの読み出しに影響します.
NoSQLベースの非リレーショナル・データベース構成
典型的なNoSQL:MongoDB、Casandra
MySQL
インストール(MacOS)
事前にhomebrewをインストールする必要があります.
プロンプトに次のように入力します.brew install mysql
サービス開始(MacOS)
プログラムを実行しないと使用できません.
次のように入力します.brew services start mysql
せつぞく
パスワードを設定する前に接続mysql -u root
パスワードを設定して接続mysql -u root -p
ログイン失敗
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'yourPassword';
SQL構文
Table
データベースの多くは、1つ以上のテーブルを含みます.
各Tableは名前で識別されます.
データベースで実行するタスクのほとんどは、SQL文で実行されます.
record
データベース内のユニットとして処理されるデータのセット.
1枚のレコードも横の線です.
行と呼びます.
演算子
演算子より大きい説明=等しい>より大きい<等しい>=等しいまたはより大きい<=または等しい<>異なる(一部のバージョンのSQLで使用!=演算子)BEETWEENは、特定の範囲内でLIKEモードを検索し、INcolumnで複合値を指定します.
SQL reference: W3schools SQL
Sprint
SHOW DATABASES;
// 모든 데이터베이스의 정보 확인
USE database_name;
// 해당 데이터베이스 사용
SHOW TABLES;
// 모든 테이블 정보 확인
DESC table_name;
// 해당 테이블 구조 확인
SELECT * FROM table_name;
// 해당 테이블의 모든 데이터 확인
SELECT table_name.calumn1 FROM table_name
// 해당 테이블의 해당 calumn1 데이터만 확인
SELECT * FROM table_name WHERE table_name.calumn1='kim';
// 해당 테이블에서 특정 조건을 만족하는 데이터 찾기 (조건: calumn1의 value가 'kim'이다.)
SELECT * FROM table_name AS byname WHERE byname.calumn1='kim';
// AS로 별칭을 만들수 있다.
INSERT INTO table_name (calumn1, ...) VALUES (value1,...);
// 해당 테이블에 데이터 추가
UPDATE table_name SET table_name.calumn1='value';
// 해당테이블 calumn1의 value 수정
SELECT table1.column1 FROM table1
INNER JOIN table2 ON table1.column4 = table2.column7;
// table1에서 column1에서 조건에 맞는 record와 table2에서 조건에 맞는 record 리턴
// (조건: table1의 column4과 table2의 column7중에서 동일한 value)
SELECT table1.column1 FROM table1
LEFT JOIN table2 ON table1.column4 = table2.column7;
// table1에서 column1의 모든 record와 table2에서 조건에 맞는 record 리턴
// (조건: table1의 column4과 table2의 column7중에서 동일한 value)
SELECT table1.column1 FROM table1
RIGHT JOIN table2 ON table1.column4 = table2.column7;
// table1에서 column1에서 조건에 맞는 record와 table2의 모든 record 리턴
// (조건: table1의 column4과 table2의 column7중에서 동일한 value)
Reference
この問題について([データベース]リレーショナル・データベースSQL、MySQL), 我々は、より多くの情報をここで見つけました https://velog.io/@tyoon225/DB-관계형-데이터베이스テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol