SQL

SQL은 데이터를 보다 쉽게 검색하고 추가, 삭제, 수정 같은 조작을 할 수 있도록 고안된 컴퓨터 언어이며 관계형 데이터베이스에서 데이터를 조작하고 쿼리하는 표준 수단이다.

DML(Data Manipulation Language)

  • 데이터를 조작하기 위해 사용한다.
  • INSERT, UPDATE, DELETE, SELECT

SELECT

select empno, name, job from employee order by name;

INSERT

insert into 테이블명(필드1, 필드2, 필드3, 필드4, … ) 
values ( 필드1의 값, 필드2의 값, 필드3의 값, 필드4의 값, … )
insert into ROLE (role_id, description)
values ( 200, 'CEO');

UPDATE

update  테이블명
set  필드1=필드1의값, 필드2=필드2의값, 필드3=필드3의값, …
where 조건식
update ROLE
set description = 'CTO'
where role_id = 200;

DELETE

delete
from  테이블명
where  조건식
delete
from ROLE
where role_id = 200;

DDL(Data Definition Language)

  • 데이터베이스의 스키마를 정의하거나 조작하기 위해 사용
  • CREATE, DROP, ALTER

CREATE

create table 테이블명( 
  필드명1 타입 [NULL | NOT NULL][DEFAULT ][AUTO_INCREMENT], 
  필드명2 타입 [NULL | NOT NULL][DEFAULT ][AUTO_INCREMENT], 
  필드명3 타입 [NULL | NOT NULL][DEFAULT ][AUTO_INCREMENT], 
  ........... 
  PRIMARY KEY(필드명) 
);
create table EMPLOYEE2(   
  empno      INTEGER NOT NULL PRIMARY KEY,  
  name       VARCHAR(10),   
  job        VARCHAR(9),   
  boss       INTEGER,   
  hiredate   VARCHAR(12),   
  salary     DECIMAL(7, 2),   
  comm       DECIMAL(7, 2),   
  deptno     INTEGER
);

ALTER

alter table 테이블명
add  필드명 타입 [NULL | NOT NULL][DEFAULT ][AUTO_INCREMENT];
alter table EMPLOYEE2
add birthdate varchar(12);

DROP

drop table 테이블이름;
drop table EMPLOYEE2;

DCL(Data Control Language)

  • 데이터를 제어하기 위해 사용한다.
  • 권한을 관리하고, 테이터의 보안, 무결성 등을 정의한다.
  • GRANT, REVOKE

사용자 생성 및 권한 부여

  • db이름 뒤의 * 는 모든 권한을 의미한다.
  • @’%’는 어떤 클라이언트에서든 접근 가능하다는 의미이고, @’localhost’는 해당 컴퓨터에서만 접근 가능하다는 의미다.
  • flush privileges는 DBMS에게 적용을 하라는 의미다.
grant all privileges on db이름.* to 계정이름@'%' identified by '암호’;
grant all privileges on db이름.* to 계정이름@'localhost' identified by '암호’;
flush privileges;

🙏 Reference