오늘은 mysql select문의 기본을 배워 봅시다.
mysql 서버에는 기본적으로 다양한 샘플 데이터가 저장되어 있습니다.
오늘은 이걸로 공부해보겠습니다.
select문을 명령하기 전에 알아두어야 할 기본적인 문법이 있습니다.
1. sql 문의 마지막에는 딜리미터를 붙입니다. (세미콜론 ;)
2. 특이하게도 대소문자를 구별하지 않습니다.
3. 문자열은 따옴표로 감쌉니다.
2번을 제외하고는 다른 언어들과 비슷합니다.
ms에 로그인을 하여 접속을 합시다.
기본적으로 서버에 내재되어 있는 데이터베이스를 구경해봅시다.
show databases; 를 입력해줍니다.
여러가지 데이터베이스가 리스트로 소개되네요.
여기서 사용할 데이터베이스를 선택하여 봅시다.
use (선택하고자 하는 데이터베이스); 를 입력하면 됩니다.
저 같은 경우는 use world;
그러면 이렇게 database changed라고 나옵니다.
디폴트(현재) 데이터베이스가 변경된 것입니다.
저번 시간에 말한 것처럼 데이터베이스는 복수개로 존재하고
하나의 데이터베이스에는 여러개의 테이블이 존재합니다.
world 데이터베이스에 어떤 테이블이 존재하는지 살펴봅시다.
show (확인하고자 하는 테이블 명);
저 같은 경우는 show tables;
(실수로 딜리미터를 빠져먹어서 아래처럼 입력되었네요ㅎㅎ 지못미)
3개가 뜹니다.
city
country
countrylanguage
한 테이블을 선택해서 살펴봅시다.
테이블을 선택하는 방법은 아래와 같습니다.
select (열 명) from (선택하고자 하는 테이블);
모든 열의 정보를 보고 싶다면 *로 기입하면 됩니다.
아, 테이블의 이름은 상위 데이터베이스가 다르다면, 중복될 수 있습니다.
만약에 중복되는 테이블 명이라면 조금 더 명확하게 표현하기 위해 데이터베이스 명까지 함께 적어주기도 합니다.
select (열 명) from (데이터베이스 명).(선택하고자 하는 테이블);
저 같은 경우는
select * from world.city;
엄청나게 많이 나옵니다.. 행이 4079까지 있네요.
너무 많습니다.
조건을 걸어야겠습니다.
보시는 바와 같이 행의 수가 id를 제외하고 4가지가 있는데요,
저는 여기서 countrycode행이 kor인 행만 추출하겠습니다.
그러기 위해서는 where 조건을 삽입해주면 됩니다.
직감적으로 어떻게 사용해야 할지 감이 오시죠?
select * from city where countrycode = 'kor'
그래도 70개나 나오네용..
다른 조건을 걸어보아야겠습니다.
5개가 나오네요.
저는 여기서 조건을 하나 더 추가하겠습니다.
and 연산자를 사용해야 하는 것은 설명이 필요 없겠죠?
이번에는 선택 열에 *을 기입하지 않고 name, population 으로 기입했습니다.
해당 열의 정보만 가져오겠다는 것입니다.
3개가 나오네요.
이번에는 distinct를 배워보겠습니다.
countrycode가 kor일 때, district열에는 몇 개의 문자열이 중복된다는 것을 알 수 있습니다.
예시로 seoul, pusan, kyonggi 등등...
이렇게 중복되는 것을 모두 불러 가져오는 구문입니다.
한번 나타나면 인정!
다수 나타나든 말든 한번 이상만 나타나면 인정!
이를 district에서 살펴보려면
(열 명) 자리에 distinct district를 입력하시면 됩니다.
'데이터베이스' 카테고리의 다른 글
관계형 데이터베이스의 계층 구조 (0) | 2017.08.03 |
---|---|
MySQL 커넥션 시작, 관리 명령 (0) | 2017.08.03 |
MySQL 설치하기 + 서버 로그인 (0) | 2017.07.28 |
데이터베이스 카테고리 (0) | 2017.07.28 |