* DBMS (DataBase Management System)
- 데이터베이스 관리 시스템
- 데이터베이스를 관리하기 위한 소프트웨어 패키지
- Oracle, mySQL, MS SQL...와 같은 것을 DBMS라고 함
* 데이터베이스
- 데이터의 관리를 위해 데이터를 모아둔 것
- 정보에 쉽게 접근 가능하게 해줌 (CRUD 가능)
* 테이블
- 데이터베이스에서 정보를 저장하고 관리하기 위한 곳
- ROW(행, 레코드) : 한 줄, 한 쌍의 정보들 ex) hong, 1234, 홍길동, 서울...
- COLUMN(열, 컬럼) : 정보를 구성하는 개별적인 항목의 이름 ex) 아이디, 패스워드, 이름, 주소...
* SQL (Structured Query Language)
- 질의 언어를 활용하여 데이터베이스에 저장된 데이터를 조회, 입력, 수정, 삭제하는 작업
1. 테이블 생성 CREATE TABLE
create table 테이블명
(컬럼명 컬럼타입,
컬럼명 컬럽타입, ... )
create table member (
name varchar2(10),
userid varchar2(10),
pwd varchar2(10),
email varchar2(20),
phone char(13),
admin number(1) default 0,
primary key(userid));
* 컬럼 타입의 종류
- number : 수치 데이터
- char(n) : 고정된 글자 (주민번호, 우편번호)
- varchar2(n) : 가변형 글자 (주소, 이메일)
- date : 날짜 데이터
* Primary Key
- 데이터 무결성 제약 조건 중 하나
-> 테이블에 부적절한 자료가 입력되는 것을 방지하기 위해서 테이블을 생성할 때 각 컬럼에 지정하는 것
- 주로 id 컬럼에 지정하여 다른 정보들과 유일하게 구분이 가능하게 해줌
- 컬럼에 null 값이나 중복된 데이터를 저장하지 못하게 하여 다른 회원과 구분 가능
2. 테이블에 레코드 추가 INSERT
insert into 테이블명 [(컬럼명1, 컬럼명2, ...)] values
(DATA1, DATA2, .....)
insert into member values
('이소미', 'somi', '1234', 'gmd@naver.com', '010-2362-5157', 0);
// 바인딩 변수를 이용할 때 (시퀀스, Date 어떻게 넣는지 확인)
insert into member values
(MEMBER_SEQ.nextval, ?, ?, ?, sysdate)
- value 값은 컬럼 순서와 동일하게 입력
- 데이터 타입이 문자(char, varchar)와 날짜(date)일 경우 ' ' (작은따옴표) 안에 기술
- 오라클에서는 데이터를 추가하면 메모리 상에만 추가됨
따라서, 데이터를 영구적으로 저장하지 않으려면 rollback; 명령어 실행
영구적으로 저장하려면 commit; 명령어 실행
3. 데이터를 조회하는 SELECT
select 조회하고자 하는 컬럼명
from 조회하고자 하는 테이블명
where 조건
order by 컬럼명 [asc | desc];
select * from member; // member 테이블의 모든 정보
select * from member where userid = 'somi'; // userid = somi인 멤버의 모든 정보
select name from member where userid = 'somi'; // userid = somi인 멤버의 name 정보
4. 데이터를 변경하는 UPDATE
update 테이블명 set 컬럼명1 = 컬럼값1, 컬럼명2 = 컬럼값2, ...
where 조건
// member 테이블에서 userid = somi인 멤버 phone 정보를 변경
update member set phone = '010-5555-7777'
where userid = 'somi';
// 바인딩 변수 활용법
update MEMBER set PW = ?, NAME = ? where ID = ?
update 구문에서 where절을 생략하면 모든 데이터가 변경되므로, 꼭! where절 넣어주기
5. 레코드를 삭제하는 DELETE
delete 테이블명
where 조건
// member 테이블에서
// userid가 'somi'인 멤버 삭제
delete from member where userid = 'somi';
// member 테이블에서
// email이 'dblee'이고 password가 '1234'인 멤버 삭제
delete from member where email = 'dblee' and password = '1234';
delete 구문에서 where절을 생략하면 모든 데이터가 삭제되므로, 꼭! where절 넣어주기
조건이 여러 개 붙을 때는 and 사용!!
자주 헷갈리는 SQL 문법 정리
// WHERE: AND, OR, NOT 모두 사용 가능
WHERE A AND B AND C;
WHERE A OR B;
WHERE NOT A;
// ORDER BY: DESC(내림차순-거꾸로 출력), ASC(오름차순-순서대로 출력)
ORDER BY SEQ DESC|ASC;
// 테이블 생성
CREATE TABLE Persons (
PersonID int,
LastName varchar(255),
FirstName varchar(255),
Address varchar(255),
City varchar(255)
);
// NOT NULL 조건 추가
CREATE TABLE Persons (
ID int NOT NULL, // 데이터 타입 바로 뒤에
LastName varchar(255) NOT NULL,
FirstName varchar(255) NOT NULL,
Age int
);
// UNIQUE 조건 추가1 (한 개일 때)
CREATE TABLE Persons (
ID int NOT NULL UNIQUE, // 이렇게) 컬럼명 + 데이터타입 + NOT NULL + UNIQUE
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int
);
// UNIQUE 조건 추가2 (여러 개일 때)
CREATE TABLE Persons (
ID int NOT NULL, // UNIQUE
LastName varchar(255) NOT NULL, // UNIQUE
FirstName varchar(255),
Age int,
CONSTRAINT UC_Person UNIQUE (ID,LastName)
// CONSTRAINT 제약조건이름 UNIQUE (원하는 컬럼명들)
);
// PRIMARY KEY 설정
CREATE TABLE Persons (
ID int NOT NULL PRIMARY KEY, // 이렇게
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int
);
// FOREIGN KEY 확인 필요
'DATABASE' 카테고리의 다른 글
컬럼 데이터 타입 및 길이 변경 (0) | 2020.09.23 |
---|---|
[Oracle] 시퀀스 설정 (0) | 2020.09.23 |
오라클 데이터 타입 (0) | 2020.09.23 |
Oracle 설치 - Scott 계정 / 새로운 계정 생성 + 권한 부여, 커넥션 (0) | 2020.08.27 |
Oracle 설치 - Docker / oracle-xe-11g / SQLDeveloper (0) | 2020.08.27 |