2019. 3. 4. 00:50ㆍDataBase
SQL(Structured Query Language)
SQL은 데이터를 보다 쉽게 검색/추가/삭제/수정 같은 조작을 할 수 있도록 고안된 컴퓨터 언어입니다.
관계형 데이터베이스(RDBMS)에서 데이터를 조작하고 query하는 표준 수단입니다.
SQL은 Query라고 읽고, 이 Query는 DBMS에 명령하는 문장이라고 생각하면 좋습니다.
SQL 명령어 종류
1) DML(Data Maniplation Language) : 데이터 조작어
데이터를 조작하기 위해서 사용합니다. [ INSERT / UPDATE / DELETE / SELECT 등이 있습니다 ]
2) DDL(Data Definition Language) : 데이터 정의어
DB의 스키마를 정의하거나 조작하기위해 사용합니다. [ CREATE / DROP / ALTER 등이 있습니다 ]
3) DCL (Data Control Language) : 데이터 제어어
데이터를 제어하는 언어입니다. 권한을 주거나 파기하거나 데이터의 보안, 무결성 등을 정의합니다. [ GRANT / REVOKE 등이 있습니다 ]
MySQL접속
mysql/bin/ 에서
mysql -u root -p
다음과 같이 입력하면 관리자 계정인 root로 DBMS에 접속하겠다는 것입니다.
DB 생성(DDL - CREATE)
mysql> create database DB이름;
DB 사용자 권한 주기 (DCL - GRANT)
DB를 생성 후, 해당 DB를 사용하는 계정을 만들어야 합니다.
또, 해당 계정이 DB을 이용하도록 권한을 줘야겠죠
GRANT명령어를 통해 사용자 생성과 권한을 부여할 수 있습니다!
계정이름 뒤에
- @'%' 는 어떤 클라이언트에서든 접근 가능하다는 의미고
- @'localhost'는 해당 컴퓨터에서만 접근 가능하다는 의미입니다.
mysql> GRANT 권한 on DB이름.테이블 to 계정이름@'%' identified by '암호'
예시) 사용자 계정이름은 root/ 암호는 123456 / 사용자가 사용하는 DB는 firstDB로 계정을 생성
mysql> GRANT all priviliges on firstDB.* to root@'localhost' identified by '123456';
flush privileges는 DBMS에 적용을 하라는 의미입니다.(반드시 해줘야 합니다.)
mysql> flush privileges
MySQL 연결 끊기
mysql> quit
mysql> exit
MySQL 버전과 현재 날짜 구하기
mysql> select version(), current_date; +-----------+--------------+ | version() | current_date | +-----------+--------------+ | 5.7.20 | 2019-03-03 | +-----------+--------------+ 1 row in set (0.01 sec)
// MySQL은 Query의 결과의 전체 row를 출력하고 마지막에 전체 row의 수와 쿼리실행의 수행시간을 알려줍니다.
Query를 이용해 계산식 결과도 구할 수 있습니다
mysql> select sin(pi()/4),(4*3)+1; +--------------------+---------+ | sin(pi()/4) | (4*3)+1 | +--------------------+---------+ | 0.7071067811865476 | 13 | +--------------------+---------+ 1 row in set (0.00 sec)
여러 문장을 한 줄 연속으로 붙여서 실행할 수도 있습니다.
mysql> SELECT VERSION();SELECT NOW(); +-----------+ | VERSION() | +-----------+ | 5.7.20 | +-----------+ 1 row in set (0.00 sec) +---------------------+ | NOW() | +---------------------+ | 2019-03-03 18:27:07 | +---------------------+ 1 row in set (0.00 sec)
DBMS에 존재하는 DB 확인하기
mysql> show databases;
사용중인 DB 전환하기
use DB이름;
mysql> use myDB;
Table
DB의 table들 확인하기
mysql> show tables;
Table 구조를 확인하기
mysql> desc products; +----------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +----------+-------------+------+-----+---------+-------+ | id | int(11) | NO | PRI | NULL | | | category | char(3) | NO | | NULL | | | name | varchar(20) | NO | | NULL | | | quantity | int(11) | NO | | NULL | | | price | float | NO | | NULL | | +----------+-------------+------+-----+---------+-------+ 5 rows in set (0.01 sec)
'DataBase' 카테고리의 다른 글
[MySQL]DDL (0) | 2019.03.05 |
---|---|
[MySQL] DML (0) | 2019.03.04 |
[MySQL] DB vs DBMS (0) | 2019.03.02 |