SQLベース


SQLとは?


Structured Query Languageの略で、主にリレーショナル・データベースに使用されます.
データベース専用のプログラミング言語で、必要なデータを取得または挿入するためにデータベースにクエリーを送信できます.
その名の通り、構造化データを条件化処理し、データ構造が固定されなければならないという特徴がある.

SQL基本構文


データベース作成方法
CREATE DATABASE 데이터베이스 이름 //db생성
USE 데이터베이스 이름 //db접근
DESC 테이블이름 //db 안의 테이블에 접근
テーブルの作成方法
CREATE TABLE `content_category` (
  `id` int PRIMARY KEY AUTO_INCREMENT,
  `contentId` int NOT NULL,
    FOREIGN KEY (`contentId`) REFERENCES `content` (`id`),
  `categoryId` int NOT NULL,
  FOREIGN KEY (`categoryId`) REFERENCES `category` (`id`)
);
データベース命令語が多いので、問題を解きながら勉強するのが効率的だと思います.
SELECT
FROM
WHERE
ORDER BY
DESC
LIMIT
DISTINCT
INNER JOIN
ORDER JOIN
練習材料:https://www.w3schools.com/sql/sql_exercises.asp

SQL構文の練習

SELECT * FROM user WHERE user.name
//user테이블 name 컬럼을 모두 조회

INSERT INTO user (name,email) VALUES ('hyeongeol','[email protected]')
// user 테이블 name 컬럼에 hyeongeol, email 컬럼에 [email protected]을 추가.
SELECT content.title, user.name FROM content 
LEFT JOIN user ON user.id = content.userId
//content 테이블의 title 컬럼과 user 테이블의 name 컬럼을 조회한다. user 테이블의 name 컬럼이 없어도 title을 찾아야 한다.
SELECT content.title, user.name FROM content
LEFT JOIN user
ON user.id = content.userId
WHERE user.name IS NOT NULL 
//content 테이블의 title 컬럼과 user 테이블의 name 컬럼을 조회한다. 단 user 테이블의 name이 NULL이 아닌 title만 찾아야 한다.
UPDATE content SET body = 'database is very easy' WHERE content.title = 'database sprint' 
//content 테이블의 title 컬럼이 database sprint인 body 컬럼을 database is very easy로 수정한다.
INSERT INTO content  (title,body,created_at,userId) VALUES ('k','kk',now(),'1')
ALTER TABLE CUSTOMER ADD createdDate DATETIME;
//CUSTOMER 테이블에 createdDate 열 추가, 형태는 datetime
ALTER TABLE CUSTOMER ADD isDeleted INT;
//CUSTOMER 테이블에 isDeleted 열 추가, 형태는 INT
SELECT *
FROM Orders
RIGHT JOIN Customers
ON Orders.CustomerID=Customers.CustomerID;
SELECT *
FROM Orders
LEFT JOIN Customers
ON Orders.CustomerID=Customers.CustomerID;
違いは何ですか?
リレーショナル・データベースは、厳密に整理されたデータをクエリーします.
SELECT * FROM Items
ゴム靴をわらじに更新する
UPDATE Items SET name=「ゴム靴」WHERE name=「わらじ」
ゴム靴を拭き取る.
DELETE FROM Items WHERE name=「ゴム靴」
おすすめ関係型dbのブログ
リレーショナル・データベースでは、固定モードを使用する必要があります.
モード:表の表
テーブルにプライマリ・キーを設定するには:
idを別途作成する必要はなく、2つのカラムをpkにプライマリ・キーとして設定できます.

リファレンスキーリファレンス
一対多
1人のユーザーが複数のオーダー(各オーダー番号)を作成できます.
1つの注文は1人のユーザー(注文番号)しか注文できません.
ぴったり合った
1つの注文に複数の商品を含めることができます.
1つの商品は複数の注文に含めることができます.
接続条件
user idを使用してテーブルをマージします.

左、右join googling整理しましょう!
SQL:垂直拡張に有利
NOSQL:横展開に有利
どのサービスでどのデータベースを使用するかgooglingとクリーンアップを行います.