- 들어가기 전에
사람과 사람이 대화하기 위해서는 언어가 필요하다. DBMS에게 명령을 내릴 때도 특별한 명령이 필요하다. 이 명령을 SQL이라고 한다. 이번 시간엔 SQL에 대한 개념을 알아보고, 직접 데이터베이스 사용자와 데이터베이스를 생성해보도록 하겠다.
- 학습 목표
1. SQL이 무엇인지 이해한다.
2. MySQL에서 Database를 생성할 수 있다.
3. MySQL에서 Database를 이용하는 계정을 생성하고, 권한을 부여할 수 있다.
4. 생성한 Database에 sample 데이터를 추가할 수 있다.
- 핵심 개념
- create database
- grant
- flush privileges
- select
- SQL(Structured Query Language)
- SQL은 데이터를 보다 쉽게 검색하고 추가, 삭제, 수정같은 조작을 할 수 있도록 고안된 컴퓨터 언어이다.
- 관계형 데이터베이스에서 데이터를 조작하고 쿼리하는 표준 수단이다.
- DML(Data Mainpulation Language) : 데이터를 조작하기 위해 사용한다.
· INSERT, UPDATE, DELETE, SELECT 등이 여기에 해당한다.
- DDL(Data Definition Language) : 데이터베이스의 스키마를 정의하거나 조작하기 위해 사용한다.
· CREATE, DROP, ALTER 등이 여기에 해당한다.
- DCL(Data Control Language) : 데이터를 제어하는 언어이다.
· 권한을 관리하고, 데이터의 보안, 무결성 등을 정의한다.
· GRANT, REVOKE 등이 여기에 해당한다.
- Database 생성하기
- 콘솔(cmd)에서 다음과 같이 명령을 실행한다. MySQL 관리자 계정인 root로 데이터베이스 관리 시스템에 접속하겠다는 것이다.
· mysql -uroot -p
- 관리자 계정으로 MySQL에 접속했다면, 다음과 같은 명령으로 데이터베이스를 생성한다.
· mysql> create database DB이름;
· ex) mysql> create database connectdb;
- Database 사용자 생성과 권한부여
- Database를 생성했다면, 해당 데이터베이스를 사용하는 계정을 생성해야 한다. 또한, 해당 계정이 데이터베이스를 이용할 수 있는 권한을 줘야한다. 아래와 같은 명령을 이용해서 사용자 생성과 권한을 줄 수 있다.
· db이름 뒤의 *는 모든 권한을 의미한다.
· @'%'는 어떤 클라이언트에서든 접근가능하다는 의미이다.
· @'localhost'는 해당 컴퓨터에서만 접근가능하다는 의미이다.
· flush privileges는 DBMS에게 적용을 하라는 의미이다.
- 생성한 Database에 접속하기
- cmd 창에서 아래와 같이 명령을 실행하여 원하는 데이터베이스에 접속할 수 있다.
· mysql -h호스트명 -uDB계정명 -p 데이터베이스 이름
· p는 password, 지금 입력하지 않아도 나중에 입력창이 뜬다 (ex. connect123!@#)
· 본인의 컴퓨터 : 127.0.0.1
- MySQL 연결끊기
- 프롬프트에서 quit 혹은 exit라고 입력한다.
· mysql> QUIT
· mysql> exit
- MySQL 버전과 현재 날짜 구하기
- mysql> SELECT VERSION(), CURRENT_DATE;
· 프롬프트(cmd)에서는 SQL을 입력한다. SQL은 세미콜론(;)으로 끝난다. SQL은 쿼리(Query)라고 읽는다. 쿼리는 DBMS에게 명령을 내릴때 사용하는 문장이다.
· SELECT는 어떤 내용을 조회할 때 사용하는 키워드이다.
· MySQL은 쿼리에 해당하는 결과를 전체 row에 출력하고, 마지막에 전체 row 수와 쿼리실행에 걸린 시간을 표시한다.
- 키워드는 대소문자를 구별하지 않는다.
- 쿼리를 이용해서 계산식의 결과도 구할 수 있다.
· mysql> SELECT SIN(PI()/4), (4+1)*5;
- 여러 문장을 한 줄에 연속으로 붙여서 실행 가능하다.
- 하나의 SQL은 여러 줄로 입력 가능하다.
- SQL을 입력하는 도중에 취소할 수 있다.
· \c 키워드 사용
- DBMS에 존재하는 데이터베이스 확인하기
- 작업하기 위한 데이터베이스를 선택하기 위해서는 어떤 데이터베이스가 존재하는 지 알아보아야 한다.
- 현재 서버에 존재하는 데이터베이스를 찾아보기 위해서 SHOW statement를 사용한다.
· mysql> show databases;
- 사용중인 데이터베이스 전환하기
- Database를 선택하기 위해, 'use' command 사용
· mysql> use mydb;
· 데이터베이스를 전환하려면, 이미 데이터베이스가 존재해야하며 현재 접속중인 계정이 해당 데이터베이스를 사용할 수 있는 권한이 있어야한다.
- 데이터를 저장하는 공간 테이블(Table)
- 마이크로소프트의 엑셀(Excel)을 실행하면 표가 나온다. 이러한 표에 각종 값을 저장할 수 있다.
- 데이터베이스도 엑셀의 표와 유사한 테이블을 가질 수 있다.
- 엑셀과 다른 점은 데이터베이스를 생성해도 테이블은 존재하지 않는다는 것이다.
- 테이블을 사용하려면 테이블을 생성하는 SQL을 사용해야 한다.
- 테이블에 값을 저장하려면 저장하기 위한 SQL을 사용해야 한다.
* MySQL은 관계형 DB. 관계형 DB는 데이터들이 테이블 형태로 저장된다.
- 테이블(table)의 구성 요소
- 테이블 : RDBMS의 기본적 저장구조. 한 개 이상의 column과 0개 이상의 row로 구성한다.
- 열(Column) : 테이블 상에서 단일 종류의 데이터를 나타낸다. 특정 데이터 타입 및 크기를 가지고 있다.
- 행(Row) : Column들의 값의 조합. 레코드라고 불린다. 기본키(PK)에 의해 구분되며, 기본키는 중복을 허용하지 않으며 없어서는 안된다.
- Field : Row와 Column의 교차점으로 Field는 데이터를 포함할 수 있고, 없을때는 Null 값을 가지고 있다.
- 현재 데이터베이스에 존재하는 테이블 목록 확인하기
- Database를 선택 후, Database의 전체 테이블 목록을 출력
· mysql> show tables;
· empty set : 데이터베이스에 어떤 테이블도 아직 생성되지 않았다는 것을 알려준다.
- SQL 연습을 위한 테이블 생성과 값의 저장
- examples.sql을 다운로드한다.
- 터미널에서 examples.sql이 있는 폴더로 이동한 후, 다음과 같은 명령을 수행하고 암호를 입력한다.
· mysql -uconnectuser -p connectdb < examples.sql
· examples.sql에는 연습을 위한 테이블 생성문과 해당 테이블에 값을 저장하는 입력문이 존재한다.
- 테이블 구조를 확인하기 위한 describe 명령
· mysql> desc 테이블명;
'Progamming > BoostCourse' 카테고리의 다른 글
DDL(create, alter, drop) (0) | 2019.01.22 |
---|---|
DML(select, insert, update, delete) (0) | 2019.01.22 |
DB와 DBMS (0) | 2019.01.22 |
JSTL(JSP Standard Tag Library) (0) | 2019.01.21 |
EL(Expression Language) (0) | 2019.01.21 |
댓글