SQL
- SQL은 명령어 이다.
- SQL은 DBMS에게 명령을 내릴 때 사용된다.
예제
- 대소문자 구분 없음
- ` 으로 감싸는 경우 : 칼럼명, 테이블명, DB명
- Tips ✨ 한 줄씩 실행하는 단축키
- mac : Command + Return
- window : Crtl + Enter
1. SHOW DATABASES
전체 데이터베이스 리스팅
SHOW DATABASES;
2. USE
특정 데이터베이스 선택, 다른말로 하면 특정 폴더(DB)로 접속 명령어
USE `DB이름`;
ex.
USE mysql;
데이터베이스(`a1`) 선택
USE `a1`;
3. SHOW TABLES
# 테이블 확인
# 현재 접속해 있는 DB안의 모든 테이블들을 리스팅
SHOW TABLES;
4. DESC
특정 테이블의 구조
DESCRIBE `user`;
또는
DESC `user`;
5. CREATE DATABSE IF NOT EXISTS
`test` 데이터 베이스 선택(없으면 먼저 만들어주세요.)
CREATE DATABASE IF NOT EXISTS test;
USE test;
6. DROP
기존에 a1 데이터베이스가 존재 한다면 삭제
DROP DATABASE IF EXISTS `a1`;
7. CREATE DATABASE
새 데이터베이스(`a1`) 생성
CREATE DATABASE `a1`;
8. SHOW
데이터베이스 추가 되었는지 확인
SHOW DATABASES;
9. CREATE TABLE
# 게시물 테이블 article(title, body)을 만듭니다.
# VARCHAR(100) → 문자 100개 저장가능
# TEXT → 최대 문자 65,535바이트 저장 가능
CREATE TABLE article (
title VARCHAR(100),
body TEXT
);
# VARCHAR → 신축성 O
# CHAR → 신축성 X but, 속도가 빠르다.
10. INSERT
# 데이터 하나 추가(title = 제목, body = 내용)
INSERT INTO article
SET title = '제목',
body = '내용';
11. SELECT
# 데이터 조회(title 만)
SELECT title
FROM article;
12. SELECT
# 데이터 조회(title, body)
SELECT title, `body`
FROM article;
13. SELECT
# 모든 열(Column) 데이터 조회(*)
SELECT *
FROM article;
14. FIRST
# 테이블 구조 수정(id 칼럼 추가, first → 첫번째 속성으로 추가)
# BEFORE title → title Column 전에 추가, AFTER title → title Column 뒤에 추가
ALTER TABLE article ADD COLUMN id INT FIRST;
15. id 열(Column) 값이 NULL 일때
# 기존 데이터에 id값 추가(id = 1, id IS NULL)
UPDATE article
SET id = 1
WHERE id IS NULL;
# BUT, 이 경우 모든 id 값이 1로 바뀐다.
16. LIMIT
# 기존 데이터 중 1개만 id를 2로 변경(LIMIT 1)
# LIMIT → 1개 행만 연산하도록 제한
UPDATE article
SET id = 2
LIMIT 1;
17. SET
# 데이터 1개 추가(id = 3, title = 제목3, body = 내용3)
INSERT INTO article
SET id = 3,
title = '제목3',
body = '내용3';
18. DELETE
# 2번 게시물, 데이터 삭제 → DELETE
DELETE FROM article
WHERE id = 2;
19. AFTER
# 날짜 칼럼 추가(id 칼럼 뒤에) → regDate DATETIME
ALTER TABLE article ADD COLUMN regDate DATETIME AFTER id;
20. UPDATE
# 1번 게시물의 비어있는 날짜정보 채움(regDate = 2018-08-10 15:00:00)
UPDATE article
SET regDate = '2018-08-10 15:00:00'
WHERE id = 1;
21. SET
# NOW() 함수 실행해보기
SELECT NOW();
22. UPDATE
# 3번 게시물의 비어있는 날짜정보 채움(NOW())
UPDATE article
SET regDate = NOW()
WHERE id = 3;
23. MODOFY COLUMN
# 열의 순서를 변경하거나 데이터 타입을 수정
# title 열의 길이를 100에서 200으로 확장
ALTER TABLE article MODIFY COLUMN title VARCHAR(200);
24. PRIMARY KEY
# id 열을 기본 키로 설정
ALTER TABLE article ADD PRIMARY KEY (id);
25. DEFAULT
# regDate 열의 기본값을 NOW()로 설정하고 순서를 id 열 뒤로 이동
ALTER TABLE article MODIFY COLUMN regDate DATETIME DEFAULT NOW() AFTER id;
26. UNSIGNED
# 숫자 열에서 음수 값을 허용하지 않도록 설정하며, 더 큰 양수 범위를 지원
# id 열을 음수를 허용하지 않는 양의 정수로 변경
ALTER TABLE article MODIFY COLUMN id INT UNSIGNED;
27. CHANGE
# 열의 이름과 데이터 타입을 동시에 변경
# body 열의 이름을 content로 변경하고 데이터 타입은 그대로 유지
ALTER TABLE article CHANGE COLUMN body content TEXT;
28. AUTO_INCREMENT (순서 중요)
# 자동으로 증가하는 숫자 값을 생성하기 위해 사용되는 속성
ALTER TABLE article MODIFY COLUMN id INT UNSIGNED NOT NULL AUTO_INCREMENT;
29. ORDER BY (default ASC 오름차순, DESC 설정해주면 내림차순으로 정렬됨)
# 조회수 가장 많은 게시물 3개 만 보여주세요.
SELECT * FROM article ORDER BY hit DESC LIMIT 3;
30. LIKE
# 작성자명이 '홍길'로 시작하는 게시물만 보여주세요.
SELECT * FROM article WHERE nickname LIKE '홍길%';
31. WHERE 조건1 AND 조건2
# 조회수가 10 이상 55 이하 인것만 보여주세요.
SELECT * FROM article WHERE hit >= 10 AND hit <= 55;
32. !=
# 작성자가 '무명'이 아니고 조회수가 50 이하인 것만 보여주세요.
SELECT * FROM article WHERE nickname != '무명' AND hit <= 50;
33. OR
# 작성자가 '무명' 이거나 조회수가 55 이상인 게시물을 보여주세요.
SELECT * FROM article WHERE nickname = '무명' OR hit >= 55;
정리
명령어 | Database | Table | Row |
조회 | SHOW | SHOW, DESC | SELECT |
생성 | CREATE | CREATE | INSERT |
수정 | ALTER | UPDATE | |
삭제 | DROP | DROP | DELETE |
출처
2024 프로그래머스 백엔드 데브코스 3기 4회차 수업
반응형
'DB > MySQL' 카테고리의 다른 글
SELECT문 실행 순서 (0) | 2024.12.30 |
---|---|
AUTO_INCREMENT (0) | 2024.12.29 |
DBMS를 사용하는 이유 feat. MySQL (1) | 2024.12.27 |
INDEX (0) | 2024.12.21 |
CHAR vs VARCHAR (1) | 2024.12.15 |