반응형

 

 

[DATABASE] 데이터베이스 개념

데이터베이스 정의'데이터의 집합'데이터를 저장하고 조회하는 프로그램 통합 데이터(Integrated Data)최소 중복과 통제 가능한 중복만 허용하는 데이터중복된 정보에 대하여 데이터를 통합해 자

mint10.tistory.com

 

관계형 데이터베이스

SQL(Structured Query Language)은 관계형 데이터베이스를 다룰 때 사용되는 표준 언어

관계형 데이터베이스는 데이터를 표(테이블)로 나타냄

MySQL은 관계형 데이터베이스를 관리하는 시스템(RDBMS, Realational DataBase Management System)이다

데이터베이스 안엔 여러개의 테이블이 존재함

 


기초 문법(코드)

 

데이터베이스 생성

CREATE DATABASE [DBNAME];

 

데이터베이스 삭제

DROP DATABASE [DBNAME];

존재하지 않는 데이터베이스를 삭제할 경우 에러 발생

 

데이터베이스 선택

USE [DBNAME];

 

데이터베이스 목록

SHOW DATABASE;

 

예시)

CREATE DATABASE mydb; //데이터베이스 생성
SHOW DATABASE; //데이터베이스 목록
USE DATABASE; //데이터베이스 사용
DROP DATABASE mydb; //데이터베이스 삭제
DROP DATABASE IF EXISTS mydb; //mydb가 존재하는 경우 삭제

SQL로 테이블 만들기

테이블을 생성할 데이터베이스를 먼저 선택해야함

 

테이블 생성

CREATE TABLE [TBLNAME] ([column type option][datatype], …);

 

예시)

CREATE TABLE Member
(
    ID BIGINT NOT NULL AUTO_INCREMENT,
    Name VARCHAR(20) NOT NULL,
    Email VARCHAR(40) NOT NULL,
    Birth DATE NULL,
    Body TEXT NULL,
    PRIMARY KEY(ID)
);

정수 INT, 긴 문자 TEXT, 변경 가능한 문자 VARCHAR, 날짜 DATE 정도는 알아야 한다

(추가로 일반 부동소수점수 DOUBLE, 날짜와 시간 형태인 DATETIME 등) 

NULL은 비어 있다는 뜻. NOT NULL이라면 절대 비어있으면 안되는 값

AUTO_INCREMENT 는 값이 1씩 자동으로 증가하는 함수

VARCHAR(20)은 최대 글자수가 20byte 를 의미

PRIMARY KEY(기본키)에 대해서 자세한 내용은 [DATABASE} 03에서 살펴보겠다

여기선 그냥 테이블당 각 하나씩만 존재하는 유일한 값이라는 것만 알아두면 좋을 것 같다. -

 

테이블 삭제

DROP TABLE [TBLNAME];

삭제할 테이블이 존재하지 않더라도 에러가 발생하지 않고 경고 알림만 뜬 채 실행된다

 

테이블 목록

SHOW TABLES;

 

테이블 초기화

TRUNCATE TABLE [TBLNAME];

 

 

예시)

USE DATABASE mydb;
CREATE TABLE Member(
    ID BIGINT NOT NULL AUTO_INCREMENT,
    Name VARCHAR(20) NOT NULL,
    Email VARCHAR(40) NOT NULL,
    Birth DATE NULL,
    Body TEXT NULL,
    PRIMARY KEY(ID)
); //테이블 생성

SHOW TABLES; //테이블 목록
TRUNCATE TABLE Member; //테이블 초기화
DROP Member; //테이블 삭제

 

 


Column 추가

ALTER TABLE [TBLNAME] ADD [column COLUMN TYPE OPTION]

Column 수정

ALTER TABLE [TBLNAME] CHANGE [COLUMN NAME] [NEW COLUMN NAME] TYPE OFTION;

ALTER TABLE [TBLNAME] MODIFY [COLUMN NAME] [NEW DATETYPE OFTION];

위에는 칼럼 명과 칼럼 데이터 타입을 모두 변경할 수 있는 것이고, 아래는 데이터 타입만 변경하는 함수이다 

Column 삭제

ALTER TABLE [TBLNAME] DROP [COLUMN NAME]

 

예시)

ALTER TABLE Member MODIFY COLUMN Name VARCHAR(10) NOT NULL; //Name 데이터 타입 수정
ALTER TABLE Member CHANGE COLUMN Body Content TEXT NULL; //Body 이름 수정
ALTER TABLE Member CHANGE COLUMN Birth Birthday DATETIME NULL; //Birth 이름, 타입 수정

ALTER TABLE Member DROP Email; //Email 칼럼 삭제
ALTER TABLE Email ADD VARCHAR(40);//Email 칼럼 추가

Data 추가

INSERT INTO [TBLNAME]('COLUMN1', 'COLUMN2'...) VALUES ('VALUE1', 'VALUE2', ...);

 

Data 삭제

DELETE FROM [TBLNAME] WHERE [CONDITION];

WHERE: 특정 컬럼 중 조건에 부합하는 데이터만 지정하는 것

 

Data 조회

SELECT 'COLUMN1', 'COLUMN2'.. FROM [TBLNAME] WHERE [CONDITION];

 

Data 수정

UPDATE [TBLNAME] SET COLUMN1 = 'VALUE1' WHERE [CONDITION];

 

예시)

INSERT INTO Member(ID, Name, Email) VALUES (1, "홍길동", 'abcd@efg.hr');//DATA 추가
SELECT 'COLUMN1', 'COLUMN2'.. FROM [TBLNAME] WHERE [CONDITION]; //DATA 조회
SELECT * FROM Member; //전체 행 선택
SELECT Name, Email FROM Member WHERE ID=1; //ID가 1인 값 중에서 Name과 Email만 보여줌
UPDATE User SET Name='홍길동' WHERE Birth='2000-01-01';//DATA 수정
DELETE FROM Member WHERE ID=1; //ID가 1인 데이터(행) 삭제

 


전체 코드

//DB
CREATE DATABASE mydb; //데이터베이스 생성
SHOW DATABASE; //데이터베이스 목록
USE DATABASE; //데이터베이스 사용
DROP DATABASE mydb; //데이터베이스 삭제
DROP DATABASE IF EXISTS mydb; //mydb가 존재하는 경우 삭제

//TABLE
USE DATABASE mydb;
CREATE TABLE Member(
    ID BIGINT NOT NULL AUTO_INCREMENT,
    Name VARCHAR(20) NOT NULL,
    Email VARCHAR(40) NOT NULL,
    Birth DATE NULL,
    Body TEXT NULL,
    PRIMARY KEY(ID)
); //테이블 생성

SHOW TABLES; //테이블 목록
TRUNCATE TABLE Member; //테이블 초기화
DROP Member; //테이블 삭제

//COLUMN
ALTER TABLE Member MODIFY COLUMN Name VARCHAR(10) NOT NULL; //Name 데이터 타입 수정
ALTER TABLE Member CHANGE COLUMN Body Content TEXT NULL; //Body 이름 수정
ALTER TABLE Member CHANGE COLUMN Birth Birthday DATETIME NULL; //Birth 이름, 타입 수정

ALTER TABLE Member DROP Email; //Email 칼럼 삭제
ALTER TABLE Email ADD VARCHAR(40);//Email 칼럼 추가


//DATA
INSERT INTO Member(ID, Name, Email) VALUES (1, "홍길동", 'abcd@efg.hr');//DATA 추가
SELECT 'COLUMN1', 'COLUMN2'.. FROM [TBLNAME] WHERE [CONDITION]; //DATA 조회
SELECT * FROM Member; //전체 행 선택
SELECT Name, Email FROM Member WHERE ID=1; //ID가 1인 값 중에서 Name과 Email만 보여줌
UPDATE User SET Name='홍길동' WHERE Birth='2000-01-01';//DATA 수정
DELETE FROM Member WHERE ID=1; //ID가 1인 데이터(행) 삭제

 

데이터베이스

[DATABASE] 데이터베이스 개념

[DATABASE] My SQL 기초 문법

[DATABASE] MY SQL 추가 - Join, Subquery

[DATABASE] 기본키, 외래키, 복합키의 개념

[DATABASE] 관계형 데이터 베이스, ERD 설계

[DATABASE] 정규화

반응형