* 이번 시간에는 스키마를 정의하고 테이블을 만들고, 데이터를 삽입하여 조회하는 시간을 가져 보도록 하겠다.
스키마 정의하기
* 간단하게 직원들을 관리하는 테이블을 만들어봅시다. 이름은 EMP로 하겠습니다.
자 이렇게 한번 만들어 보자.
편의성을 위해 각 칼럼을 영어로 지정하겠다.
사원코드, 사원이름, 나이, 성별, 전화번호, 연봉을 (EMP_NO, ENAME, EAGE, EGEN, ECALL, ESAL) 순으로 정의한다.
SQL> CREATE TABLE EMP
2 (
3 EMP_NO VARCHAR2(5) NOT NULL,
4 ENAME VARCHAR2(12),
5 EAGE NUMBER(3),
6 EGEN VARCHAR2(1),
7 ECALL VARCHAR2(15),
8 ESAL NUMBER(5)
9 );
다음과 같이 코드를 입력하면 테이블이 생성된 것을 볼 수 있다.
기본 형식 : CREATE TABLE [테이블 이름]
칼럼 정의 : 칼럼명 [자료형]
자료형은 VARCHAR2 와 NUMBER 가 있는데 각각 문자열과 정수 데이터 타입이다. ( ) 안에 숫자는 저장 범위이다.
테이블을 만들었으니 기본 키를 선언하자.
기본키 생성(Primary Key)
기본 키는 다음과 같이 선언할 수 있다.
ALTER TABLE [테이블명] ADD CONSTRAINT [PK명] PRIMARY KEY ([컬럼명,컬럼명...])
그럼 위 명령어로 기본키를 생성해보자.
SQL> ALTER TABLE EMP
2 ADD CONSTRAINT PK_EMP
3 PRIMARY KEY (EMP_NO)
4 ;
이와 같이 EMP_NO(사원번호)를 기본키로 설정하였다. 기본키는 테이블의 유일한 식별자로 반드시 존재해야 한다.
데이터 삽입(INSERT)
자, 이제 껍데기인 테이블을 만들었다. 그럼 간단하게 데이터를 넣어보자.
데이터 삽입은 다음과 같이 할 수 있다.
INSERT INTO [테이블명] (열1, 열 2, 열 3...)VALUE (값1, 값 2, 값 3...)
먼저 정석적인 예를 보여주기 위해 이순신의 값을 넣었다.
INSERT INTO EMP (EMP_NO, ENAME, EAGE, EGEN, ECALL, ESAL)
2 VALUES ('M0001', '이순신', 27, 'M', '010-1234-5678', 2800)
3 ;
한 줄로 코드를 적을 수 있지만 가독성을 위해 키워드마다 띄우는 게 좋으니 습관을 들여보자.
정수 타입은 정수형으로 입력하고, 문자열은 ' '(작은따옴표)를 사용해야 한다.
다음은 데이터를 삽입하는 다른 예시이다.
INSERT INTO [테이블명] VALUE (값 1, 값 2, 값 3...)
테이블에 칼럼을 정의했던 순서대로 값을 넣어주면 된다.
SQL> INSERT INTO EMP
2 VALUES ('M0002', '선덕여왕', 35, 'W', '010-0123-4567', 3200)
3 ;
이제 나머지 데이터를 넣어보겠다.
필자는 두 번째 방법으로 나머지 데이터를 삽입했다.
INSERT INTO EMP VALUES ('M0003', '신사임당', 42, 'W', '010-5678-1234', 4500);
INSERT INTO EMP VALUES ('MOOO4', '강감찬', 47, 'M', '010-4567-0123' ,5600);
INSERT INTO EMP VALUES ('M0005', '왕건', 51, 'M', '010-9876-5435', 6800);
자 이제 모든 데이터를 간단하게 삽입하는 절차를 살펴보았다. WHERE 절을 활용해서 조건을 주고 삽입하는 경우도
있지만 일단 기본적인 INSERT 문을 다뤄보았다.
데이터 조회(SELECT)
지금까지 테이블을 CREATE 하고 데이터를 INSERT까지 해보았다. 이제 데이터들을 조회해보자
SELECT [칼럼명 1, 칼럼명 2...] FROM [테이블명] (튜플 변수)
SQL> SELECT *
2 FROM EMP T1
3 ;
* 은 테이블의 모든 칼럼을 조회하는 것이다. T1은 필자가 테이블의 튜플 변수로 지정한 것이다.
지정을 안 할 시에는 암묵적으로 생성된다. 그럴 시에는 그냥 칼럼명만 조회해도 무방하다.
전체를 조회했더니 데이터베이스를 cmd 상으로 하니 GUI가 형편없다. 개발 툴을 따로 설치해서 명령어를 입력하면
좀 이쁘게 볼 수 있다. 필자는 여기서 특정 칼럼인 사번, 이름, 연봉만 출력해보겠다.
SELECT T1.EMP_NO, T1.ENAME, T1.ESAL
2 FROM EMP T1
3 ;
깔끔하게 출력되는 것을 볼 수 있다. 귀찮게 왜 튜플 변수를 쓰냐고 물을 수 있다.
간단하게 하나의 테이블을 조회할 때는 상관없지만 조금 숙련되고 나면 여러 개의 테이블을 join 하고
조회해야 할 때 진짜 큰 도움이 된다. 따라서 독자 여러분들도 튜플 변수를 사용하는 습관을 가지도록 권장한다.
마무리
테이블을 CREATE 하고 데이터를 INSERT 하고 SELECT 하는 것 까지 다뤄보았다.
난이도도 쉽고 제일 기본적인 거지만 기초부터 탄탄해야 한다.
SQL 문법은 쉽지만 데이터를 조회하는 방법에서 실력 차이가 난다. 항상 겸손하게 공부할 필요가 있다.
필자는 기초부터 탄탄히 공부해 나가 SQL 튜닝 마스터가 될 것이다.
'SQL' 카테고리의 다른 글
Oracle SQL - Index Range Scan (0) | 2022.01.22 |
---|---|
Oracle SQL - Index Unique Scan (0) | 2022.01.20 |
Oracle SQL - DECODE 함수 (0) | 2022.01.18 |
[SQL] Oracle Database 2 사용자 권한 부여하기 (0) | 2022.01.10 |
[SQL] Oracle Database 1 (0) | 2021.12.23 |