'데이터베이스' 카테고리의 글 목록 :: A4용지

오늘은 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를 입력하시면 됩니다.


관계형 데이터베이스에는 정보가 수평적인 구조로 존재하는 것이 아닌 각 계층에 분산되어 존재합니다.


가장 최상위 계층은 인스턴스(Instance)입니다.

그 하위 계층은 데이터베이스(Database)입니다.

그 하위 계층은 스키마(schema)입니다.

그 하위 계층이 바로 테이블(Table)입니다.


명확한 계층구조입니다.

그러나 실제로 계층구조는 헷갈리기 쉽다고 합니다.


왜일까요?

각 DBMS마다 계층구조가 조금씩 다르다고 합니다...[각주:1]


1. 4계층 정석파 Ex. PostgreSQL, SQL Sever

이 DBMS들은 4계층 구조를 그대로 차용하였습니다.


2. 3계층 이단파 EX. Oracle, MySQL

이들은 3계층 구조를 사용합니다.

데이터베이스와 스키마 간의 경계선이 없으며 거의 하나로 묶여서 사용됩니다.


어느 쪽이 맞느냐는 말은 하지 못할 것 같습니다.

모두 각자 자기들대로 잘 구성되어 있기 때문입니다.

그러나 저기 사용했다가 여기 사용하는 사용자들은 조금 혼동스러울 것 같네요


  1. 하 이런거 너무 싫어 [본문으로]

'데이터베이스' 카테고리의 다른 글

MySQL SELECT문 기본  (0) 2017.08.15
MySQL 커넥션 시작, 관리 명령  (0) 2017.08.03
MySQL 설치하기 + 서버 로그인  (0) 2017.07.28
데이터베이스 카테고리  (0) 2017.07.28

MySQL 커넥션을 시작해봅시다.

커넥션이라고 함은, MySQL 서버와 사용자 간에 연결이 되어 있다는 말입니다.

그 연결이 시작되는 시점이 세션의 시작이고

커넥션이 끝나는 시점이 세션의 끝입니다.

거의 커넥션=세션 이라고 보시면 될 것 같습니다.


로그인을 하여 커넥션을 시작해봅시다.

커넥션을 끊는 방법은 프롬프트 상에서 quit 이라고 써넣으시면 됩니다.


이제는 커넥션의 상태를 조사해볼 수 있는 명령어를 넣어 볼 텐데요,

이 명령어들은 show status 로 시작합니다.


1. MySQL 서버에 연결된 커넥션의 수 조사

프롬프트에 show status like 'Threads_connected'; 라고 쳐봅시다.

사용자 1명만 로그인 하였다면 아래와 같이 value 값이 1로 나타날 것입니다.

여기서 한명이 더 로그인 한다면 2로 나타날 것입니다.

2. MySQL이 가동된 시점부터의 경과시간 

show status like 'Uptime'; 이라고 쳐봅시다.

그럼 값이 나오는데요,

value 값을 보니 로그인 경과 시간은 아닌 것 같고, 서버의 가동 시간인 것 같습니다.

초단위 입니다.


3. MySQL이 실행한 SQL문의 수

show status like 'Queries';라고 쳐봅시다.


위 명령어들을 모두 관리 명령이라고 합니다.

여러가지가 있는데 대부분 자주 쓰이진 않고 위 3개가 필수적으로 알아두면 좋을 것 같습니다.


관리 명령은 DBMS가 정상적으로 작동하는지 감시하여 이상이 생겼을 경우 정보 수집을 하는 등의 용도로 사용됩니다.


관리 명령에서 알아둘 점은 두 가지가 있습니다.

1. DBMS에는 SQL 문 이외에 관리 명령어가 있습니다.

그럼 어떻게 이 둘을 구분할까요?

SQL은 대부분 SELECT, INSERT, DELETE, UPDATE 중 하나의 단어로 시작합니다.

그 외에는 대부분 관리 명령입니다.


2. 관리 명령의 종류와 문법은 DBMS마다 다릅니다.

그러므로 MySQL이 아닌 Oracle이나 SQL Sever 등에서 똑같이 쓰면 에러가 날 것입니다.





'데이터베이스' 카테고리의 다른 글

MySQL SELECT문 기본  (0) 2017.08.15
관계형 데이터베이스의 계층 구조  (0) 2017.08.03
MySQL 설치하기 + 서버 로그인  (0) 2017.07.28
데이터베이스 카테고리  (0) 2017.07.28


데이터 베이스 공부를 시작하기에 앞서 MySQL 설치를 해봅시다.


우선 홈페이지를 접속합니다.

https://dev.mysql.com/


다운로드 카테고리 -> 윈도우즈 -> MySQL Installer 



download 클릭!! 



아이디 있으신 분은 로그인 하시고 저는 없으니 패스합니다



겁나 오래 걸려..




짜잔!! 이제 폭풍 next 누를 차례!!




developer default를 눌러주고



root 비밀번호를 설정합니다! 

이 비밀번호는 차후 mysql 서버조작에 사용되므로 잊으시면 안됩니다.



이것까지 모두 마치면 설치완료


아래는 mysql서버를 실행하는 방법입니다.


상태바에서 돌고래를 우클릭 -> running -> start


그리고 mysql 서버로 로그인 할 차례인데요,

시작메뉴에서 MySQL Command Line Client 를 선택하시면 서버에 접속하실 수 있습니다.


root 비밀번호를 입력



위와 같이 나오면 로그인을 완료한 것입니다.


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


질문이나 조언 그 어떤 댓글이든 모두 환영합니다!!


확인도 알림 뜨면 바로 하고 댓글 달아 드릴 수 있어요


'데이터베이스' 카테고리의 다른 글

MySQL SELECT문 기본  (0) 2017.08.15
관계형 데이터베이스의 계층 구조  (0) 2017.08.03
MySQL 커넥션 시작, 관리 명령  (0) 2017.08.03
데이터베이스 카테고리  (0) 2017.07.28

이것도 똑같다

공부하고 정리하고 공유하고.


나는 주로 도서 + 구글링으로 공부하는데

도서를 기반으로 추가적인 궁금증을 해결하는데 구글링을 사용한다

그러므로 도서가 우선되어야 하는데


지금 읽고 있는 책이 참.. 서론이 길다.

이제 곧 시작할 것 같다 뭐

'데이터베이스' 카테고리의 다른 글

MySQL SELECT문 기본  (0) 2017.08.15
관계형 데이터베이스의 계층 구조  (0) 2017.08.03
MySQL 커넥션 시작, 관리 명령  (0) 2017.08.03
MySQL 설치하기 + 서버 로그인  (0) 2017.07.28

+ Recent posts