: 관계형 데이터베이스에 정보를 저장하고 처리하기 위한 프로그래밍 언어
: 데이터 정의 언어
CREATE DATABASE 데이터베이스명;
CREATE TABLE 테이블명
{
컬럼명 컬럼속성
}
DROP DATABASE 데이터베이스명;
DROP TABLE 테이블명;
ALTER DATABASE 데이터베이스명 변경조건;
ALTER TABLE 테이블명 ADD 변경조건; // 테이블에 컬럼을 추가
ALTER TABLE 테이블명 DROP 변경조건; // 테이블에서 컬럼을 삭제
ALTER TABLE 테이블명 MODIFY 변경조건; // 테이블의 컬럼을 수정
ALTER TABLE 테이블명 RENAME 변경조건; // 테이블의 이름을 변경
:데이터 조작 언어
SELECT 컬럼목록 FROM 테이블명 [WHERE 조건];
INSERT INTO 테이블명 (컬럼목록) VALUES (값목록);
WHERE
조건이 없다면, 모든 데이터가 삭제DELETE FROM 테이블명 [WHERE 조건];
WHERE
조건이 없다면, 모든 데이터가 수정: 데이터 조작 언어
GRANT [권한] ON 객체명 TO 사용자;
REVOKE [권한] ON 객체명 FROM 사용자;
:트랜잭션을 조작 언어.
:DCL에 해당하지만 그 중 트랜잭션을 조작하는 언어
START TRANSACTION;
...
COMMIT;
START TRANSACTION;
...
ROLLBACK;
CREATE TABLE IF NOT EXISTS courses (
id bigint(5) NOT NULL AUTO_INCREMENT,
title varchar(255) NOT NULL,
tutor varchar(255) NOT NULL,
PRIMARY KEY (id)
);
INSERT INTO courses (title, tutor) VALUES
('Spring 기초반', '최원빈'),
('Spring 숙련반', '최원빈'),
('React 기초반', '김예지'),
('React 숙련반', '김예지'),
('Node.js 기초반', '이용우'),
('Node.js 숙련반', '이용우'),
('웹개발 종합반', '이범규'),
('웹개발 종합반 플러스', '이범규');
SELECT * FROM courses;
SELECT * FROM courses WHERE tutor='최하온';
CREATE TABLE users (
id int(11) PRIMARY KEY,
name varchar(255),
age int(11),
);
INSERT INTO users (name, age) VALUES
('최하온', 29);
SELECT * FROM users;
// IF NOT EXISTS : 만약 users가 존재하지 않는다면
CREATE TABLE IF NOT EXISTS users (
id int(11) NOT NULL AUTO_INCREMENT,
name varchar(255) NOT NULL,
age int(11) NOT NULL,
PRIMARY KEY (id)
);
테이블 생성 sql에서 컬럼에 조건들을 주지 않았고 Type만 주었다.
테이블명 중복과, NOT NULL, AUTO_INCREMENT 등 추가로 넣었어야했다.