상세 컨텐츠

본문 제목

2023.02.06

DB

by 연을 2023. 2. 6. 17:29

본문

728x90

life cycle = program

대안 : file ex) menu.txt   sales.txt

 

Database : 데이터를 체계적으로 관리하는 S/W(Program)

1. 중복제거

2. 일관성 유지

 

DBMS < OS

DBA(DataBase Administrator) : system/sys/ human123

User : ora_user human123

SQL Developer : SQLPlus의 대체재

===================================== CMD

<코드>

<결과>

<코드>

<결과>

생성되었습니다.

<코드>

<결과>

사용자가 생성되었습니다.

<코드>

grant dba to ora_user;

<결과>

권한이 부여되었습니다.

<코드>

C;\Users\admin>d:

<결과>

D:\>

<코드>

D:\>dir *.dmp

<코드>

<코드>

<결과>

<코드>

<결과>

구조 = schema(스키마)

           데이터테이블에서 데이터가 저장되는 구조에 대한 정보

           (데이터에 대한 데이터) <= 메타데이터 : 데이터에 관한 링트

데이터  = DBA

메타데이터

SQL
DML
데이터
DDL
메타데이터
CRUD(생성/조회/수정/삭제)
  DML DDL
생성 insert create
조회 select select
수정 update alter
삭제 delete drop

create table 테이블명(

[컬럼명 데이터타입(최대길이),]

...);

숫자(정수/실수) : number(p,s)(oracle)  number decimal(p,s)(여기서 초록색은 mysql/moㅜgo)

ex) price number(5,2) xx.xx = -99.99~99.99    price number(4,0) == number(4)

문자열 : varchar2(varchar)  char  text(초록색은 mysql)  ex) name varchar2(10)    name char(10)

테이블 - Relaional DB(RDB) - MySQL(공짜), MariaDB, Oracle, SQL Server

트리 - Hierarchy DB(HDB) - MongoDB (Facebook, Instagram)

Synonym = nickname

Sequence = 일련번호 생성기

함수/프로시저/패키지 - DB programming

  Java Javascript  
반환값이 있는 함수 반환값타입 함수명(파라미터) return 반환값 함수
반환값이 없는 함수 void 함수명(vkfkalxj) return; or w/o return 프로시저

Pascal/Fortan/COBOL > C > C++ > Java

오라클 Programming <- Pascal

 

날짜

20230206161025 => char(14)

19951111 => char(8)

 

date 연월일시분초

timestamp(1970년 1월 1일=0)

 

LOB Large OBject (이미지/ 음성) => 쓰는 순간 느려지므로 잘 안쓴다.

 

제약조건(Constraints)

- not null (공간이 비는걸 허락하지 않는다.)

- unique (유일한)

- 기본키(Primary key) : 데이터테이블의 레코드를 특정할 수 있는 컬럼 또는 컬럼 조합

   unique와 not null 조건을 동시에 가져야만 한다. 테이블당 하나의 기본키만 가능(pk <=1)

   ex) 모바일번호(not null, unique)  이름+주민번호(not null, unique) => 기본키

- 외래키(foreign key) : 다른 테이블의 기본키가 현재 테이블의 검색에 사용되는 것

citizen table                                                          worker  table

이름 모바일번호(pk) 성별 생년월일 주소지         모바일번호(fk) 직장명 근속연수 근무지역

                                                                             mobile varchar2(13)

                                                                             constraint fk_mobile foreign key(mobile)

                                                                             references citizen(mobile)

str = null undefined
str = ' '; string

명명규칙(Naming Rule)

  1. _ , 영문으로 시작
  2. 두번째 문자부터 숫자가능
  3. 빈칸, 특수문자는 사용불가
  4. 대소문자 구분없음

=============================================Oracle

<코드>

select count(*) from employees;

<결과>

<코드>

create table menu(
name varchar2(20),
price number(5));

<결과>

<코드>

select * from menu;

<결과>

아직 아무것도 들어있지 않다.

학생점수보관 테이블 student 이름, 성별, 수학점수, 영어점수, 국어점수

<코드>

create table student(
name varchar2(20),
gender char(5),
math number,
english number,
korea number
);
desc student;
select * from student;

<결과>

테이블만 만들고 값은 아직 넣지 않음

<제약조건 코드>

create table student(
name varchar2(20) not null unique,
gender char(1),
math number,
english number,
korean number
);
insert into student values('John Wick','m',0,0,0);
insert into student values('John Wick','f',10,10,10);

<결과>

첫번째 값 넣기 두번째 값 넣기

728x90

'DB' 카테고리의 다른 글

2023.02.13  (0) 2023.02.13
2023.02.10  (0) 2023.02.10
2023.02.09  (0) 2023.02.09
2023.02.08  (0) 2023.02.09
2023.02.07  (0) 2023.02.07

관련글 더보기