Database TIL 02

Nabang Kim·2021년 8월 26일

Database

목록 보기
2/8
post-thumbnail

2021년 8월 26일에 작성된 문서 2번 입니다.
데이터 베이스 배운 내용을 정리했습니다.



기본 쿼리문

SQL 사용에 필요한 기본 문법

  • 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 Drop Table
  • SQL Alter Table
  • SQL Not Null
  • SQL Unique
  • SQL Primary Key
  • SQL Foreign Key
  • SQL Default
  • SQL Auto Increment
  • SQL Dates



데이터베이스 관련 명령어

1. 데이터베이스 생성

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

// 데이터베이스를 생성



2. 데이터베이스 사용

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

USE 데이터베이스_이름;

//데이터베이스를 사용



3. 테이블 생성

  • USE 를 이용해 데이터베이스를 선택했다면, 이제 테이블을 만들 수 있다.

    다음은 user라는 테이블을 만드는 예제입니다. 테이블은 필드(표의 열)와 함께 만들어야 합니다. 다음과 같은 필드 조건이 있다고 가정합니다.

필드 이름필드 타입그 외의 속성
id숫자Primary key이면서 자동 증가되도록 설정
name문자열 (최대 255개의 문자)
email문자열 (최대 255개의 문자)

CREATE TABLE user (
  id int PRIMARY KEY AUTO_INCREMENT,
  name varchar(255),
  email varchar(255)
);

//user 테이블을 생성



4. 테이블 정보 확인

DESCRIBE user;

//user 테이블의 정보를 확인

다음과 같이 user 테이블의 정보를 확인할 수 있습니다.

//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 명령어 간략하게 살펴보기

1. SELECT

  • SELECT : 데이터셋에 포함될 특성을 특정
    SELECT 'hello world'
    
    //일반 문자열
    SELECT 2
    
    //숫자
    SELECT 15 + 3
    
    //간단한 연산



2. FROM

  • 테이블과 관련한 작업을 할 경우 반드시 입력해야 한다.
  • FROM 뒤에는 결과를 도출해낼 데이터베이스 테이블을 명시한다.
    SELECT 특성_1 // 특정한 특성을 테이블에서 사용
    FROM 테이블_이름
   SELECT 특성_1, 특성_2 //몇 가지의 특성을 테이블에서 사용
   FROM 테이블_이름
   SELECT *  //테이블의 모든 특성을 선택
   FROM 테이블_이름

* 는 와일드카드 (wildcard) 로 전부 선택할 때에 사용됩니다.



3. 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 <= "특정 값"
  • 특정 값보다 크거나 작은 데이터를 필터할 때에는 <, >**
  • 비교하는 값을 포함하는 '이상', '이하' 값은 <=, >=
    SELECT 특성_1, 특성_2
    FROM 테이블_이름
    WHERE 특성_2 LIKE "%특정 문자열%"
  • 문자열에서 특정 값과 비슷한 값들을 필터할 때에는 LIKE\% 혹은 \* 를 사용.

    SELECT 특성_1, 특성_2
    FROM 테이블_이름
    WHERE 특성_2 IN ("특정값_1", "특정값_2")
  • 리스트의 값들과 일치하는 데이터를 필터할 때에는 IN 을 사용
   SELECT *
   FROM 테이블_이름
   WHERE 특성_1 IS NULL
  • 값이 없는 경우 NULL 을 찾을 때에는 IS 와 같이 사용
   SELECT *
   FROM 테이블_이름
   WHERE 특성_1 IS NOT NULL
  • 값이 없는 경우를 제외할 때에는 NOT 을 추가해 이용.

4. ORDER BY

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

	SELECT *
	FROM 테이블_이름
	ORDER BY 특성_1 DESC //내림차순으로도 정렬할 수 있다 



5. LIMIT

  • 결과로 출력할 데이터의 갯수를 정할 수 있다.
  • LIMIT은 선택적으로 사용할 수 있다.
  • 쿼리문에서 사용할 때에는 가장 마지막에 추가.
    SELECT *
    FROM 테이블_이름
    LIMIT 200 //데이터 결과를 200개만 출력


6. DISTINCT

  • 유니크한 값을 받고 싶을 때에는 SELECT DISTINCT 를 사용.
    SELECT DISTINCT 특성_1 //특성_1을 기준으로 유니크한 값들만 선택
    FROM 테이블_이름
   SELECT
     DISTINCT //특성_1, 특성_2, 특성_3의 유니크한 '조합' 값들을 선택
       특성_1
      ,특성_2
      ,특성_3
   FROM 테이블_이름


7. INNER JOIN

  • INNER JOIN 이나 JOIN 으로 실행할 수 있다.
    SELECT *
    FROM 테이블_1
    JOIN 테이블_2 ON 테이블_1.특성_A = 테이블_2.특성_B
    
    //둘 이상의 테이블을 서로 공통된 부분을 기준으로 연결


8. OUTER JOIN

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


9. 여러 쿼리문을 한 번에 써보기

다음은 Brazil에서 온 고객을 도시별로 묶은 뒤에, 각 도시 수에 따라 내름차순 정렬합니다. 그리고 CustomerId에 따라 오름차순으로 정렬한 3개의 결과만 요청하는 예시입니다.

같은 결과를 출력하는 서로 다른 쿼리문이 있을 수 있습니다. 같은 결과를 다른 방법으로 표현할 수 있습니다.

//여러 쿼리문을 한 번에 써보기
 
SELECT c.CustomerId, c.FirstName, count(c.City) as 'City Count'
FROM customers AS c
JOIN employees AS e ON c.SupportRepId = e.EmployeeId
WHERE c.Country = 'Brazil'
GROUP BY c.City
ORDER BY 3 DESC, c.CustomerId ASC
LIMIT 3






Written with StackEdit.

0개의 댓글