< 수강분량 : SQL CH.1 ~ 3 >
여러 사람이 공유하여 사용할 목적으로 체계화해 통합, 관리하는 데이터의 집합체
사용자와 데이터베이스 사이에서 사용자의 요구에 따라 정보를 생성해주고 데이터베이스를 관리해주는 소프트웨어
서로간에 관계가 있는 데이터 테이블들을 모아둔 데이터 저장공간
데이터베이스에서 데이터를 정의, 조작, 제어하기 위해 사용하는 언어
데이터 정의 언어 (DDL: Data Definition Language)
CREATE, ALTER, DROP 등의 명령어
데이터 조작 언어 (DML: Data Manipulation Language)
INSERT, UPDATE, DELETE, SELECT 등의 명령어
데이터 제어 언어 (DCL: Data Control Language)
GRANT, REVOKE, COMMIT, ROLLBACK 등의 명령어
mysql -u root -p
show databases;
# testdb 라는 이름의 데이터베이스 생성 및 확인
CREATE DATABASE testdb;
USE testdb;
DROP DATABASE testdb;
사용자 정보는 mysql 에서 관리하므로 일단 mysql 데이터베이스로 이동후 조회
use mysql;
SELECT host, user FROM user;
# 현재 PC 에서만 접속 가능한 사용자를 비밀번호와 함께 생성
CREATE USER 'username'@'localhost' identified by 'password';
# 현재 PC 에서 접속 가능한 사용자를 비밀번호와 함께 생성 (noma, 1234)
CREATE USER 'noma'@'localhost' identified by '1234';
# 외부에서 접속 가능한 사용자를 비밀번호와 함께 생성
CREATE USER 'username'@'%' identified by 'password';
# 외부에서 접속 가능한 사용자를 비밀번호와 함께 생성 (noma, 1234)
CREATE USER 'noma'@'%' identified by '1234';
# 접근 범위에 따라 같은 이름의 사용자여도 별도로 삭제
DROP USER 'username'@'localhost';
DROP USER 'username'@'%';
DROP USER 'noma'@'localhost';
DROP USER 'noma'@'%';
# 권한 관리를 실습하기 위한 Database (testdb) 생성
CREATE DATABASE testdb;
# 권한 관리를 실습하기 위한 사용자 (id : noma@localhost, password : 1234) 생성
use mysql;
CREATE USER 'noma'@'localhost' identified by '1234';
# 사용자에게 부여된 모든 권한 목록을 확인
SHOW GRANTS FOR 'username'@'localhost';
SHOW GRANTS FOR 'noma'@'localhost';
# 사용자에게 특정 데이터베이스의 모든 권한 부여
GRANT ALL ON dbname.* to 'username'@'localhost';
GRANT ALL ON testdb.* to 'noma'@'localhost';
# 참고 - 수정내용이 적용이 되지 앟은 경우 새로 고침
FLUSH PRIVILEGES;
# 사용자에게 특정 데이터베이스의 모든 권한을 삭제
REVOKE ALL ON dbname.* from 'username'@'localhost';
REVOKE ALL ON testdb.* from 'noma'@'localhost';
# zerobase 라는 이름의 데이터베이스 생성
CREATE DATABASE zerobase DEFAULT CHARACTER SET utf8mb4;
CREATE TABLE tablename
(
columnname datatype,
columnname datatype,
...
)
# id(int)와 name(varchar(16)) 칼럼을 가지는 mytable 이라는 이름의 테이블 생성
CREATE TABLE mytable(id int, name varchar(16));
SHOW TABLES;
DESC tablename;
# mytable 테이블 정보 확인
DESC mytable;
ALTER TABLE tablename
RENAME new_tablename;
# mytable 이름을 person 으로 변경
ALTER TABLE mytable RENAME person;
ALTER TABLE tablename
ADD COLUMN columnname datatype;
# person 테이블에 agee(double) 컬럼 추가
ALTER TABLE person ADD COLUMN agee double;
ALTER TABLE tablename
MODIFY COLUMN columnname datatype;
# person 테이블의 agee 컬럼의 데이터 타입을 int 로 변경
ALTER TABLE person
MODIFY COLUMN agee int;
ALTER TABLE tablename
CHANGE COLUMN old_columnname new_columnname new_datatype;
# person 테이블의 agee 컬럼의 데이터 타입을 int 로 변경
ALTER TABLE person
CHANGE COLUMN agee age int;
ALTER TABLE tablename
DROP COLUMN columnname;
# person 테이블의 age 컬럼을 삭제
ALTER TABLE person
DROP COLUMN age;
DROP TABLE tablename;
# person 테이블 삭제
DROP TABLE person;
"이 글은 제로베이스 데이터 취업 스쿨의 강의 자료 일부를 발췌하여 작성되었습니다."