20220327
課題-テスト後にカリキュラムと成果物を提出
CRUD
第1週
課題-テスト後にカリキュラムと成果物を提出
CRUD
コミュニティDBの作成
データベースの作成
設計テーブル-ワークベンチの使用
AI : auto increase
VARCHAR()カッコの数字はmySQLで文字数を表します.
boardのid boardをプライマリキーとする外部キーをuserテーブルに入れます.
作成者が作成した投稿が表示されます.1:N関係
テーブル台
タイトル、内容、クリック率、賛数を表すためにコラムに参加した.
NN: not null
NNを使うことでストレージスペースを節約できるというので、できるだけ大部分のコラムに適用します.
name tag:タグ名を参照する外部キーN:Mの関係
id user:userテーブルのidを参照して、作成者の外部キーを表示します.1:Nの関係
ハッシュテーブル
1つの投稿に複数のラベルを含めることも、複数のラベルを含めることもできます.
ラベルと投稿の関係はN:Mです. 検索結果JOINテーブルを作成することになりました.参考資料:https://hanamon.kr/リレーションシップ-データベース-設計-リレーションシップ-タイプ/
board hashtagテーブルは、tagのnameとboardのidを参照するために作成された結合テーブルです.
MySQLのCRUD
CはCreate,RはRead,UはUpdate,DはDeleteの略,4つの機能はDBの本質である.
CREATE
CREATE DATABASE database_name;
USE database_name; # 데이터베이스 사용
CREATE TABLE table_name(
필드명 타입
필드명 타입
PRIMARY KEY(필드명)
); # 데이터 컬럼의 이름과 자료형을 입력하여 테이블을 생성
INSERT INTO# 생성한 데이터베이스에 레코드를 추가할 때 사용할 수 있음.
INSERT INTO table_name(field1, field2, field3)
VALUES(data1, data2, data3);
SELECT * FROM topic; # topic 테이블의 모든것(*)을 출력해줌
SELECT
SELECT 속성1, 속성2, 속성3 FROM topic;
# topic 테이블에서 속성 1-3 만 선택해서 출력해줌
[WHERE | GROUP BY | ORDER BY]
SELECT field1,field2,field3 FROM topic WHERE field1='something';
#field1이 'something'인 레코드값들을 찾아서 field1-3 출력해줌
SELECT field1 FROM topic WHERE field1='something' ORDER BY DESC LIMIT 2;
#ORDER BY DESC, ASC로 내림차순, 오름차순 정렬가능
#LIMIT n 을 사용해서 검색되는 데이터가 너무 많을 때 제한을 걸 수 있다
UPDATE
UPDATE 테이블 SET assignment_list # 혹은 속성1= 바꿀값 과 같이
[WHERE where_condition] # 어디에 수정을 할 것인지
value:
{expr | DEFAULT}
assignment:
col_name = value
assignment_list:
assignment [, assignment] ...
DELETE
DELETE FROM 테이블이름
WHERE 조건
#레코드 한 줄 전체 말고, 속성1에 해당하는 값1개만 삭제할 수는 없을까?
#- NULL 값으로 만드는 것은 가능할 것 같다.
FKを使う理由。書かなければなりませんか?
Foreignキーを使用して、他のテーブルのプライマリ・キーを参照します.
次の整合性制約が適用されるため、整合性を強制する場合に使用します.
しかし、書く必要のない意見はこうです.
データベースが大きすぎて、容量整理のためにプライマリ・キーを含むAのレコードを削除すると、消失したレコードを参照する外部キーは存在しません.ただし,外部キーを含むレコードが失われない場合があるため,速やかに管理する.
WHERE, IN
WHEREは、SELECT文で条件に対応する値を検索するために使用されます.SELECT * FROM 테이블명
WHERE 컬럼명 IN (값1, 값2, 값3);
# IN은 WHERE절 내에서 여러개 특정값에 해당하는 레코드들을 선택한다.
# OR 연산자로 값을 하나 하나 연결해서 표현할 수도 있지만 길어진다.
# 다른 조건 연산자로 AND, OR, BETWEEN A AND B, IS NULL/NOT NULL, LIKE (%,_)
TRUNCATE
CREATE DATABASE database_name;
USE database_name; # 데이터베이스 사용
CREATE TABLE table_name(
필드명 타입
필드명 타입
PRIMARY KEY(필드명)
); # 데이터 컬럼의 이름과 자료형을 입력하여 테이블을 생성
# 생성한 데이터베이스에 레코드를 추가할 때 사용할 수 있음.
INSERT INTO table_name(field1, field2, field3)
VALUES(data1, data2, data3);
SELECT * FROM topic; # topic 테이블의 모든것(*)을 출력해줌
SELECT 속성1, 속성2, 속성3 FROM topic;
# topic 테이블에서 속성 1-3 만 선택해서 출력해줌
[WHERE | GROUP BY | ORDER BY]
SELECT field1,field2,field3 FROM topic WHERE field1='something';
#field1이 'something'인 레코드값들을 찾아서 field1-3 출력해줌
SELECT field1 FROM topic WHERE field1='something' ORDER BY DESC LIMIT 2;
#ORDER BY DESC, ASC로 내림차순, 오름차순 정렬가능
#LIMIT n 을 사용해서 검색되는 데이터가 너무 많을 때 제한을 걸 수 있다
UPDATE 테이블 SET assignment_list # 혹은 속성1= 바꿀값 과 같이
[WHERE where_condition] # 어디에 수정을 할 것인지
value:
{expr | DEFAULT}
assignment:
col_name = value
assignment_list:
assignment [, assignment] ...
DELETE FROM 테이블이름
WHERE 조건
#레코드 한 줄 전체 말고, 속성1에 해당하는 값1개만 삭제할 수는 없을까?
#- NULL 값으로 만드는 것은 가능할 것 같다.
SELECT * FROM 테이블명
WHERE 컬럼명 IN (값1, 값2, 값3);
# IN은 WHERE절 내에서 여러개 특정값에 해당하는 레코드들을 선택한다.
# OR 연산자로 값을 하나 하나 연결해서 표현할 수도 있지만 길어진다.
# 다른 조건 연산자로 AND, OR, BETWEEN A AND B, IS NULL/NOT NULL, LIKE (%,_)
DML, DDL , DCL
https://brownbears.tistory.com/180
TCLとは、データベースをサーバにアップロードして管理する際に、トランザクションラインで制御するコマンドです.
COMMIT、ROLLBACKなど.
Reference
この問題について(20220327), 我々は、より多くの情報をここで見つけました https://velog.io/@amecasu/20220327テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol