SQL Basics

Mixer·2022년 6월 8일
0
post-thumbnail

기본 쿼리문을 알아보자

  • Select
  • Where
  • And, Or, Not
  • Order By
  • Insert Into
  • Null Values
  • Update
  • Delete
  • Count
  • Like
  • Wildcards
  • Aliases
  • Joins
    • Inner Join
    • Left Join
    • Right Join
  • Group By

데이터베이스 관련 용어

  • SQL Create DB
  • SQL Drop DB
  • SQL CReate Table
  • SQL Alter Table
  • SQL Not Null
  • SQL Unique
  • SQL Primary Key
  • SQL Foreign Key
  • SQL Default
  • SQL Auto Increment
  • SQL Dates

데이터베이스 관련 명령어

데이터베이스 생성

CREATE DATABASE 데이터베이스_이름;

데이터베이스 사용

데이터베이스를 이용해 테이블을 만들거나 수정하거나 삭제하는 등의 작업을 하기위해선, 먼저 데이터베이스를 사용하겠다는 명령을 전달해야함

USE 데이터베이스_이름;

테이블 생성

USE 를 이용해 데이터베이스를 선택했다면, 테이블을 만들수 있다.
테이블은 필드(표와 열)과 함께 만들어야 한다.

필드 이름필드 타입그 외 속성
id숫자Primary key이면서 자동 증가되도록 설정
name문자열(최대 255개의 문자)
email문자열(최대 255개의 문자)
user 테이블 생성
CREATE TABLE user (
	id int PRIMARY KEY AUTO_INCREMENT,
    name varchar(255),
    email varchar(255)
)

SQL 콘솔에서 Enter 키를 이용해 여러 줄의 코드를 입력할 수 있다.

테이블 정보 확인

DESCRIBE

DESCRIBE user;

놀랍지만 이렇게 테이블 정보를 확인이 가능하다

mysql> describe user;
+-------+--------------+------+-----+---------+----------------+
| Field | Type         | Null | Key | Default | Extra          |
+-------+--------------+------+-----+---------+----------------+
| id    | int          | NO   | PRI | NULL    | auto_increment |
| name  | varchar(255) | YES  |     | NULL    |                |
| email | varchar(255) | YES  |     | NULL    |                |
+-------+--------------+------+-----+---------+----------------+
3 rows in set (0.00 sec)

SQL 명령어 간략하게 살펴보기

MYSQL에서 자주 사용하는 명령어들

  • SELECT
    데이터셋에 포함될 특성을 특정한다
일반 문자열
SELECT 'hello world'
숫자
SELECT 2
간단한 연산
SELECT 15 + 3
  • FROM
    테이블과 관련한 작업을 할 경우 '반드시' 입력해야 한다.
    FROM 뒤엔 결과를 도출해낼 데이터베이스 테이블을 명시한다
특정 특성을 테이블에서 사용

SELECT 특성_1
FROM 테이블_이름
몇 가지 특성을 테이블에서 사용

SELECT 특성_1, 특성_2
FROM 테이블_이름
테이블의 모든 특성을 선택

SELECT *
FROM 테이블_이름

📢 (*) 는 와일드카드로 전부 선택할때 사용
  • WHERE
    필터 역할을 하는 쿼리문
    WHERE은 선택적으로 사용할 수 있다.
특정 값과 동일한 데이터 찾기

SELECT 특성_1, 특성_2
FROM 테이블_이름
WHERE 특성_1 = "특정 값"
특정 값을 제외한 값 찾기

SELECT 특성_1, 특성_2
FROM 테이블_이름
WHERE 특성_2 <> "특정 값"
특정 값보다 크거나 작은 데이터를 필터할때 '<','>', 
비교하는 값을 포함하는 '이상','이하' 값은 '<=','>=' 사용 

SELECT 특성_1, 특성_2
FROM 테이블_이름
WHERE 특성_1 > "특정 값"

SELECT 특성_1, 특성_2
FROM 테이블_이름
WHERE 특성_1 <= "특정 값"
문자열에서 특정 값과 비슷한 값들을 필터할 때 'LIKE'와 '\%' 혹은 '\*'를 사용

SELECT 특성_1, 특성_2
FROM 테이블_이름
WHERE 특성_2 LIKE "%특정 문자열%"
리스트의 값들을 일치하는 데이터를 필터할 땐 'IN'을 사용

SELECT 특성_1, 특성_2
FROM 테이블_이름
WHERE 특성_2 IN ("특정값_1", "특정값_2")
값이 없는 경우 'NULL'을 찾을 땐 'IS'와 같이 사용

SELECT *
FROM 테이블_이름
WHERE 특성_1 IS NULL
값이 없는 경우를 '제외'할때 'NOT'을 추가해 이용

SELECT *
FROM 테이블_이름
WHERE 특성_1 IS NOT NULL
  • ORDER BY
    돌려받는 데이터 결과를 어떤 기준으로 정렬하여 출력할지 결정한다
    ORDER BY는 선택적으로 사용 가능
기본 정렬은 오름차순

SELECT *
FROM 테이블_이름
ORDER BY 특성_1
내림차순으로 정렬 'DESC'

SELECT *
FROM 테이블_이름
ORDER BY 특성_1 DESC
  • LIMIT
    결과로 출력할 데이터의 갯수를 정할 수 있다.
    LIMIT은 선택적으로 사용 가능, 쿼리문에서 사용할땐 마지막에 추가해야한다
데이터 결과를 200개만 출력

SELECT *
FROM 테이블_이름
LIMIT 200
  • DISTINCT
    유니크한 값을 받고 싶을땐 SELECT DISTINCT 를 사용한다
특성_1 기준으로 유니크한 값들만 선택

SELECT DISTINCT 특성_1
FROM 테이블_이름
특성_1, 특성_2, 특성_3의 유니크한 '조합' 값들을 선택
SELECT
	DISTINCT
    특성_1
    ,특성_2
    ,특성_3
FROM 테이블_이름
  • INNER JOIN
    INNER JOIN 이나 JOIN 으로 실행 가능
둘 이상의 테이블 서로 공통된 부분을 기준으로 연결

SELECT *
FROM 테이블_1
JOIN 테이블_2 ON 테이블_1.특성_A = 테이블_2.특성_B
  • OUTER JOIN
    OUTER JOIN은 다양한 선택지가 있다.
LEFT OUTER JOIN으로 LEFT INCLUSIVE 실행

SELECT *
FROM 테이블_1
LEFT OUTER JOIN 테이블_2 ON 테이블_1.특성_A = 테이블_2.특성_B
RIGHT OUTER JOIN으로 RIGHT INCLUSIVE를 실행

SELECT *
FROM 테이블_1
RIGHT OUTER JOIN 테이블_2 ON 테이블_1.특성_A = 테이블_2.특성_B
profile
Minthug'life

0개의 댓글