시작 전 할 일
- xampp start > SQLyog 접속
온라인 MySQL 실습 환경
https://app.codingrooms.com/compiler?language=mysql
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
- 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();
'프로젝트 & TIL > 일별 공부 기록 (백엔드 스쿨)' 카테고리의 다른 글
14일차 - DB index (0) | 2023.03.10 |
---|---|
13일차 - DB 쿼리(2) (0) | 2023.03.09 |
11일차 - 토스트 UI 에디터(폰트, 플러그인)와 깃허브 블로그, DB (0) | 2023.03.07 |
10일차 - 깃 협업과 토스트 UI 에디터 (0) | 2023.03.06 |
9일차 - 각 클래스의 역할과 Git rebase, Git Flow & Github Flow (0) | 2023.03.05 |