2019. 1. 21. 10:49ㆍSQL
* SQL명령의 종류
- DML(Data Manipulation Language) : 데이터 조작 SELECT, INSERT, UPDATE, DELETE
- DDL(Data Definition Language) : 데이터 정의 데이터베이스 객체(object)를 만들거나 삭제하는 명령어. 데이터베이스 객체: 테이블, 인덱스, 뷰 명령어: CREATE, DROP, ALTER
- DCL(Data Control Language) : 데이터베이스 제어 TRANSACTION 제어, 데이터 접근권한 제어
GRANT(권한 주기), REVOKE( 권한 뺏기)
* 스키마 - 데이터베이스 객체가 만들어지는 공간, 그릇. 하나의 스키마 안에서 이름이 중복되는 객체를 생성할수 없음. 스키마나 테이블은 네임스페이스(이름공간)로써 기능한다.
#1 테이블 작성 · 삭제 · 변경
CF) 테이블 생성
① 테이블 작성 (생성): CREATE TABLE 테이블명 (열 정의 1, 열 정의2, ...);
- 열 정의 : 열명 자료형 [DEFAULT 기본값] [ NULL | NOT NULL]
--> 생성 후 삽입
*********** 테이블생성시 키 설정을 할 수 있다.
② 테이블 삭제 : DROP TABLE 테이블명;
- 테이블 정의는 그대로 둔채 데이터 행만 삭제
DELETE FROM sample62;
- DDL로 분류되는 TRUNCATE TABLE 명령을 사용하면 삭제속도 향상
TRUNCATE TABLE 테이블명;
③ ALTER 수정, 추가 ,변경
ALTER TABLE 테이블명 변경명령;
- 열 추가, 삭제, 변경
- 제약 추가, 삭제
- 열 추가
ALTER TABLE 테이블명 ADD 열 정의;
ALTER TABLE sample62 ADD newcol INTEGER;
- NOT NULL 제약이 걸린 열을 추가할 때는 기본값을 지정해야 함!
* 열 속성 변경
ALTER TABLE 테이블명 MODIFY 열정의;
ALTER TABLE sample62 MODIFY newcol VARCHAR(20);
ex) ALTER TABLE sample62 MODIFY newcol NUMBER NOT NULL; -> NUMBER 타입변경,NULL삽입불가
-> 이미 행에 열에 NULL포함되어 있을 경우는 해당되지 않음
ex) 열 추가
* 열 이름 변경
- MySQL
ALTER TABLE 테이블명 CHANGE [기존열이름] [신규 열 정의];
- Oracle
ALTER TABLE 테이블명 RENAME COLUMN [기존열이름] TO [신규 열 정의];
- ALTER TABLE로 열 이름 변경하기
ALTER TABLE sample62 RENAME COLUMN newcol TO c;
* 열 삭제
ALTER TABLE 테이블명 DROP 열명;
ALTER TABLE sample62 DROP c;
* ALTER TABLE로 테이블 관리시 주의사항
- 문자열에서 최대길이 연장
VARCHAR(4) → VARCHAR(10) 문제없음.
VARCHAR(10) → VARCHAR(4) 문제발생여지 있음.
- 열 추가 후 변경한 테이블에 행을 추가하는 INSERT 명령은
확인하는걸 권장함.
INSERT INTO 테이블명 VALUES (1,2,3,4,5);
→ 열이 추가되면 수행안될가능성 존재!
INSERT INTO 테이블명 (a,b,c,d,e) VALUES (1,2,3,4,5);
→ 추가된 열이 NOT NULL 제약이 걸리면 수행안될가능성 존재!
'SQL' 카테고리의 다른 글
2019.02.26 SQL구문 예제(2) (0) | 2019.02.26 |
---|---|
2019.02.26 SQL구문 예제-SELECT(1) (0) | 2019.02.26 |
2019.01.17 서브쿼리,IN (0) | 2019.01.17 |
2019.01.17 데이터 갱신(UPDATE),집계함수,그룹화(GROUP BY) (0) | 2019.01.17 |
2019.01.16 SQL 연습문제#1 (0) | 2019.01.16 |