BACK END/DataBase

1일차(06.10)테이블 컬럼과 레코드 생성

라미보 2022. 6. 13. 05:10

● 데이터베이스(DataBase) : 대용량의 데이터를 관리하는 프로그램

● DB의 종류 : Oracle / Mysql / Mssql

 

 

 

● 테이블(Table) : 행과 열로 구성된 2차원 형태의 자료구조

- 행 : Row

- 로우 : column

 

 

▪  테이블명과 칼럼명 작성 규칙

1. 반드시 문자로 시작

2. 1~30자 까지 가능

3. 영문자(대소문자)와 0~9, 특수기호는 _ , $, # 만 포함 가능

4. 공백허용 안함

5. 예약어는 사용못함

 

 

▪ 데이터 타입

이름 타입 최대길이 설명
CHAR 문자열 200byte 고정길이
VARCHAR2 문자열 4000byte 가변길이
영어, 숫자, 특수문자는 1칸씩
한글은 3칸씩 인식한다.
NUMBER 숫자 10^-38~10^38 정수형, 실수형의 데이터 사용
DATE 날짜   BC4712/1/1 ~ AC4712/12/31

 

 

 

 

▪ 테이블 생성

 

coulmn : id, name, salary, birth, email

 

-테이블 생성

 

create table members(
 id number primary key, 
 name varchar2(10),  
 salary number(15,2) default 1000000, --전체 15자리를 잡겠다, 2는 소수점 둘째자리까지 보여주겠다.
 birth date default sysdate,
 email varchar2(20)
);

 

※ 설명 (자바의 변수선언과 느낌이 비슷함! int a=10, String abc;_

1) id number primary key = id는 number타입, 기본키설정 primary key

 -primary key : unique(중복x) +not null(비어있으면 안됨)

2) name varchar2(10) = varchar2(=문자, String), 10 --글자수 (영어,숫자,특수문자)10글자, 한글: 1글자가 3자리를 차지

3) salary number(15,2) default 1000000 

  = salary number타입, 전체 15자리, 소수점 둘째자리까지, 기본값은 1000000이다.(1,000,000 이렇게 입력하면 안됨)

4) birth date default sysdate = birth date타입, 기본값으로 현재시각 : sysdate

5) email varchar2(20) = email은  varchar2(20)타입(문자타입) , 20자리까지 사용 가능하다.

 

 

생성하면 이렇게 보여진다.

SQL> desc members;

 이름                                      널?      유형
 ----------------------------------------- -------- ----------------------------
 ID                                        NOT NULL NUMBER
 NAME                                               VARCHAR2(10)
 SALARY                                             NUMBER(15,2)
 BIRTH                                              DATE
 EMAIL                                              VARCHAR2(20)

 

 

 

-테이블 조회 : desc members; (desc + 테이블명;)

 

-테이블 삭제 : drop table members; (drop table + 테이블명;)

 

 

 

 

▪ 레코드 생성

 

[insert 형식]
insert into 테이블이름(컬럼1,컬럼2,...) values(값1,값2,....) ;

 

 

insert into members(id,name,salary,birth,email) 
values(1,'제시카',100,'90/12/25','aaa@naver.com') ;

 

insert into members(id,name,salary,birth,email)
values(2,'티파니',700,'85/12/3','bbb@naver.com');

insert into members(id,name,salary,birth,email)
values(3,'수영',300,'78-8-21','aaa@daum.net');

insert into members(id,name,salary,birth,email)
values(4,'효연',800,to_date('97-2-9'),'ccc@daum.net'); 

insert into members(id,name,salary,birth,email)
values(5,'서현',200,to_date('88/6/19'),'ddd@daum.net'); 

insert into members(id,name,salary,birth,email)
values(6,'제시카',500,to_date('91-12-2'),'kkk@naver.com'); 

insert into members(salary,birth,id,name)
values(400,to_date('89/4/12'),7,'유리');

-이메일을 생략하고 순서도 바꿔서 입력했습니다.


insert into members(salary,birth,id,name)
values(300,to_date('72/9/5'),8,'윤아');

insert into members
values(9,'써니',600,to_date('87/3/4'),'abc@naver.com');

- 칼럼을 생략하고 전체내용을 입력했습니다.

-컬럼을 안적고, 값을 다 적으면 컬럼에 해당되는 값을 다 넣는다고 인식하므로 생략해도 된다.

 

 

-테이블에 컬럼을 지정해서 테이터 삽입하기
insert into members(id,name)
values(10,'수영');

-id와 name만 입력했습니다.

 

-문자를 넣을때 ( ' ') 작은따옴표를 사용해서 넣습니다.

-날짜를 입력할때 문자열에 넣어서 입력해도 되지만, to_date('00/0/00') 함수를 사용하면 더 정확하게 넣을 수 있습니다.

-칼럼 순서는 마음대로 지정 후 레코드 값 넣을 수 있습니다.

-칼럼의 이름을 안쓰면 default로 지정한 레코드값으로 자동 적용 됩니다.

-컬럼에 해당되는 것을 5개라고 적었는데, 값을 4개쓰면 오류가 생긴다.

 

 

 

-레코드 조회 : 

[select 형식]
select 칼럼1, 칼럼2,.. from 테이블명; (부분조회 가능)

 

select id, name from members;
select id, name,email,salary,birth from members;

 

 

-레코드 전체 조회 : select * from members;

 

-테이블 크기 조절 : set linesize 300;

 

-테이블에 원하는 데이터로 해당 레코드 조회

: select * from 테이블명 where id ='ㅇㅇㅇ';

:select * from 테이블명 where id ='ㅇㅇㅇ' or id = 'ㅁㅁㅁ';  (and도 사용 가능)

 

▪ 보여지는 영역 변경 : col +영역명 for a(변경숫자)

-컬럼의 이름영역(verchar2)을 30에서 10으로 변경 : col name for a10

-컬럼의 메일영역(number)을 20에서 15로 변경 : col name for a15

-컬럼의 ID 영역(number) 을 3칸으로 변경 col id for 999 (9=1자리, 99=2자리, 999=3자리..)

  만일 col id for a3으로 입력시 id값이 #########으로 오류 발생

 

-영역변경시 타입에 따라 사용법이 달라진다 (verchar2,number )

-끝에 세미콜론(;)을 안붙입니다.

-보여지는 영역만 변경 될 뿐, 구조가 변경되는 것은 아닙니다.(desc member로 확인하기)

 

 

 

▪저장은 commit;