초급의 끄적거림

[SQL] DCL/DDL/DML 명령어 & 기본 명령어 본문

DB/Oracle

[SQL] DCL/DDL/DML 명령어 & 기본 명령어

codingD 2019. 7. 19. 10:29

[SQL문]

 - Stored Query Language

 - 어떻게 작업을 수행할지가 아니라 무엇을 해야할지에 관해 정의하는 결과중심적 언어. (절차적 X - cf. 자바 : 절차적 언어)

 - 대소문자를 구분하지 않는다

 - 주석 :  --

 

[★★★★★ DCL/DDL/DML 명령어] 

 1. DCL명령어 (Data Control Language) : 제어어

  - 사용자가 별로 쓸 일 없음. 호스팅업체가 주로 사용

  - grant    : 사용자 접근 권한 부여

  - revoke   : 사용자 접근 권한 취소

  - deny     : 특정 사용자만 접근 차단

 

 2. DDL명령어 (Data Definition Language) : 정의어

  - DB 및 TABLE 에 대한 정의

  - Create :  생성

  - Drop   :  삭제

  - Alter    :  수정

 

 3. DML 명령어 (Data Manipulation Language) :  조작어

  - 레코드 작업

  - Select   : 조회 및 검색

  - insert    : 삽입

  - update  : 수정

  - delete   : 삭제

 

[명령어 사용]

1. 테이블 관련

- 테이블 생성 : create table 테이블명;
- 테이블 수정 : alter table 테이블명;
- 테이블 삭제 : drop table 테이블명;

- 테이블 명 변경 :  rename 원래테이블명 to 바꿀테이블명;
- 테이블 목록 확인 : select * from tab;   +) 행 목록 확인 : select * from 테이블명;
- 테이블 구조 확인 : desc 테이블명;

 

테이블 생성

create table t_emp(

 id             number(5) not null  -- 사번 (숫자의 5자리까지 허용)

 ,name        varchar2(25)          -- 이름

 ,salary        number(7,2)          -- 급여

 ,phone        varchar2(15)         -- 전화번호

 ,dept_name  varchar2(25)         -- 부서명

);

테이블 삭제 drop table t_emp;
테이블명 변경 rename t_emp to s_emp;
테이블 목록확인 select *from tab;
행 목록 확인 select * from s_emp;
테이블 구조 확인  desc s_emp;

 

2. 칼럼 등

- 행추가 : insert into 테이블명 values ( , , , , )
- 행목록 확인 : select * from 테이블명;

- 테이블에 칼럼명 추가 : alter table 테이블명 add(필드명 자료형);
- 칼럼 수정 : alter table 테이블명 modify(필드명 바꾸려는 자료형(사이즈));
   조건이 있는 수정 : update 테이블 set 필드=값 where 조건;
  +) 오늘 시스템 날짜 : sysdate (ex_ where sysdate;)
- 칼럼 이름 수정 (A라는 칼럼명을 B로 바꿈) : alter table 테이블명 rename column A to B;
- 칼럼 삭제 : alter table 테이블명 drop column 삭제할 칼럼;

 

행 추가  insert into s_emp values(100,'손흥민',2000,'010-222-2222','개발부');
 insert into s_emp values(101,'박지성',3000,'010-333-3333','총무부');
 insert into s_emp values(102,'김연아',4000,'010-444-4444','영업부');
행 목록 확인 select * from s_emp;
칼럼명 추가 → (hire_date date형)로 바꾸시오 
    alter table s_emp add (hire_date date); 
칼럼 수정 → phone의 varchar2(15) 를 varchar2(20)로
    alter table s_emp modify (phone varchar2(20));
칼럼 삭제 → dept_name 삭제 
    alter table s_emp drop column dept_name;

 

3. 오류 보고

  - phone은 15글자를 초과할 수 없는데
    insert into s_emp values(103,'태평양',5000,'1654981189401121444-555-5555','영업부','2019-07-18'); 초과 되게 만듦.

  오류보고 - ORA-12899: value too large for column "JAVA0514"."S_EMP"."PHONE" (actual: 28, maximum: 15) ▶ 글자수 초과 시

 

 ▶ 오류 보고 - ORA-00907: missing right parenthesis 00907. 00000 -  "missing right parenthesis"  ▶ 오른쪽 괄호 가 빠졌을 때

Comments