세팅
MYSQL 설치 > MYSQL command line client 실행 > root password 입력
MYSQL Workbench 실행 > Local instance > root password 입력 > show database; 입력 후 노란색 번개 표시를 선택해 쿼리 실행
database 란?
여러 사람이 공유해 사용할 목적으로 체계화해 통합, 관리하는 데이터의 집합체
DBMS(Database management system)
사용자와 데이터베이스 사이에서 사용자의 요구에 따라 정보를 생성하고 DB를 관리하는 소프트웨어
관계형 데이터베이스(RDB : Relational database)
서로 간 관계가 있는 데이터 테이블을 모아둔 데이터 저장 공간
SQL
데이터베이스에서 데이터를 정의, 조작, 제어하기 위해 사용하는 언어 (SQL은 데이터베이스 관리 시스템(DBMS)에서 사용되고 있는 언어)
* 데이터 정의 언어(DDL : DATA DEFINITION LANGAUAGE) - CREATE, ALTER, DROP
* 데이터 조작 언어(DML : DATA MANIPLATION LANGUAGE) - INSERT, UPDATE, DELETE, SELECT
* 데이터 제어 언어(DCL : DATA CONTROL LANGUAGE) - GRANT, REVOKE, COMMIT, ROLLBACK
DB 관리
1. root 계정으로 mysql 접속
% mysql -u root -p
Enter password :
2. 현재 데이터베이스 목록 확인
SHOW DATABASES;
3. 데이터베이스 이름을 지정하여 생성
CREATE DATABASE dbname;
4. 해당 데이터베이스로 이동(사용)
USE dbname;
5. 데이터베이스 삭제
DROP DATABASE dbname;
USER 관리
use mysql;
SELECT host, user FROM user;
CREATE USER 'username'@'localhost' identified by 'password';
CREATE USER 'username'@'%' identified by 'password';
DROP USER 'username'@'localhost'
DROP USER 'username'@'%'
#어떤 권한이 있는지 확인
show grants for 'zero'@'%'
#zero 호스트에게 zerobase에서 모든 걸 할 수 있는 권한 부여
grant all on zerobase.* to 'zero'@'%';
#권한 삭제
revoke all on zerobase.* to 'zero'@'%';
TABLE
데이터 베이스 안에서 실재 데이터가 저장되는 형태로 행과 열로 구성된 데이터 모음
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;
변경
문법ALTER TABLE tablename RENAME new_tablename;
열 추가
문법ALTER TABLE tablename ADD COLUMN columnname datatype;
열 변경
문법테이블의 컬럼의 테이터 타임을 변경
ALTER TABLE tablename MOTIFY COLUMN columnname datatype;
테이블의 컬럼 이름을 다음으로 변경
ALTER TABLE tablename CHANGE COLUMN old_columnname new_columnname new_datatype;
열 삭제
문법ALTER TABLE tablename DROP COLUMN columnname;
TABLE 삭제
문법DROP TABLE tablename;
추가
#환경 만들기
USE zerobase; #zerobase 사용(이동)
CREATE TABLE person #테이블 생성
(
id int,
name varchar(16),
age int,
sex CHAR
);
DESC person; #데이터 확인
INSERT INTO tablename (column1, column2, ...)
VALUES (value1, value2, ...);
INSERT INTO tablename
VALUES (value1, value2, ...);
조회
SELECT column1, column2, ... FROM tablename;
SELECT * FROM tablename;
SELECT column1, column2, ... FROM tablename WHERE condition;
수정
UPDATE tablename
SET column1 = value1, column2 = value2, ...
WHERE condition;
예)
UPDATE person SET age = 23 WHERE name='이효리';
삭제
DELETE FROM tablename
WHERE condition;
정렬
SELECT column1, column2, ...
FROM tablename
ORDER BY column1, column2 .. ASC | DESC;
비교 연산자
예)
SELECT name, age FROM celeb WHERE age = 29 ORDER BY age;
SELECT name, age FROM celeb WHERE age < 29 ORDER BY age;