*** MySQl 기본적인 명령어 *** 


데이터베이스를 관리해주는 DataBase Management System, 줄여서 DBMS 라고 합니다.


이 DBMS 도 C 컴파일러(dev-C, gcc 등등) 처럼 여러 종류가 있는데요.


Oracle 사의 DBMS, MS 사의 MySQL, 그리고 MySQL 에서 분파(?)한 MariaDB 등등 SQL 을 사용할 수 있는 DBMS 시스템에도 종류가 있습니다.


이 글은 MS 사의 MySQL 을 기준으로 하겠습니다.


---------------------------------------------------------------------------------------------------------------------------------------------------------



1. Database 선택하기


Database 가 여러 개가 있을 경우, 쿼리문을 어느 DB에 사용할 것인가?


>>> use (db_name)

* 이후 발생하는 쿼리문들은 모두 db_name 의 데이터베이스에서 실행됩니다.




2. (table_name) 의 모든 정보 보기


(table_name) 테이블에 있는 모든 정보를 보고 싶다?


>>> select * from (table_name)




3. 2개 이상의 테이블을 한 번에 보기


(table_name1) 과 (table_name2) 의 이루어 질 수 있는 모든 경우의 수를 보고 싶다?


>>> select * from (table_name1), (table_name2)

* 단순히 콤마를 통해 두 테이블을 연결할 경우, 두 테이블에서 나올 수 있는 모든 경우의 row가 발생한다.

즉, table_name1 의 row 개수가 100개, table_name2 의 row 개수가 20개라면

위의 쿼리문으로 나오는 row 의 개수는 100 * 20 = 2000개 가 나온다.




4. 중복된 정보를 제거한 후 보기


특정 칼럼에서 중복된 값들을 제거한 후 하나씩 만을 보고 싶다?


>>> select distinct (column_name) from (table_name)

* 반복적인 1, 2, 3 의 값으로 되어있는 column 에 distinct 를 붙인다면

단 3개의 row 가 나온다. (1, 2, 3)




5. 상위 n개의 row 만 보기


단순하게 위에서 n개의 row만을 보고 싶다?


>>> select top (n) (column_name) from (table_name)




6. 두 개의 칼럼을 합쳐서, 하나의 칼럼으로 따로 보기


테이블을 한 번에 보는 것이 아닌, 두 개의 칼럼을 합쳐서 따로 새로운 칼럼으로 보고 싶다?


>>> select (column_name1) + (column_name2) from (table_name)

* 위의 쿼리문을 실행하면, (열 이름 없음) 이라는 새로운 column 에서 두 column 을 그대로 합친 결과를 볼 수 있습니다.

만약 (열 이름 없음) column 에 이름을 지어주고 싶다면


>>> select (column_name1) + (column_name2) as (new_column_name) from (table_name)

위처럼 as 문을 사용하면 가능합니다.


>>> as 는 "Rename" 기능을 가지고 있습니다. 

from MyTable as MT 라고 한다면, 이후에 MyTable.column1 대신 MT.column1 이렇게 접근할 수 있습니다.




7. 특정 column 에 대하여 정렬된 상태로 보기


칼럼이 여러 개가 있을 경우, 어떤 특정 칼럼에 대해 정렬된 상태로 보고 싶다?


>>> select (column_name) from (table_name) order by (wanted_column_name)

* 위의 쿼리문을 실행하면, (열 이름 없음) 이라는 새로운 column 에서 두 column 을 그대로 합친 결과를 볼 수 있습니다.

그런데 이 정렬의 기준이 될 column 은 2개 이상도 가능합니다.


>>> select (column_name) from (table_name) order by (wanted_column_name1), (wanted_column_name2)

* 이 쿼리문을 실행하면, (wanted_column_name1) 과 (wanted_column_name2) 에 맞춰져서 정렬된 상태로 테이블의 row 들을 보여줍니다.

정렬의 기준은 알파벳 순서 (ex. a~ ), 작은 숫자 (ex. 0~ ) 순서입니다.



---------------------------------------------------------------------------------------------------------------------------------------------------------


이후에 더 추가할 내용이 있다면 추가하도록 하겠습니다.

SQL 쿼리문에 들어가는 키워드를 중심적으로 봐주시면 될 것 같습니다.

(ex. 정렬이 필요하다? -> order by,   상위 n개의 row를 보고싶다? -> top (n) )


Posted by NDC :