728x90
1. SQL의 분류
- DML(Data Manipulation Language) : 테이블의 조작하는데 사용되는 언어. → 트랜잭션 발생 O
- 데이터의 선택 : SELECT문
-
SELECT select_expr [FROM table_references] [WHERE where_condition] [GROUP BY {col_name | expr | position}] [HAVING where_condition] [ORDER BY {col_name | expr | position}]
-
- 데이터의 삽입 : INSERT문
-
INSERT [INTO] 테이블[(열1, 열2, ···)] VALUES (값1, 값2, ···) -- 테이블 이름 다음에 나오는 열은 생략 가능 -- 열의 순서를 바꿔서 입력하고 싶을 때는 열 이름을 입력할 순서에 맞춰 나열 -- 다른 테이블의 데이터를 가져와서 대량으로 입력하는 효과 INSERT INTO 테이블이름 (열 이름1, 열이름2, ···) SELECT문 ;
-
- 데이터의 수정 : UPDATE문
-
UPDATE 테이블이름 SET 열1 = 값1, 열2 = 값2 ··· WHERE 조건 ; -- WHERE절은 생략 가능하지만 생략할 시 테이블 전체의 행이 변경. -- 구매 테이블에서 현재의 단가가 모두 1.5배 인상되었을 때 USE sqldb; UPDATE buytbl SET price = price * 1.5 ;
-
- 데이터의 삭제 : DELETE문
-
-- 행 단위로 삭제 DELETE FROM 테이블이름 WHERE 조건 ;
- DML문인 DELETE는 트랜잭션 로그를 기록하는 작업 때문에 삭제가 오래 걸림.
- DDL문인 DROP은 테이블 자체를 삭제하며 트랜잭션 로그를 기록하는 작업이 없기에 삭제가 빠름.
- DDL문인 TRUNCATE문은 DELETE와 동일한 효과를 가지지만 트랜잭션 로그를 기록하지 않아서 속도 빠름.
- 대용량의 테이블 전체 내용을 삭제할 때
- 테이블 자체가 필요없을 경우에는 DROP문 이용해 삭제하는 것이 효율적.
- 테이블의 구조는 남겨놓고 싶다면 TRUNCATE문을 이용해 삭제하는 것이 효율적.
-
- 조건부 데이터 입력, 변경
-
-- 기본 키가 중복되면 데이터가 수정되도록 INSERT INTO memberTBL VALUES('BBK', '비비코', '미국') ON DUPLICATE KEY UPDATE name = '비비코', addr = '미국'; INSERT INTO memberTBL VALUES('DJM', '동짜몽', '일본') ON DUPLICATE KEY UPDATE name = '동짜몽', addr = '일본'; SELECT * FROM memberTBL -- ON DUPLICATE UPDATE는 PK가 중복되지 않으면 일반 INSERT가 되고, 중복되면 UPDATE문이 실행
-
- 데이터의 선택 : SELECT문
- DDL(Data Definition Language) : 데이터베이스 개체를 생성/삭제/변경하는 역할. → 트랜잭션 발생 X
- CREATE, DROP, ALTER
- DCL(Data Control Language) : 사용자에게 권한을 부여하거나 빼앗을 때 주로 사용하는 구문
- GRANT, REVOKE, DENY
2. 데이터의 형식
- 숫자 데이터 형식
-
데이터 형식 바이트 수 숫자 범위 설명 SMALLINT 2 -32,768 ~ 32,767 정수 INT(INTEGER) 4 약 -21억 ~ 21억 정수 BIGINT 8 약 -900경 ~ 900경 정수 FLOAT 4 -3.40E+38~-1.17E-38 소수점 아래 7자리까지 DEC(DECIMAL) 5~17 - DECIMAL 데이터 형식은 정확한 수치를 저장.
- FLOAT, DOUBLE은 근사치의 숫자를 저장.
-
- 문자 데이터 형식
-
데이터 형식 바이트 수 설명 CHAR(n) 1~255 고정길이 문자형 VARCHAR(n) 1~65535 가변길이 문자형 LONGTEXT 1~4294967295 최대 4GB 크기의 TEXT 데이터 값 LONGBLOB 1~4294967295 최대 4GB 크기의 BLOB 데이터 값 - CHAR(100)에서 'ABC' 3글자만 저장해도 100자리를 모두 확보하고 97자리는 낭비
- VARCHAR(100)에서 'ABC' 3글자만 저장하면 3자리만 사용.
- INSERT/UPDATE시에 CHAR형식이 성능이 더 좋음.
-
- 날짜와 시간 데이터 형식
-
데이터 형식 바이트 수 설명 DATE 3 'YYYY-MM-DD' DATETIME 8 'YYYY-MM-DD HH:MM:SS'
-
'SQL' 카테고리의 다른 글
SQL 용어 정리 (0) | 2021.09.01 |
---|---|
PHP와 MySQL 연동하기(1) - 회원관리시스템 (0) | 2021.09.01 |
MySQL - SQL 고급 (0) | 2021.08.23 |
MySQL - SQL 기본(1) (0) | 2021.08.20 |
MySQL(1) (0) | 2021.08.17 |