판다스/Windows

Maria DB Cheat Sheet

좋아좋아브라이언 2022. 2. 5. 09:26

SQL Script 실행하기

DB 접속후 실행 하기

mysql> source /bin/test.sql # SQL query문이 있는 파일의 경로 입니다.

Shell에서 실행하기

$ mysql -u oops -p oops < /bin/test.sql 

DDL

Table 만들기

 32 CREATE TABLE Orders (
 33   orderid INTEGER PRIMARY KEY,
 34   custid  INTEGER ,
 35   bookid  INTEGER ,
 36   saleprice INTEGER ,
 37   orderdate DATE,
 38   FOREIGN KEY (custid) REFERENCES Customer(custid),
 39   FOREIGN KEY (bookid) REFERENCES Book(bookid)
 40 );

Insert

INSERT INTO Orders VALUES (1, 1, 1, 7500, STR_TO_DATE('2021-02-01','%Y-%m-%d'));

SELECT

SELECT [DISTINCT] select_expr 
    [FROM table_references] 
    [WHERE where_condition] 
    [GROUP BY {col_name |expr |position}]     
    [HAVING where_condition] 
    [ORDER BY {col_name |expr |position}]

where 구문 (검색조건들[LIKE 필터]

- 검색조건들

- where 조건과 패턴매칭 (Like 절)

- NULL

ORDER BY

SELECT ...
    FROM. ...
    WHERE ...
    ORDER BY column_name,...[ASC | DESC]  -- ASC : 오름차순 정렬, DESC : 내림차순 정령
    or
    ORDER BY column_no,...[ASC | DESC]
    ex.
    ORDER BY price, bookname   -- 가격순으로 검색하고, 가격이 같으면 이름순으로 검색한다. 
    ex.
    ORDER BY price DESC, bookname ASC

DISTINCT (중복제거 = 범주 값 추출)

SELECT [DISTINCT] 속성이름(들)...
    FROM. ...

ex. select DISTINCT custid from orders;
    select count(DISTINCT cousid) from orders;

조건제어 (CASE, IF)

  • 다중조건 CASE
    SELECT custid, saleprice AS '총구매액',
     CASE
        WHEN (saleprice >= 15000) THEN '최우수고객'
        WHEN (saleprice  >= 10000) THEN '우수고객'
        WHEN (saleprice  >= 5000 ) THEN '일반고객'
        ELSE '유령고객'
     END AS '고객등급'
    FROM Orders O
    GROUP BY custid;

+--------+--------------+-----------------+
| custid | 총구매액 | 고객등급 |
+--------+--------------+-----------------+
| 1 | 7500 | 일반고객 |
| 2 | 8000 | 일반고객 |
| 3 | 8000 | 일반고객 |
| 4 | 20000 | 최우수고객 |
+--------+--------------+-----------------+
```