simDev1234
심플하고 차분하게
simDev1234
전체 방문자
오늘
어제
  • 분류 전체보기
    • Computer Science
      • Basic Math
      • Data Structure
      • Algorithm
      • Database
      • OS
    • Language
      • Java
      • Kotlin
      • SQL
    • Framework
      • Spring
      • Orm&Mapper
      • 프로젝트로 스프링 이해하기
      • 스프링 라이브러리
    • Infra
      • Cloud
      • Docker
      • Redis
      • AWS, Azure
      • Device
    • Etc
      • CleanCoding
    • Git,Github

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 참조변수
  • 컨트롤러
  • 자바메모리구조
  • scanner #next() #nextLine()
  • null
  • controllerTest
  • 참조타입
  • 자바프로그램
  • 스프링
  • JVM메모리구조
  • 404
  • 자바프로그래밍
  • 자바

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
simDev1234

심플하고 차분하게

[DATABASE] DDL, DML_테이블 형성 및 데이터CRUD
Language/SQL

[DATABASE] DDL, DML_테이블 형성 및 데이터CRUD

2022. 4. 12. 21:40

■ DDL(Data Definition Language) : DB의 객체를 생성/삭제/수정하는 언어

CREATE 객체 생성
DROP 객체 삭제
ALTER 객체 수정
더보기

▼ 원본 출처 :

https://www.youtube.com/watch?v=wbJ8pACUSVo&list=PLq8wAnVUcTFVq7RD1kuUwkdWabxvDGzfu&index=9 

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
    'Language/SQL' 카테고리의 다른 글
    • [DATABASE] 연산을 통한 데이터 조회
    • [DATABASE] 제약조건(Constraint)
    • [DATABASE] 테이블 용어, 데이터 타입
    • [DATABASE] DDL_DCL_객체 생성 및 사용자 조회 권한 부여
    simDev1234
    simDev1234
    TIL용 블로그. * 저작권 이슈가 있는 부분이 있다면 댓글 부탁드립니다.

    티스토리툴바