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)
=============================================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);
<결과>
첫번째 값 넣기 | 두번째 값 넣기 |
![]() |
![]() |
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 |