SQL
데이터베이스
데이터베이스 정의
- 데이터베이스 : 여러 사람이 공유하여 사용할 목적으로 체계화해 통합, 관리하는 데이터의 집합체
- DBMS : 사용자와 데이터베이스 사이에서 사용자의 요구에 따라 정보를 생성해주고 데이터베이스를 관리해주는 소프트웨어
- 관계형 데이터베이스(RDB) : 서로간에 관계가 있는 데이터 테이블들을 모아둔 데이터 저장공간
- SQL : 데이터베이스에서 데이터를 정의, 조작, 제어하기 위해 사용하는 언어
- DDL (데이터 정의 언어) : CREATE, ALTER, DROP
- DML (데이터 조작 언어) : INSERT, UPDATE, DELETE, SELECT
- DCL (데이터 제어 언어) : GRANT, REVOKE, COMMIT, ROLLBACK
데이터베이스 관리
- SHOW DATABASES; : 현재 데이터 베이스 목록 출력
- CREATE DATABASE testdb; : testdb 생성하기
- USE testdb : testdb 사용하기
- DROP DATABASE testdb : testdb 삭제하기
user 관리, user 권한 관리
-
user 조회
- USE mysql; SELECT host, user FROM user;
-
현재 pc에서 접속 가능한 사용자 생성, 삭제
- CREATE USER 'username'@'localhost' identified by 'password’
- DROP USER 'username’@'localhost’
-
외부 pc에서 접속 가능한 사용자 생성, 삭제
- CREATE USER 'username'@'%' identified by 'password';
- DROP USER 'username'@'%’
-
실습 위한 테스트 db 만들기
GRANT
-
user 사용 권한 부여
- SHOW GRANTS FOR ‘noma’@’localhost’;

-
사용자에게 특정 데이터 베이스의 모든 권한을 부여
- GRANT ALL ON testdb.* TO 'noma'@'localhost';
- 권한 확인 : SHOW GRANTS FOR ‘noma’@’localhost’;

-
사용자에게 모든 데이터베이스의 모든 권한을 삭제
- REVOKE ALL ON testdb.* FROM 'noma'@'localhost';

-
수정 내용이 적용되지 않을 경우 새로고침
TABLE
- TABLE
- 데이터베이스 안에서 실제 데이터가 저장되는 형태
- 행(column) + 열(row)으로 구성된 데이터 모음
- TABLE 생성
- zerobase라는 이름의 데이터베이스 생성
- CREATE DATABASE zerobase default character SET utf8mb4;
- USE zerobase
- TABLE 생성하기
create table mytable
(
id int,
name varchar(16)
);
- desc mytable : docstring 확인하기

- TABLE 변경, 삭제
- TABLE 이름 변경
- ALTER TABLE mytable(현재 테이블 이름) RENAME person(변경할 테이블 이름);
- COLUMNS 추가
- ALTER TABLE person(테이블 이름) ADD COLUMN agee(추가할 컬럼 이름) double(데이터 타입);
- columns의 데이터 타입 변경하기
- ALTER TABLE person(테이블 이름) MODIFY COLUMN agee(칼럼 이름) int(변경할 데이터 타입);
- 칼럼 이름 변경하기
- ALTER TABLE person(테이블 이름) CHANGE COLUMN agee(현재 칼럼 이름) age(변경할 칼럼 이) int;
- 칼럼 삭제하기
- ALTER TABLE person DROP column age;
INSERT
- INSERT : 데이터를 추가하는 명령어
- 칼럼과 값이 개수가 같아야 함
- INSERT INTO person (id, name, age, sex)
-> VALUES (1, '이효리', 43, 'F');
- 컬럼 순서에 맞게 값 추가 가능, 개수 같아야 함
- INSERT INTO person
-> VALUES(2, '이상순', 48, 'M');

SELECT
- SELECT : 특정 컬럼 데이터를 조회하는 명령어
- SELECT(컬럼 이름) FROM (테이블 이름);
- 모든 컬럼 조회 : SELECT * FROM (테이블 이름);
WHERE
- WHERE 조건문
- SELECT, UPDATE, DELETE에도 사용
- person 테이블의 성별이 F인 값 중 이름과 성별 컬럼만 가져오기

UPDATE
- UPDATE : 데이터를 수정하는 명령어
- UPDATE (테이블 이름) SET (칼럼 1 = 값 1)… WHERE ~ ;

DELETE
- DELETE : 데이터를 삭제하는 명령어
- DELETE FROM (테이블 이름) WHERE ~ ;

"이 글은 제로베이스 데이터 취업 스쿨의 강의 자료 일부를 발췌하여 작성되었습니다.”