데이터를 입력받을 공간을 하나 만드는 것
DDL 언어 | -CREATE (데이터베이스 또는 테이블을 생성하는 문법) -ALTER (테이블,데이터베이스를 수정하는 문법) -DROP (테이블,데이터베이스를 삭제하는 문법) -TURNCATE (테이블,데이터베이스를 삭제하는 문법) (DELETE랑 비슷한데, TRUNCATE는 일괄삭제만됨, DELETE는 복원이 가능) |
📒 CREATE TABLE 테이블명(
컬럼명 자료형 [제약조건]
;)
↑ 위 로직이 문법
CREATE TABLE EMPLOYEES (
EMPLOYEE_ID NUMBER,
FIRST_NAME VARCHAR2(100),
LAST_NAME VARCHAR2(100)
;)
EM테이블을 만들거고 ID컬럼은 숫자로 받을것, VARCHAR2는 100자 제한으로 만든다.
라는 테이블 제작명령어이다.
🤷♂️ TABLE(컬럼도 거의 유사하게 동일함)생성시 주의사항
A. 테이블 이름은 영문자로 시작해야한다.
B. 테이블명은 영문자, 숫자, 특수문자($#_)만 사용할 수 있다.
C. 테이블 명은 중복이 될 수 없고 유일해야한다.
D. 테이블명은 30자를 초과할 수 없다.
E. SQL 예약어를 사용할 수 없다.
->SELECT "SELECT" 로 사용은가능하지만 절대 권장하지않음
F. 테이블명은 한글도 사용할 수 있다.
->한글로는권장하지않음
🤷♂️ DROP
DROP : 테이블을 삭제하는 문법
DROP TABLE 테이블명;
🤷♂️ TRUNCATE
TRUNCATE : 테이블 내의 데이터를 삭제하는 문법
A. WHERE절을 사용하지 못한다.
B. TRUNCATE TABLE 테이블명;
🤷♂️ ALTER
ALTER : 테이블을 수정하는 문법 / 테이블의 구조를 변경함
* 공통문법 : ALTER TABLE 테이블명 <- 불변의 진리로 그대로 따라감
테이블 이름을 수정 | RENAME TO 새로운 테이블명; |
테이블 컬럼을 추가 | ADD (새로운 컬럼명 자료형(용량)); |
테이블 컬럼명 변경 | RENAME COLUMN 기존 컬럼명 TO 새로운컬럼명; |
테이블 컬럼TYPE 수정 | MODIFY (기존컬럼명 자료형(용량)); |
테이블 컬럼명 삭제 | DROP COLUMN 기존컬럼명; |
EX )
ALTER TABLE 테이블명 RENAME TO 새로운 테이블명;
ALTER TABLE EMPLOYEES RENAME TO EMPLOTEES2;
TABLE 실습
CREATE TABLE TBL_USER(
USER_NAME VARCHAR2(100),
USER_AGE NUMBER
); 을 하게되면 TABLE이 나와야되는데 좌측에 리스트에는 바로보이지않을수있다.
그럴경우는 FOLDER -> F5를 누르면 확인할 수 있습니다.
TABLE이름 수정해보기
--테이블 이름 수정해보기
ALTER TABLE TBL_USER RENAME TO TBL_MY_USER;
SELECT * FROM HR.TBL_MY_USER;
![](https://blog.kakaocdn.net/dn/bgAW14/btsLSxYyaT0/hxWpRk7KatV1Sv64mFWrD1/img.png)
--테이블 이름 변경
ALTER TABLE TBL_USER RENAME TO TBL_MY_USER;
SELECT * FROM HR.TBL_MY_USER;
--새로운 컬럼 만들기
ALTER TABLE TBL_MY_USER ADD (USER_GRENDER CHAR(4));
--만든 컬럼 그대로 삭제하기
ALTER TABLE TBL_MY_USER DROP COLUMN USER_GRENDER;
-- 테이블 컬럼명 변경
ALTER TABLE TBL_MY_USER RENAME COLUMN USER_NAME TO USER_NICKNAME;
-- 테이블 컬럼 TYPE 수정
ALTER TABLE TBL_MY_USER MODIFY (USER_NICKNAME VARCHAR2(77));
![](https://blog.kakaocdn.net/dn/bjXEPe/btsLRQK4WmY/KuxTS4f24ZtCT0KnXMRnkk/img.png)
-- 새로운 컬럼 삽입 추가
INSERT INTO TBL_MY_USER VALUES('A',22);
INSERT INTO TBL_MY_USER VALUES('B',33);
INSERT INTO TBL_MY_USER VALUES('C',44);
SELECT * FROM TBL_MY_USER;
TRUNCATE TABLE TBL_MY_USER;
ETC) 서브 쿼리란?
결과값들이 TABLE로 넘어감: 컬럼, 데이터, 제약조건 등으 그대로 복사됨
이관,백업할 때 유용하게 쓰임! 그러나 이동할때 깨질수도있어서 소량의 DB(1만개 이하)일때 사용함
내가원하는 임시테이블에 데이터를 그대로 복사할때 서브쿼리는 유용합니다.
[실습]
# 자동차 테이블 생성해보기
- 자동차 테이블 생성
* 자동차 번호 EX) 1번 소나타, 2번 아반테 3번 산타페..
* 자동차 이름
* 자동차 브랜드
* 출시날짜
* 색상
* 가격
나는 위 테이블을 만들기 위해서 넘버를 지정해주려고 했는데 숫자, 가격만 NUMBER로 넣고
나머지는 모두 문자형이 동반되고 안쓰이면 회수될 수있는 자료형인 VARCHAR2로 만들었다.
또한 DATE는 날짜형이라서 DATE로 만들었따.
CREATE TABLE TBL_CAR(
CAR_NUMBER NUMBER(10),
CAR_NAME VARCHAR2(10),
CAR_BRAND VARCHAR2(10),
CAR_DATE DATE,
CAR_COLOR VARCHAR2(10),
CAR_PRICE NUMBER
);
여기까지했는데 TABLE형으로 나오지 않아서 당황했다 생각해보니 SELECT로
내가 볼 TABLE을 선택해주었어야 했기때문에
다시 아래 쿼리문으로 선택을 해주었다.
SELECT * FROM TBL_CAR;
![](https://blog.kakaocdn.net/dn/wXYt7/btsLRFpvZ2v/Suk3G2euCGVKOq83ickGO1/img.png)
SELECT를 했더니 이렇게 TABLE을 확인할 수 있었다.
TBL은 약간 약어같은 느낌인데 테이블 약어래요
NAVER은 N_이런식
SAMSUNG은 S_이런식으로 내부적으로 협약이 되어있다.
회사 생각하면 그럴거같다.
'DBMS' 카테고리의 다른 글
조합(복합)키, NULL값 제어, 모델링 (0) | 2025.02.02 |
---|---|
제약조건, REFERENCES, 기타 제약조건 (0) | 2025.01.21 |
DMBS의 기본(DISTINCT, 자료형,연산자, LIKE, NULL )_(3) (0) | 2025.01.17 |
DMBS의 기본(SELECT, ALIAS,ORDER BY)_(2) (0) | 2025.01.15 |
DMBS_오라클 설치(1) (1) | 2025.01.14 |