SQL 기초

hyunn·2021년 7월 20일
0

SQL

목록 보기
1/2
post-thumbnail

SQL 활용

사용 도구 환경설정

  • oracle xe

  • SQLDeveloper 설치

  • Oracle XE 설치 후 환경변수 설정 필수

    ​ C:\app.....\product\18.0.0\dbhomeXE\bin

  • 환경변수 설정 후 cmd

    $ sqlplus system/비밀번호

    입력하면 SQL$ 로 변경됨


1. DDL 언어 = Data Definition Language

데이터 정의 언어

  • Create 생성, Drop 삭제 , Alter 수정

2. DML 언어 = Data Manipulation Language

데이터 조작 언어

  • Insert 등록 : insert into 테이블명 values()

  • Select 추출 : select 컬럼명 from 테이블명

  • Delete 삭제 : delete from 테이블명

  • Update 수정 : update 테이블명 set 필드 = 변경값

3. DCL 언어 = Data Control Language

데이터 제어 언어

  • grant, revoke, commit, rollback, checkpoint
  • 이 중 트랜잭션 제어 언어인 commit, rollback을 따로 분리해 TCL이라고 하기도함

Oracle SQL 명령어

간단한 명령어

SQL> exit : SQL 나가기

SQL> clear screen : 화면 다 지우기

SQL> show user : 현재 유저정보

SQL> desc insa : 테이블 구조확인

SQL> commit; : 현재 상태 저장. 수정하다가 rollback하면 마지막 commit으로 회귀

column = 열

테이블 삭제

drop table 테이블명;

	drop table insa; // 에러발생. 없는 테이블을 삭제하려해서

테이블 생성

create table 테이블명 (열이름 형식(자리수) not null(공백XX) primary key(중복XX));

   create table insa (
	sabun 열이름 number(4) not null primary key,
	name 열이름 varchar(10) not null,
	buse 열이름 varchar(20) not null
   ) ;

데이터 등록 = 추가

insert into 테이블(필드명, ...) value(데이터값, ...);


SQL> insert into insa(sabun, name, buse)

​ 2 values(7800, 'hong', '전산개발') ;

​ 3 values(1300, 'lee', '해외영업') ;

​ 4 values(2400, 'kim', '전산개발') ;

불러오기

SQL> select 열이름, ... from 테이블명

테이블의 모든 열 불러올때는 열이름 대신 * 사용

​ SQL> select * from insa;

​ SQL> select sabun, name, buse from insa ;

조건에 따라 불러올 수도 있음

​ SQL> select max(sabun) from insa;

ORDER BY 이용해 값에 따라 정렬 가능 (숫자 문자 다 가능)

​ SQL> select * from insa order by sabun asc; 오름차 desc 내림차

EX. insa table

-- insa테이블 pay열이름 추가 number(3) not null--

​ alter table insa add pay number(3) not null

제약조건 사번 중복XX 급여조건 3000~7500 (이름은 중복가능해야함)

 sabun   name   buse gender salary  wdate

  7800  홍길동 전산개발  남자  4500  20020103

  1300  이순신 해외영업  여자  4900  20010916

  2400  김철수 전산개발  남자  3400  20190130

SQL문서 작성

edit 명령어 이용

​ SQL> edit 위치\파일명.sql

메모장 창 뜨면 sql 문서 작성

drop table insa ; --같은 이름의 테이블 존재못하게

 

create table insa (

 sabun number(4) not null primary key , --기본키 설정

 name varchar(10) not null ,

 buse varchar(20) not null

) ;

commit ;

desc insa

insert into insa(sabun, name, buse) values(9900, 'kim', '회계') ; --행 추가

commit ;  --현 상태 저장

select sabun, name, buse from insa ; --insa 테이블에서 불러오기

저장 -> 창닫기

불러올때는

​ SQL> start 위치\파일명.sql

start 대신 @ 써도됨


DML 데이터 조작어

삽입 insert

insert into 테이블(필드명) values(값1, 값2, …);

조회 select

select 필드1, 필드2, … from 테이블명;

select * from 테이블명;

삭제 delete

delete from 테이블명; -> 모든 데이터 삭제

delete from 테이블명 where 조건; -> 조건에 맞는 데이터만 삭제

​ ex. delete from tables where sabun > 5000;

수정 update

update 테이블명 set 필드 = 변경값; -> 모든 데이터 변경

update 테이블명 set 필드 = 변경값 where 조건;


오라클에서 표현

  • 날짜 sysdate

  • 순번 rownum

  • 더미테이블 dual

ex.

SQL> select rownum, insa.* from insa;

   ROWNUM      SABUN  NAME                 BUSE

---------- ---------- -------------------- --------------------

        1        5500 kim                  code

        2        2200 test                 ex

        3        2000 aa                   bb

Spool

SQL> spool 경로\파일명

SQL> spool off

off 전까지 작성한 모든 명령어와 결과가 경로에 txt파일로 기록됨


format 명령어

문자열일때

*col 열이름 for a___;*

*column 열이름 format a___;*

___에 들어가는 숫자가 출력에 할당되는 칸 수

ex. SQL> col name for a10; -> name열은 10칸짜리

NAME

----------

~~~~

숫자일때

*col 열이름 for 999;*

*col 열이름 for 9999;*

숫자 자료형에만 적용 가능!

숫자 자료형에 대해 9의 개수로 출력 숫자 자리수 지정

ex.

999 – 3자리이하인 숫자만 출력가능, 3자리 넘어가면 ####이런 식으로 표현됨

ID

----
####

0개의 댓글

관련 채용 정보