기본 SQL 작성하기
SQL 문
- Stored Query Language
- 어떻게 작업을 수행할지가 아니라 무엇을 해야할 지에 관해 정의하는 결과중심적 언어. (절차적은 아님, cf: 자바는 절차적 언어)
- SQL 명령어는 대소문자를 구분하지 않는다.
- 주석은 --
SQL명령어
1. DDL명령어 Data Definition Language 정의어
DDL(Data Definition Language)은 `데이터를 정의하는 언어'로서, 보다 엄밀하게 말하면 `데이터를 담는 그릇을 정의하는 언어'이며, 이러한 그릇을 DBMS에서는 오브젝트라고 한다. DDL을 통해 정의할 수 있는 대상, 오브젝트 유형은 다음과 같다.
- DB및 TABLE에 대한 정의
- Create 생성
- Drop 삭제
- Alter 수정
2. DML명령어 Data Manipulation Language 조작어
- 레코드작업
- select 조회 및 검색
- insert 삽입
- update 수정
- delete 삭제
3. DCL명령어 Data Control Language 제어어
- 사용자가 별로 쓸일 없음. 호스팅업체가 주로 사용
- grant 사용자 접근 권한부여
- revoke 사용자 접근 권한 취소
- deny 특정사용자만 접근차단
SQL Developer 사용하기
1. 오라클 홈페이지에서 SQL Developer 다운 받기
https://www.oracle.com/index.html
https://www.oracle.com/database/technologies/appdev/sql-developer.html
2. 경로설정
설치시 경로설정을 아래와 같이 해준다.
C:\Program Files\Java\jdk1.8.0_211
3. Oracle 접속하기
플러스 버튼을 눌러서 새로 설정해준다.
작업이름,
사용자이름: java0514
비밀번호: 1234 (비밀번호 저장 체크)
등을 설정하고 테스트 후 접속.
4. 새로만들기
새로만들기 -> 데이터베이스 파일 -> SQL 파일 |
자동커밋하는 법
도구 -> 환경설정 -> 데이터베이트 -> 객체뷰어 |
실행단축키
ctrl + enter
스크립트실행
F5
5. 테이블 생성하고 데이터 insert하기
1) 테이블생성
2) 데이터 insert
3) 생성된 테이블 조회
6. 테이블 구조확인 및 삭제
1) 테이블 구조확인은
desc table t_emp; |
2) 테이블 삭제
drop table t_emp; |
7. 테이블 재생성
1) 테이블 재생성
이런식으로 드래그한 후 ctrl + enter 해주어도 된다.
2) 테이블명 변경
rename t_emp to s_emp; --변경 select * from tab; |
변경되었다.
8. 테이블에 칼럼추가
1) 테이블 칼럼추가하기
hire_date라는 date형 칼럼을 추가할 것이다.
alter table s_emp add(hire_date date); |
hire_date라는 칼럼이 추가되었다.
2) null값인 칼럼에 데이터 추가하기.
date형에 날짜 데이터를 넣을 때는 String형으로 넣으면 된다.
'2019-07-18' |
2) 에러메시지 확인하기
일부러 전화번호의 값을 범위 이상으로 늘린 값을 넣어보려했다.
그랬더니 콘솔에
오류 보고 -
ORA-12899: value too large for column "JAVA0514"."S_EMP"."PHONE" (actual: 25, maximum: 15)
이런 메시지가 떴음.
앞으로 오류가 생기면 이런 메시지를 참고하여 오류를 수정하면 된다.
3) 컬럼의 자료형의 범위 변경하기
alter table s_emp modify (phone varchar2(20)); |
이렇게 phone필드의 varchar2를 (15)에서 (20)으로 변경하였다.
4) 컬럼 아이디 변경하기
alter table s_emp rename column id to t_id; |
5) 컬럼 삭제하기
dept_name이란 컬럼을 삭제해보았다.
alter table s_emp drop column dept_name; |
SQL Update 연습문제
연습문제 1) t_id가 100인 레코드의 입사일을 오늘 날짜로 수정
update s_emp set hire_date=sysdate where t_id=100; |
연습문제 2) t_id가 101인 레코드를 아래 데이터로 수정
입사일 2019-01-01, 이름 박인비
update s_emp set hire_date='2019-01-01' where t_id=101; update s_emp set name='박인비' where t_id=101; |
이렇게 해도 된다.
update s_emp set hire_date='2019-01-01',name='박인비' where t_id=101; |
연습문제 3) t_id가 102인 레코드를 아래 데이터로 수정
입사일 -> 2019-03-03, 급여 급여*1.1
update s_emp set hire_date='2019-03-03' where t_id=102; update s_emp set salary=salary*1.1 where t_id=102; |
역시 이렇게 하나로 묶어도 된다.
update s_emp set hire_date='2019-03-03',salary=salary*1.1 where t_id=102; |
결과값:
연습문제 4) t_id가 400인 레코드를 삭제하시오.
이렇게 5번째에 새로운 레코드가 생성되었다. 이것을 삭제하시오.
delete from s_emp where t_id=400; |
결과값:
SQL Alter 연습문제
s_emp 테이블에 대하여
1) email을 관리하기 위한 mailid컬럼을 10byte로 추가하시오.
alter table s_emp add(mailid varchar2(10)); |
맨 오른쪽에 mailid라는 컬럼이 생성되었다.
2) mailid컬럼을 20byte로 수정하시오.
alter table s_emp modify (mailid varchar2(20)); |
20byte로 수정되었다.
3) mailid컬럼명을 e_mail로 수정하시오.
alter table s_emp rename column mailid to e_mail; |
수정된 것을 확인할 수 있다.
4) s_emp 테이블명을 t_emp로 변경하시오.
rename s_emp to t_emp; |
테이블명이 변경되었다.
제약조건이란?
1. 정의
테이블의 해당 컬럼에 원치않는 데이터가 입력,변경,삭제되는 것을 방지하기 위해
테이블 생성 또는 변경시 설정하는 조건
2. 종류
Primary Key | 기본키, 유일성, null값을 인정하지 않는다. -> 테이블당 1개만 가능 |
Foreign Key | 외래키, 자식테이블이 부모테이블 컬럼을 참조 -> references 부모테이블(컬럼명) |
unique | 중복을 허용하지 않음. null값을 1번만 허용 -> 테이블에 1개 이상 가능 |
check | 특정 데이터만 입력가능. |
not null | 빈 값을 허용하지 않음. |
예) 주민번호 -> pk
이메일,핸드폰번호 -> unique
3. 제약조건을 반영한 테이블 생성하기
1) 제약조건 설정하기
create table c_emp( ,name VARCHAR2(25) constraint c_emp_name_nn not null ); |
2) 제약조건 이름검색하기
제약조건 목록확인 (데이터사전)
select * from user_constraints; |
from user_constraints;
from 뒤의 영역 테이블이라고 할 수 있다.
from user_constraints where table_name='DEPT';
from user_constraints where table_name='C_EMP';
3) 제약조건은 수정할 수 없고 삭제만 가능하다.
alter table c_emp drop constraint c_emp_name_nn; |
4) 제약조건 추가하기
alter table c_emp add constraint c_emp_name_un unique(name) |
-- not null 제약조건은 add로 할 수 없고 modify로 가능
alter table c_emp modify (name varchar(25) constraint c_emp_name_nn not null); |
새 테이블 생성 후
1) id 컬럼에 pk 제약조건 추가
alter table 테이블명 add constraint 제약조건이름 제약조건종류(필드명)
alter table c_emp add constraint c_emp_id_pk primary key(id); |
이 조건을 붙인 다음 데이터가 하나만 들어가진다.
'Backend' 카테고리의 다른 글
07월 22일 월 | SQL활용 03 - SQL연습문제 (0) | 2019.07.22 |
---|---|
07월 19일 금 | SQL활용 02 - SQL제약조건 (0) | 2019.07.19 |
06월 26일 금 | SW활용 10 - MongoDB 이클립스 연동하기 (1) | 2019.06.28 |
06월 26일 목 | SW활용 09 - MySQL로 DB연습, MongoDB (0) | 2019.06.27 |
06월 25일 수 | SW활용 08 - MySQL과 DB연습Ⅱ (0) | 2019.06.26 |
댓글