-
[Oracle] MySQLStudying/Database 2022. 8. 10. 21:33
들어가기 전에...
1. 오라클 설치 https://www.oracle.com/database/technologies/xe-prior-release-downloads.html
2. cmd > sqlplus system/1234
3. C:/workspace 폴더 생성
SQL 문
DDL(Data Definition Language) : 데이터 정의어
: create, alter, drop, rename, truncate
DML(Data Manipulation Language) : 데이터 조작어
: insert, update, delete, select
└▶ insert into 테이블명 (필드1, 필드2) values (데이터1, 데이터2 ...) ;
└▶ select 필드1, 필드2 from 테이블 ;
└▶ delete from 테이블 ;
└▶ update 테이블 set 필드=변경값 ;
DCL(Data Control Language) : 데이터 제어어
: grant, revoke
트랜젝션 제어
: commit, rollback, savepoint
데이터 형식
- number : 숫자형
- int : 정수형
- char : 문자형(고정형)
- varchar/varchar2 : 문자형(가변형) - 4000byte까지
- clob : 문자형(4000byte이상일때) - 최대 4GB
- blob : binary로저장(그림, 음악등) - 최대 4GB
- date : 날짜형
- timestamp : date형의 확장
실습 내용
- mysql 시작
C:\Users\~~> sqlplus system/1234
- 화면 지우기
SQL> clear screen ;
- 테이블 생성
create table sosi ( id number(4) primary key , name varchar2(20) , salary number , birth date , email varchar2(20) , grade varchar2(4) ) ;
- 테이블 구조 확인
SQL> desc sosi ;
- 쿼리문 저장 파일 생성
SQL> spool C:/workspace/testdbsosi0808.txt
- sql 문서 생성 / 실행
/* 생성 */ SQL> edit C:/workspace/sosi.sql /* 실행 */ SQL> start C:/workspace/sosi.sql
- 테이블 데이터 저장
insert into sosi(id,name,salary,birth,email,grade) values(7789, 'hong', 79, sysdate, 'bc@kt.com', 'F'); insert into sosi(id,name,salary,birth,email,grade) values(7790, 'lee', 23, sysdate, 'lee@lg.com', 'C'); insert into sosi(id,name,salary,birth,email,grade) values(2234, 'young', 96, sysdate, 'kim@it.org', 'A');
commit;
문자/문자열 은 반드시 ' ' 로 작성한다.
- 테이블 깔끔하게 정리
SQL> col name for a10 ; SQL> col email for a15 ; SQL> col grade for a2 ; SQL> select * from sosi ; SQL> desc sosi ; SQL> set pagesize 1200 ; SQL> set linesize 1200 ;
- a10 : a는 alphabet 의 a
SQL> col id for 9999 ;
[문제 1] id, name, email 3개 열만 출력하라.
SQL> select id, name, email from sosi;
[문제 2] 행번호 rownum, id, name, email 4개 열만 출력하라.
SQL> select rownum, id, name, email from sosi ;
[문제 3] 모든 데이터를 출력하라.
SQL> select * from sosi ;
- 데이터 추가 생성
insert into sosi(id,name,salary,birth,email,grade) values(7734, 'aaa', 24, sysdate, 'aa@gs.com', 'B'); insert into sosi values(7754, 'bb', 57, sysdate, 'aa@ks.it', 'A'); insert into sosi values(3357, 'red', 92, sysdate, 'aa@mo.it', 'B'); commit ;
Dual : 가짜 더미 테이블
SQL> select sysdate from dual ;
- sysdate : 시스템 상 오늘 날짜
to_date( ) : 특정 날짜 정하기
- 데이터 추가
insert into sosi values(7000,'김고은',100,to_date('17/12/12'), 'aa@girl.com', 'A'); insert into sosi values(6000,'태연',100,to_date('19/12/12'), 'ts@girl.com', 'A'); insert into sosi values(2000,'윤아',90,to_date('17/11/13'), 'bb@girl.com', 'F'); insert into sosi values(3000,'제니',120,to_date('17/10/25'), 'cc@girl.com', 'C'); insert into sosi values(4000, '수영', 90, sysdate, 'dd@girl.com', 'A');
행번호 - rownum
SQL> select rownum, ss.* from sosi ss ;
- from sosi ss : sosi 테이블을 ss 로 간략화
- ss.* : ss 테이블의 모든 것
WHERE : 특정 데이터 조건 찾기
SQL> select * from sosi where id = 2000 ; SQL> select * from sosi where id = 3000 ;
rollback() : 되돌리기
SQL> update sosi set name='bts' ; SQL> select * from sosi ; SQL> rollback ; SQL> select * from sosi ;
특정 필드 데이터 변경하기
- id가 2000인 데이터의 name을 'bts'로 바꿔라.
SQL> update sosi set name='bts' where id = 2000 ;
- id가 6000인 데이터의 name, salary, birth, email, grade 를 바꿔라.
update sosi set name='고길동', salary=73, birth=to_char('21/07/05'), email='gg@aa.com', grade='D' where id = 6000 ;
정리
insert - 신규 등록
select - 데이터 추출
update~where - 데이터 수정
delete~where - 데이터 삭제
alter : 테이블 구조에 필드 추가, 필드 타입 변경, 필드명 변경