SQL이란?
- DBMS에 명령을 내리는 명령을 SQL이라고 한다.
- 관계형 데이터베이스 (RDBMS)에서 데이터를 조작하고 쿼리하는 표준 수단이다.
- (Structured Query Language)
명령어 구성
- DML (Manipulation) - 데이터를 조작
- INSERT, UPDATE, DELETE, SELECT
- DDL (Definition) - DB의 스키마 정의, 조작
- DCL (Control) - 데이터를 제어, 권한관리
Database 생성하기 (MySQL5.7ver)
DBMS 접속
mysql -uroot -p
- MySQL 관리자 계정인 root로 DBMS에 접속하겠다는 뜻
-uroot
: user가 root다
-p
: password 옵션
- 그럼 이제 mysql> 프롬프트가 보인다!
Database 생성
- 관리자 계정으로 MySQL에 접속했다면, 아래 명령으로 데이터베이스를 생성한다.
mysql> create database [DB이름];
(mysql>은 프롬프트, ;
주의!)
Database 사용자 생성과 권한 주기
- 데이터베이스를 사용하는 계정을 생성하고, 테이터베이스를 이용할 수 있는 권한을 줘야 한다.
grant all privileges on [DB이름].* to [계정이름]@'%' identified by '[암호]';
[DB이름].*
: DB의 모든 권한을 의미한다.
[계정이름]@’[범위제한]’
%
: 모든 것을 의미, 모든 클라이언트(호스트)가 접근 가능하다.
grant all privileges on [DB이름].* to 계정이름@'localhost' identified by '암호';
flush privileges
- DBMS에게 적용하라는 의미. 해당 명령을 반드시 실행해줘야 적용이 된다.
계정이름 connectuser
암호 connect123!@#
생성한 Database에 접속하기
mysql -h[호스트명] -u[DB계정명] -p [DB이름]
- ex)
mysql -h127.0.0.1 -uconnectuser -p connectdb
MySQL 연결 끊기
MySQL 사용 (query예제)
여러 규칙들
- 모든 쿼리는 ; 로 끝난다
- 쿼리의 대소문자 구분 안해도 된다
- 한 줄에 여러 쿼리 ; 로 이어서 사용 가능
- ex)
select version(); select now();
- 하나의 쿼리 여러 줄에 거쳐 입력받아 쓸 수도 있다. (개행 개행)
- 입력하다 취소 -
\c
입력
MySQL 버전과 현재 날짜 조회하기
mysql> SELECT VERSION(), CURRENT_DATE;
- 맨 마지막에는 전체 row 수와 쿼리 실행에 소요된 시간을 표시
DBMS에 존재하는 데이터베이스 확인하기
mysql> show databases;
사용중인 데이터베이스 전환하기
mysql> use [DB이름];
- 이미 존재하는 DB여야하며, 접속계정이 DB접근권한이 있어야한다.
테이블 조회
mysql> show tables;
현재 데이터베이스는 테이블 만들지 않았으므로 empty set이 나옴
테이블 생성 및 값 저장
- sql파일로 쿼리 넣을 때 리다이렉션으로 넣어줄 수 있다
mysql -uconnectuser -p connectdb < examples.sql
예제
mysql> show tables;
mysql> desc [테이블명];
- describe