DB/MySQL

SQL

annovation 2024. 12. 26. 10:13

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