sql실습.txt

create table customer (
id varchar2(10) primary key,
name varchar2(20) not null,
age number(3) not null,
tel varchar2(13) not null,
bloodtype varchar2(2),
gender char(1),
constraint coustomer_gender_pk check(gender IN ('M','F'))
-- constraint coustomer_pk primary key(id)
);

select * from tab; -- 테이블 전체보기

desc customer; -- 테이블 구조보기

drop table customer; --테이블 삭제, 다시 불러올 수 있다.

purge recyclebin; --휴지통 비우기, 테이블 완전 삭제

alter table customer add(mileage number(8) not null); --  마일리지 컬럼 생성

alter table customer drop column mileage; -- 마일리지 컬럼 삭제

insert into customer (id,name,age,tel,bloodtype,gender) values('id-1','홍길동',20,'010-222-333','B','M'); -- 데이터 삽입

select * from customer; -- 테이블 전체 데이터 조회

insert into customer (id,name,age,tel) values('id-2','이순신',30,'010-555-7777'); -- not null 데이터까지만 넣기

select * from customer where id='id-2'; -- id-2 테이터만 조회

insert into customer (id,name,age,tel,bloodtype,gender) values('id-3','신사임당',50,'010-888-9993','AB','F');

insert into customer(id,name,age,tel,bloodtype) values('id-4','김문수',34,'010-4434-4533','O');

insert into customer(id,name,age,tel,bloodtype,gender) values('id-5','오영심',30,'010-323-4443','A','F');

insert into customer(id,name,age,tel) values('id-6','길광호',47,'010-434-2221');

insert into customer values('id-7','이영호',22,'010-323-4555','AB','M');

insert into customer values('id-8','알리스타',45,'011-334-5445','B','M');

insert into customer values('id-9','레오나',35,'010-433-7756','O','F');

insert into customer values('id-10','미스포츈',30,'010-234-5644','A','F');

select * from customer;

update customer set bloodtype='O' where id='id-2'; --데이터 갱신

update customer set bloodtype='A'; -- 형액형 모두 A형으로

rollback --되돌리기

update customer set bloodtype='AB' where age >=20 and age <30; --20대만 AB형 주기

update customer set bloodtype='O' where age between 20 and 29; --20대만 바꾸기

update customer set bloodtype='B' where age=20; -- 나이가 20세만 B형으로

update customer set bloodtype='B' where id='id-7'; -- 이영호의 형액형을 B형으로

alter table customer add constraint customer_bloodtype_pk check(bloodtype IN('A','B','AB','O'));

update customer set bloodtype='AB', age='31' where id='id-7'; --이영호의 혈액형과 나이를 바꾸기

select * from customer;

--delete는 레코드 단위로 지운다, 만약에 데이터에 null값을 줄려면 update를 이용해서 준다.

delete from customer; --지운것을 rollback되살릴 수 있다. 특정한 조건을 줘서 지울 수 있다.

delete from customer; //customer에 있는 모든 데이터 삭제

drop form customber; //테이블 삭제

rollback;

select * from customer; --전체 데이터 조회

select * from customer order by age desc; --나이가 많은 사람부터 조회 desc는 오름차순

select * from customer order by age asc; -- 나이가 적은 사람부터 조회 asc는 내림차순

-- 첫번째 정렬 후 똑같은 값을 또 다시 조회하고 싶을 때

select * from customer order by age desc, name asc; -- 나이가 많은 사람부터 조회한 후, 이름을 내림차순으로

select age from customer; -- 나이만 조회

select *  from customer where gender='M'; -- 성별이 'M'인 사람만 조회

select * from customer where gender='M' and bloodtype='B'; -- 성별이 남자인 사람중에서 혈액형이 O형인 사람만 조회

select * from customer where gender='M' and bloodtype='B' and name like '홍%'; -- 성별이 남자인 사람중에서 혈액형이 O형인 사람중에서 홍씨인 사람

select id,name,nvl(bloodtype, '혈액형이 없음') from customer where id='id-6'; -- null값이 들어간 부분에 메세지를 띄움, 결과는 혈액형에 null값이 없으므로 혈액형이 없음 이라고 뜸

select * from customer;

select sysdate from dual; --시스템 날짜 조회 데이터가 datatype

select to_char(sysdate) from dual; -- 시스템 날짜 조회 데이터가 문자열타입

-- y : 연도, yy(2자리), yyyy(4자리)
-- m : 월, d : 일, h : 시 - (24:hh24), 분 - mi, 초 - s

select to_char(sysdate, 'yyyy/mm/dd hh:mi:ss') from dual; -- 포맷 형태로 출력

select to_char(sysdate, 'yyyy/mm/dd hh24:mi:ss') from dual; -- 포맷형태로 출력하되, 시간을 24간 형태로 출력

select avg(age) from customer; --전체나이 평균

select avg(age) from customer where age>=20 and age <30; --20대만 평균

select min(age) from customer; -- 나이가 젤 낮은값 출력

select age from customer; -- 전체 나이 조회

select sum(age) from customer; -- 나이의 전체 합

select max(age) from customer; -- 가장 높은 나이 출력

select bloodtype, max(age) from customer group by bloodtype; -- 각 혈액형 별 가장 높은 나이 출력

select bloodtype, max(age) from customer group by bloodtype having max(age) >= 40; -- 그룹에서 조건을 줄 때 having을 써서 조건을 준다 결과는 나이가 40보다 같거나 클 때 출력

create table address(
zipcode char(7) primary key,
si varchar2(30) not null,
dong varchar2(30) not null
);

desc address;

select * from tab;

alter table customer add(address_id char(7)); -- 외래키 설정을 위한 컬럼 추가

desc customer; -- customer 구조 보기

-- 제약조건 설정 구문 : constraint 이름 제약조건(column)
-- references address(zipcode) : address 테이블의 zipcode를 참조할꺼임

alter table customer add constraint customer_address_fk foreign key(address_id) references address(zipcode); -- 외래키 설정

select * from user_cons_columns; -- 제약조건 조회

insert into address values('111-111','서울시','송파구');
insert into address values('222-222','서울시','관악구');
insert into address values('333-333','서울시','동대문구');

select * from customer;

update customer set address_id='111-111' where id in('id-1','id-2','id-5'); -- customer 테이블에 address_id 넣기

select * from customer where id='id-1'; -- 1번 id-1인 거 조회

select * from address where zipcode='111-111'; -- 2번 111-111을 가진 거 조회

--위에 1번과 2번을 한꺼번에 조회

select id,name,age,tel,bloodtype,gender,zipcode,si,dong from customer,address where id = 'id-1' and zipcode=address_id; --한개의 데이터만 조회

select id,name,age,tel,bloodtype,gender,zipcode,si,dong from customer,address where id in('id-1','id-2') and zipcode=address_id; --두개의 데이터만 조회

select * from customer,address where address_id=zipcode; -- 주소가 있는 사람만 출력 -- equi join

select * from customer,address where address_id=zipcode(+); -- 주소가 있든 없든 모든 사람 출력 -- out join

select * from customer c, address a where c.address_id = a.zipcode(+); -- 별칭주기

Posted by 조은성
,

'프로그래밍 > JDBC Programming' 카테고리의 다른 글

2012-5-24 오라클 sql명령어[실습]  (1) 2012.05.24
INSERT(데이터 삽입)  (0) 2012.04.09
테이블 수정(update)  (0) 2012.04.09
테이블 삭제 및 데이터 삭제(drop, delete)  (0) 2012.04.09
constraint 제약조건  (0) 2012.04.09
Posted by 조은성
,

* 기본구문

INSERT INTO table_name(column1, column2,...) values(데이터,데이터,...)

- 예) insert into table_name(column1, column2) values(100,200);

Posted by 조은성
,

* 컬럼 및 제약조건 추가

ALTER TABLE table_name ADD(column_name data_type[제약조건])

ALTER TABLE table_name ADD CONSTRAINT 제약조건명 제약조건

- 예) ALTER TABLE emp ADD(address varchar2(100));

* 컬럼 변경

ALTER TABLE table_name modify(column_name data_type[제약조건])

- 데이터가 존재하는 경우 변경할 수 없다. 단 varchar2, char의 경우 변경하려는 크기가 더 큰 경우는 가능하다.

- 예) ALTER TABLE emp modify(address varchar2(200));

- 기존 컬럼의 이름을 바꿀 순 없다.

- 컬럼의 제약조건이나 타입은 변경가능하다.

- 컬럼의 이름을 바꾸려면 컬럼을 drop으로 지우고 다시 만들어야 한다.

* 컬럼 삭제

alter table table_name drop column column_name

 - 예) alter table emp drop column address

* 제약조건 삭제

alter table table_name drop 제약조건

- 예) alter table emp drop primary key;

Posted by 조은성
,

* 테이블 삭제

DROP TABLE table_name

- 예

DROP TABLE MEMBER; -> 휴지통에 버리기

오라클 recyclebin 제거

purge recyclebin; ->휴지통 비우기

* 테이블의 모든 ROW 제거

TRUNCATE TABLE table_name ->테이블의 모든 데이터 지우기

-TRUNCATE와 DELETE의 차이

delete는 다시 되 살릴수 있지만 Truncate는 복구가 불가능 하다.

- TRUNCATE 실행 후 바로 COMMIT 되어 ROLLBACK을 할 수 없다.

 

'프로그래밍 > JDBC Programming' 카테고리의 다른 글

INSERT(데이터 삽입)  (0) 2012.04.09
테이블 수정(update)  (0) 2012.04.09
constraint 제약조건  (0) 2012.04.09
테이블 생성(create table)  (0) 2012.04.06
Oracle 실행하기  (0) 2012.04.06
Posted by 조은성
,

- 구문

constraint 제약조건_식별자 제약조건(컬럼)

 - 종류

 제약조건  설명

 PRIMARY KEY(PK)

유일하게 테이블의 각행을 식별(NOT NULL 과 UNIQUE조건을 만족 

 FOREIGN KEY(FK)

열과 참조된 열 사이의 외래 키 관계를 적용하고 설정 

 UNIQUE KEY(UK)

테이블의 모든 행을 유일하게 하는 값을 가진 열(NULL을 허용)-컬럼에서 유일해야함 

 NOT NULL(NN) 열은 NULL값을 포함할 수 없다. 
 CHECK(CK)

참이어야 하는 조건을 지정함(대부분 업무 규칙을 설정)-값에 조건을 설정                     ex : 0보다 처야함 

 

- 주요 데이터 타입

DATA TYPE 

설명 
 VARCHAR2(n) 가변 길이 문자 데이터(1-4000byte) 

 CHAR(n)

고정 길이 문자 데이터(1-2000byte) 
 NUMBER(p,s) 전체 p자리 중 소수점 이하 s자리 

 DATE

날짜 타입(BC 4712년 1월 1일부터 AD 9999년 12월 31일)->날짜 변경시 사용 
 LONG

가변 길이 문자 데이터(1-2Gbyte) 

 CLOB -> (char)

가변 길이 문자 데이터(1-4Gbyte)->신문 같은 걸을 저장할 시 사용(큰 문자) 

 BLOB->(binary)

가변 길이 이진 데이터(1-4Gbyte) 

* CHAR(5)를 잡아두고 abc를 넣으면

' '  

' ' 

가 된다.

abc만 조회하고 싶은 경우에는 가변길이를 제공하는 varchar(n)을 사용하는게 좋다.

* 생일 같은 경우(년 월 일) : ex : 19960515) 와 같이 딱 정해져 있는 경우 char(n)을 많이 쓴다.

 

'프로그래밍 > JDBC Programming' 카테고리의 다른 글

테이블 수정(update)  (0) 2012.04.09
테이블 삭제 및 데이터 삭제(drop, delete)  (0) 2012.04.09
테이블 생성(create table)  (0) 2012.04.06
Oracle 실행하기  (0) 2012.04.06
oracle 개요  (0) 2012.04.06
Posted by 조은성
,

테이블 : 고객

컬럼(속성) : id, 이름, 나이, 전화번호, 성별, 혈액형

 

 

1. 10g를 이용한 테이블 생성하기.

조건 => primary key : id , check : gender, not null :  name, age, tell

'프로그래밍 > JDBC Programming' 카테고리의 다른 글

테이블 삭제 및 데이터 삭제(drop, delete)  (0) 2012.04.09
constraint 제약조건  (0) 2012.04.09
Oracle 실행하기  (0) 2012.04.06
oracle 개요  (0) 2012.04.06
오라클 10g 시작하기  (0) 2012.04.06
Posted by 조은성
,

1. scott/tigger 로 접속

 

 

sql->sql명령

 

 

 

 

 

'프로그래밍 > JDBC Programming' 카테고리의 다른 글

테이블 삭제 및 데이터 삭제(drop, delete)  (0) 2012.04.09
constraint 제약조건  (0) 2012.04.09
테이블 생성(create table)  (0) 2012.04.06
oracle 개요  (0) 2012.04.06
오라클 10g 시작하기  (0) 2012.04.06
Posted by 조은성
,

* DB종료 : MySQL, MSSQL,Oracle,

1. Oracle : Data 를 영구적으로 관리해 주는 프로그램 -> File

JDBC :  데이터 베이스를 연동할 수 있도록 class들을 모아둔 API(자바쪽에 데이터를 관리하도록 도와준다)

* SQL : 데이터베이스에 데이터를 질의, 수정, 삭제 등을 요청하는 표준언어

DQL - SELECT : 데이터 조회

DML - INSERT, UPDATE, DELETE : Data 변경

DDL - CREATE, ALTER,DROP : 객체 생성 및 변경

 

*  관계형 데이터베이스

- 데이터 베이스  : 지속적으로 유지, 관리되어야 하는 데이터들의 집합

- 데이터 베이스 관리 시스템 : Database Management System으로 데이터베이스를 관리해 주는 시스템을 말한다. - 오라클 DBMS, MS-SQL, DB2 등

- 관계형 데이터베이스 : 데이터들을 여러항목(컬럼)의 집합으로 표현하는 테이블 형태로 데이터를 관리하는 방식

관계형 데이터베이스는 System.에서 표현하고자 하는 Data(Domain)가 여러값(속성)들이 합쳐져서 (관계를 맺어) 표현된다.

 

 

 

*  테이블의 형태

- 테이블 데이터베이스의 기본적인 데이터 저장 단위

- 테이블은 시스템내에서 독립적으로 사용되길 원하는 엔티티를 표현한다.

- 컬럼(속성)과 로우(튜플, 레코드)로 구성되어 있다.

- 테이블은 다른 테이블과의 관계를 표현할 수 있다. - 외래키 사용

 

* 도메인은 다른 도메인과 관계(참조)를 맺어 데이터 표현을 확장한다.  

 

 

'프로그래밍 > JDBC Programming' 카테고리의 다른 글

테이블 삭제 및 데이터 삭제(drop, delete)  (0) 2012.04.09
constraint 제약조건  (0) 2012.04.09
테이블 생성(create table)  (0) 2012.04.06
Oracle 실행하기  (0) 2012.04.06
오라클 10g 시작하기  (0) 2012.04.06
Posted by 조은성
,

* 아이디 : system

  비밀번호 :  1111

 

 1. 홈페이지로 접속

2. 아이디와 패스워드 입력 (system/1111)

3. 접속

 

4. 계정 추가하기

관리-> 데이터베이스 사용자

5. HR click

6.사용자 이름 HR

 암호 : hr

계정상태 :  잠금해제됨

 6. 생성 클릭

7. scott/ tiger 만들기 DBA클릭하고 모든 사용자 권한 체크

8. scott계정 로그인

 

9.scott 계정으로 로그인 완료

 

'프로그래밍 > JDBC Programming' 카테고리의 다른 글

테이블 삭제 및 데이터 삭제(drop, delete)  (0) 2012.04.09
constraint 제약조건  (0) 2012.04.09
테이블 생성(create table)  (0) 2012.04.06
Oracle 실행하기  (0) 2012.04.06
oracle 개요  (0) 2012.04.06
Posted by 조은성
,