SQL
[MySQL] SQL 정리
yujeong kang
2020. 8. 20. 15:06
- SQL 분류
DML | 데이터 조작어 : 레코드를 CRUD |
INSERT | 데이터베이스 객체에 데이터 입력 |
UPDATE | 데이터베이스 객체에 데이터 수정 | ||
DELETE | 데이터베이스 객체에 데이터 삭제 | ||
SELECT | 데이터베이스 객체에 데이터 조회 | ||
DDL | 데이터 정의어 : 객체 구조를 정의 |
CREATE | 데이터베이스 객체를 생성 |
ALTER | 데이터베이스 객체를 수정 | ||
DROP | 데이터베이스 객체를 삭제 | ||
RENAME | |||
TCL | 트랜잭션 제어어 | COMMIT | 실행한 query를 최종적으로 적용 |
ROLLBACK | 실행한 query를 마지막 commit 전으로 취소시켜 데이터를 복구 | ||
DCL | 데이터 제어어 | GRANT | 데이터베이스 객체에 권한을 부여 |
REVOKE | 데이터베이스 객체 권한 취소 |
1. CREATE
-- 컬럼 레벨 제약조건 설정
CREATE TABLE groupcode (
gcode char(3) PRIMARY KEY,
gname varchar(20) NOT null
);
-- 테이블 레벨 제약조건 설정 (NOT NULL은 컬럼 러벨 설정만 가능)
CREATE TABLE groupcode (
gcode char(3),
gname varchar(20) NOT null,
PRIMARY key(gcode)
);
-- 컬럼레벨을 이용한 제약조건 설정
CREATE TABLE product (
code char(3) PRIMARY KEY,
pname varchar(20) NOT NULL UNIQUE,
cost int CHECK(cost > 0),
pnum int,
jnum int default(0),
sale int,
gcode char(3) NOT NULL REFERENCES groupcode(gcode)
);
-- 테이블 레벨 제약조건 설정
CREATE TABLE product (
code char(3),
pname varchar(20) NOT NULL,
cost int,
pnum int,
jnum int DEFAULT 0,
sale int,
gcode char(3) NOT NULL,
PRIMARY KEY(code),
UNIQUE(pname),
CHECK(cost > 0),
FOREIGN KEY(gcode) REFERENCES groupcode(gcode)
);
2. INSERT
INSERT INTO STUDENT (num, name, phone )
VALUES (1, '김땡땡', '010-1234-5678');
3. SELECT
SELECT * FROM STUDENT ;
SELECT NAME, NAME FROM STUDENT ;
SELECT * FROM STUDENT WHERE num=1;
4. UPDATE
UPDATE STUDENT
SET NAME= '이땡땡'
WHERE NUM = 1;
4. DELETE
DELETE FROM STUDENT WHERE name='이땡땡';
5. ALTER
ALTER TABLE STUDENT MODIFY COLUMN num int PRIMARY KEY;
ALTER TABLE STUDENT ADD COLUMN age int;
6. DROP
DROP TABLE STUDENT ;
6. auto_increment - 컬럼 값이 자동 증가됨
CREATE TABLE STUDENT (
num int not null auto_increment,
name varchar(50),
age int,
gender char(1),
phone varchar(11),
PRIMARY KEY (num)
);
7. count, sum
SELECT COUNT(*) FROM STUDENT;
SELECT COUNT(*) FROM STUDENT WHERE GENDER='F';
SELECT SUM(AGE) FROM STUDENT;