본문 바로가기

프로젝트 & TIL/일별 공부 기록 (백엔드 스쿨)

12일차 - DB 쿼리(1)

시작 전 할 일

  • xampp start > SQLyog 접속

온라인 MySQL 실습 환경

https://app.codingrooms.com/compiler?language=mysql

 

Coding Rooms

 

app.codingrooms.com


DB 쿼리

  • CRUD : create, read, update, delete
  • DDL : 테이블과 DB 조작
  • DML : 데이터(row) 조작

데이터베이스 목록 확인

SHOW DATABASES;

  

사용할 데이터베이스 선택

USE DB_이름;

  

선택한 데이터베이스의 테이블 목록 확인

SHOW TABLES;

  

테이블의 구조 확인

DESCRIBE 테이블_이름;
DESC 테이블_이름;

- user 처럼 소문자로 타이핑했지만 대문자로 변경되는 경우(기존 키워드인 경우) 백틱으로 감싸준다.

  

데이터베이스 생성

CREATE DATABASE DB_이름;

  

데이터베이스 삭제

DROP DATABASE DB_이름;
DROP DATABASE IF EXISTS DB_이름;

  

테이블 생성

CREATE TABLE 테이블_이름 (
    컬럼_이름 데이터_타입,
    ...
);

필요 시 NOT NULL, AUTO_INCREMENT, UNIQUE 등 추가

    

데이터 타입 참고

 

https://www.w3schools.com/mysql/mysql_datatypes.asp

 

MySQL Data Types

W3Schools offers free online tutorials, references and exercises in all the major languages of the web. Covering popular subjects like HTML, CSS, JavaScript, Python, SQL, Java, and many, many more.

www.w3schools.com

- UNSIGNED 속성 : 음수 범위를 양수 범위로 바꾼다. (ex. INT => -21억~21억 / INT UNSIGNED => 42억)

 

데이터 추가

INSERT INTO 테이블_이름 SET 컬럼_이름 = '내용', ... ;

  

데이터 조회

SELECT 컬럼_이름 FROM 테이블_이름;
SELECT * FROM 테이블_이름;

  

JOIN

SELECT * FROM 컬럼1, 컬럼2;
SELECT * FROM 컬럼1 INNER JOIN 컬럼2;   # 위와 똑같다.
SELECT * FROM 컬럼1 INNER JOIN 컬럼2 ON 조건;

  

ORDER BY

SELECT * FROM 테이블_이름 ORDER BY 컬럼_이름 [ASC];   # ASC라고 적어주지 않아도 기본으로 설정되어 있음
SELECT * FROM 테이블_이름 ORDER BY 컬럼_이름 DESC;

  

LIKE

SELECT * FROM 테이블_이름 WHERE 컬럼_이름 LIKE '조건';

- % : 0~n개의 문자를 나타냄

- _ : 단 하나의 문자를 나타내는 와일드 카드

  

BETWEEN

SELECT * FROM article WHERE hit >= 10 AND hit <= 55;
SELECT * FROM article WHERE hit BETWEEN 10 AND 55;

- 두 줄은 같은 내용

  

테이블 수정(컬럼 추가)

ALTER TABLE 테이블_이름 ADD COLUMN 컬럼_이름 데이터_타입;
ALTER TABLE 테이블_이름 ADD COLUMN 컬럼_이름 데이터_타입 FIRST;   # 테이블 맨 앞에 컬럼 추가
ALTER TABLE 테이블_이름 ADD COLUMN 컬럼_이름 데이터_타입 AFTER 컬럼_이름2;   # 컬럼_이름2 뒤에 컬럼 추가

  

테이블 수정(컬럼 수정)

ALTER TABLE 테이블_이름 MODIFY COLUMN 컬럼_이름 ... ;

  

테이블 수정(컬럼 이름 수정)

ALTER TABLE 테이블_이름 CHANGE COLUMN 기존_이름 새로운_이름 ... ;

  

테이블 수정(컬럼 삭제)

ALTER TABLE 테이블_이름 DROP COLUMN 컬럼_이름;

  

테이블 수정(PK 지정)

ALTER TABLE 테이블_이름 ADD PRIMARY KEY(컬럼_이름);

- PK => UNIQUE + NOT NULL

  

데이터 수정

 UPDATE 테이블_이름 SET 컬럼_이름 = 수정_데이터 [조건절];

- 필요한 경우 조건절을 추가한다. (ex. LIMIT 1, WHERE 컬럼_이름 IS NULL ...)

  

데이터 삭제

DELETE FROM 테이블_이름 WHERE ... ;

- 조건절(WHERE ...) 추가하지 않으면 전체 데이터 삭제

  

함수 실행해보기(NOW())

SELECT NOW();