■ DDL(Data Definition Language) : DB의 객체를 생성/삭제/수정하는 언어
CREATE | 객체 생성 |
DROP | 객체 삭제 |
ALTER | 객체 수정 |
CREATE TABLE MEMBER
(
ID VARCHAR2(50),
PWD VARCHAR2(50),
NAME VARCHAR2(50),
GENDER CHAR(50),
AGE NUMBER,
BIRTHDAY CHAR(50),
PHONE CHAR(50),
REGDATE DATE
)
DROP TABLE MEMBER;
-- 1. 자료 타입 변경
-- 기존 데이터가 10보다 넘어가는 게 있으면 크기 수정이 안된다.
ALTER TABLE MEMBER MODIFY ID VARCHAR2(10);
-- 2. 칼럼 삭제
ALTER TABLE MEMBER DROP COLUMN AGE;
-- 3. 행 추가
ALTER TABLE MEMBER ADD EMAIL VARCHAR2(200);
■ DML(Data Manipulation Language) : DB의 데이터를 생성/조회/갱신/삭제하는 언어
- CRUD의 개념 : Create(생성), Read(=RETRIEVE읽기/조회), Update(갱신), Delete(삭제)
- 데이터는 일반적으로 CRUD방식을 통해 관리된다.
INSERT | 삽입 *테이블에 삽입한다는 개념으로 INSERT 사용 |
SELECT | 조회 *테이블에서 특정 데이터를 뽑아서 본다는 개념으로 SELECT 사용 |
UPDATE | 갱신 |
DELETE | 삭제 |
[1] INSERT __ * 코드 원본 출처 : 뉴렉쳐 강의
CREATE TABLE MEMBER
(
ID VARCHAR2(50),
PWD VARCHAR2(50),
NAME VARCHAR2(50),
GENDER CHAR(50),
AGE NUMBER,
BIRTHDAY CHAR(50),
PHONE CHAR(50),
REGDATE DATE
);
-- 대문자를 주로 사용. (대소문자 구분x) / 다만 비교를 할 때는 소문자 사용
INSERT INTO MEMBER(ID, PWD) VALUES('NEW LEC','111');
INSERT INTO MEMBER(ID, PWD) VALUES('DRAGON','111');
SELECT id, name, pwd FROM MEMBER;
-- " " 안에 임시 헤딩을 사용하면 대문자로 변환되지 않고 소문자를 그대로 출력한다.
SELECT id "user_ID", NAME, PWD FROM MEMBER;
[2] UPDATE __ * 코드 원본 출처 : 뉴렉쳐 강의
CREATE TABLE MEMBER
(
ID VARCHAR2(50),
PWD VARCHAR2(50),
NAME VARCHAR2(50),
GENDER CHAR(50),
AGE NUMBER,
BIRTHDAY CHAR(50),
PHONE CHAR(50),
REGDATE DATE
);
INSERT INTO MEMBER(ID, PWD) VALUES('NEW LEC','111');
INSERT INTO MEMBER(ID, PWD) VALUES('DRAGON','111');
-- 모든 PWD 데이터가 '222'로 바뀐다.
UPDATE MEMBER SET PWD = '222';
UPDATE MEMBER SET PWD = '222' WHERE ID = 'newlec';
-- 문자 데이터의 경우 대소문자를 구분하기 때문에 대소문자까지 일치해야한다.
UPDATE MEMBER SET PWD = '333', name = '손오공' WHERE ID = 'DRAGON';
[긴 코드 예시_테이블 생성/수정/삭제 & 데이터 CRUD]
create table scores
(
--변수명 자료형
--//크기는 넉넉하게 준다.
name varchar2(100), --byte단위 가변길이
kor number(5), --숫자의 길이 단위
eng int,
mat number(5,1),
prev char(4) --byte단위 고정길이
)
/
--////////////////////////////////////////////////////////////////////--
-- DML(Data Manipulation Language) : insert update delete select(CRUD)
--데이터 삽입 - insert into ~~ values ();
insert into scores values('김길동',80,80.5,80.5,'A');
insert into scores values('나길동',90,95,100,'B');
insert into scores values('다길동',75,23,55,'C');
insert into scores values('라길동',88,55.5,60,'A'); --int형에 55.5를 넣으면 반올림이됨
insert into scores(name,kor,eng) values('바길동',99,100);
--데이터 조회 - select ~~ from ~~~
select * from scores
select
name, kor, eng, mat, prev
from scores
select
name, kor
from scores
select
name, kor, eng, mat, prev,
(kor+eng+mat)/3 as avg
from scores
select
name, kor, eng, mat, prev,
rank() over(order by (kor+eng+mat) desc) as rank
from scores
-- 데이터 갱신 - update ~~ set ~~~ where ~~~
update scores set kor = 10; -- <<모두 갱신
update scores set kor = 85 where name = '나길동'
update scores set eng = 90 where name = '라길동'
update scores set name = '마길동' where name = '다길동';
update scores set name = '다길동' where name = '라길동';
-- 데이터 삭제 - delete ~~ from ~~~ where ~~~
delete from scores --전체 데이터 삭제
delete from scores where name = '바길동'
delete from scores where 1 = 1; -- 전체 데이터 삭제
--///////////////////////////////////////////////////////////////////--
-- DDL(Data Definition Language) : create(생성), drop(삭제), alter(수정)
-- 테이블 수정
-- 1. 칼럼 추가
-------------칼럼 추가시 이슈사항 : 칼럼을 추가하면 이전의 연산식을 수정해야한다.(사전 데이터 설계의 중요성)
alter table scores add sci int;
alter table scores add commt varchar2(600); --최대 200글자
update scores set sci = 100, commt = '잘했어요.';
select * from scores
-- 2. 칼럼 삭제
alter table scores drop column prev;
-- 테이블 삭제
drop table scores;
>> 결과 (테이블 삭제 전)
[참조 출처] 뉴렉쳐 강의
'Language > SQL' 카테고리의 다른 글
[DATABASE] 연산을 통한 데이터 조회 (0) | 2022.04.14 |
---|---|
[DATABASE] 제약조건(Constraint) (1) | 2022.04.13 |
[DATABASE] 테이블 용어, 데이터 타입 (0) | 2022.04.12 |
[DATABASE] DDL_DCL_객체 생성 및 사용자 조회 권한 부여 (0) | 2022.04.12 |
[DATABASE] 오라클 설치하기 / 시스템 접속 (0) | 2022.04.11 |