데이터베이스로부터 데이터에 접근하고 데이터를 조작할 수 있도록 정의된 쿼리
기본 syntax
DDL : 데이터베이스 스키마를 정의하는 표기법
CREATE DATABASE 데이터베이스이름;
디폴트 스키마로 설정하기
USE 데이터베이스명;
데이터베이스 목록 보기
SHOW DATABASE;
relation 생성
CREATE TABLE 테이블명(
속성1 타입,
속성2 타입,
...
);
데이터베이스 삭제
DROP DATABASE 데이터베이스명;
테이블 삭제
DROP TABLE 테이블명;
속성 추가하기
ALTER TABLE 테이블명
ADD COLUMN 속성명 테이터타입;
속성 삭제하기
ALTER TABLE 테이블명
DROP COLUMN 속성명;
속성명 변경하기
ALTER TABLE 테이블명
CHANGE COLUMN 원래속성명 바꿀속성명 데이터타입;
속성 수정하기
ALTER TABLE 테이블명
MODIFY COLUMN 속성명 바꿀데이터타입;
relation 자체 말고 안의 데이터만 지우기
TRUNCATE TABLE 테이블명;
NOT NULL 제약조건
CREATE TABLE Employee(
속성1 타입 NOT NULL,
...
);
ALTER TABLE 테이블명
MODIFY COLUMN 속성1 타입 NOT NULL;
PRIMARY KEY 제약조건
CREATE TABLE Employee(
속성1 타입 NOT NULL,
CONSTRAINT 키명 PRIMARY KEY (속성1)
);
PRIMARY KEY 삭제하기
ALTER TABLE 테이블명
DROP PRIMARY KEY;
PRIMARY KEY생성하기
ALTER TABLE 테이블명
ADD CONSTRAINT 키명 PRIMARY KEY (속성명);
FOREIGN KEY 제약조건
CREATE TABLE Employee(
속성1 타입 NOT NULL,
CONSTRAINT 키명
FOREIGN KEY(속성1) REFERENCES 참조할테이블명(속성1)
);
FOREIGN KEY 삭제하기
ALTER TABLE 테이블명
DROP FOREIGN KEY 키명;
FOREIGN KEY 추가하기
ALTER TABLE 테이블명
ADD CONSTRAINT 키명 FOREIGN KEY (속성1) REFERENCES 참조할테이블명(속성);
UNIQUE 제약조건
CHECK 제약조건
DEFAULT 제약조건
DML
INSERT INTO 테이블명
VALUES (value1, value2 ...),
(...);
-> 넣고싶은 속성이 몇개만 있는 경우, 속성 지정 가능
INSERT INTO 테이블명(속성2, 속성5)
VALUES(1, '기획'),
(2, '개발');
UPDATE 테이블명
SET title='기획', salary=35
WHERE empno = 15;
empno가 15인 튜플의 title, salary 속성의 데이터 값 변경
DELETE FROM employee WHERE empno=15;
SELECT * FROM 테이블명;
SELECT DISTINCT title - 중복없이 출력
FROM employee;
SELECT *
FROM employee
WHERE NOT title='사장'; == WHERE title<>'사장';
WHERE salary >=30 AND salary <= 45;
= WHERE salary BETWEEN 30 AND 45;
WHERE empname LIKE '이%';
WHERE dno IN (1,3,7); -- 1과 3과 7을 가지는 튜플 전부 출력
SELECT와 HAVING절에만 쓰일 수 있다.
SELECT AVG(salary) AS avgsalary, MAX(SALARY) AS maxsalary
FROM employee;
SELECT COUNT(*)
FROM employee;