DB/SQL - Oracle 29

[SQL] DML(데이터 조작어) - select

SQL 종류 1. 데이터를 정의하는 쿼리 - DDL(데이터 정의어) : create, drop, alter, truncate 2. 데이터를 조작하는 쿼리 - DML(데이터 조작어) : insert, select, update, delete 3. 데이터를 제어하는 쿼리 - DCL(데이터 제어어) : grant, revoke 4. 트랜잭션 제어하는 쿼리 - TCL(트랜잭션 제어어) : commit, rollback, checkpoint 튜플 조회 명령어 : select select은 테이블에서 특정한 혹은 전체 튜플을 조회할 때 사용한다. select * from member; - member 테이블의 모든 튜플 조회 특정 튜플을 조회할 때는 구체적으로 어떤 튜플을 조회할 지 지정해줘야 하므로 입력할 내용이..

DB/SQL - Oracle 2024.02.02

[SQL] TCL(트랜잭션 제어어) - commit, rollback, checkpoint(=savepoint)

SQL 종류 1. 데이터를 정의하는 쿼리 - DDL(데이터 정의어) : create, drop, alter, truncate 2. 데이터를 조작하는 쿼리 - DML(데이터 조작어) : insert, select, update, delete 3. 데이터를 제어하는 쿼리 - DCL(데이터 제어어) : grant, revoke 4. 트랜잭션 제어하는 쿼리 - TCL(트랜잭션 제어어) : commit, rollback, checkpoint ​ 데이터 조작 후에는 트랜잭션 처리*를 위해 반드시 commit이나 rollback을 해야 한다. TCL ? : 트랜잭션 제어어(Transaction Control Language) 트랜잭션을 제어한다는 것은 트랜잭션의 결과를 수용하거나 취소하는 것을 말한다. (비교적 자주..

DB/SQL - Oracle 2024.02.02

[SQL] DML(데이터 조작어) - insert, update, delete

SQL을 접하게 되면 흔히 듣는 단어가 있다. 바로 'CRUD'이다! (다소 짧은 인트로.. 하지만 개발을 하게 되면 정말 자주 쓰게 되는 용어이다. 자주 쓴다는 건 그만큼 중요하다는 의미일 것이다.) 여기서 CRUD 란, Create Read Update Delete 의 앞글자를 조합한 단어이다. 클라이언트가 요청한 대로 데이터를 생성, 조회, 수정, 삭제하는 것을 말한다. 오늘은 그 중에서도 CRUD와 밀접한 관련이 있는 데이터 조작어(DML)에 대해 다뤄보겠다. select의 경우는 다룰 내용이 좀 더 있어서 다른 글에 정리해보려 한다. SQL 종류 1. 데이터를 정의하는 쿼리 - DDL(데이터 정의어) : create, drop, alter, truncate 2. 데이터를 조작하는 쿼리 - DML..

DB/SQL - Oracle 2024.02.02

[SQL] DDL(데이터 정의어) - create, drop

오늘은 데이터 정의어(DDL)를 살펴보고 create 의 예로 테이블 생성에 대해, drop의 예로 테이블 삭제에 대한 예시와 함께 익혀보고자 한다. *** 참고로 SQL Developer에서 작업을 한다면 명령어를 실행할 때는 해당 명령어 뒤에 ;를 붙이고 그 라인에 마우스 커서를 둔 상태에서 Ctrl+Enter를 입력한다. SQL 종류 1. 데이터를 정의하는 쿼리 - DDL(데이터 정의어) : create, drop, alter, truncate 2. 데이터를 조작하는 쿼리 - DML(데이터 조작어) : insert, select, update, delete 3. 데이터를 제어하는 쿼리 - DCL(데이터 제어어) : grant, revoke 4. 트랜잭션 제어하는 쿼리 - TCL(트랜잭션 제어어) :..

DB/SQL - Oracle 2024.02.02

[SQL] 이상현상(Anomaly) + 키 예제

이번에는 예제를 통해 키에 대해 좀 더 상세히 알아보고, 이상현상에 대해 자세히 다뤄보고자 한다. * 이전에 키에 대해 정리한 글은 아래 링크를 확인해주세요. https://bio-logisch.tistory.com/14 [SQL] 데이터베이스 제약조건 "키" - 기본키, 외래키, 슈퍼키, 후보키, 대체키 키에 대해 이해하려면 먼저 유일성과 최소성이라는 단어를 이해해야 한다. 유일성은 중복값 없이 단 하나만 존재한다는 의미이다. 하나의 키값만으로도 하나의 튜플을 식별할 수 있어야 한다. bio-logisch.tistory.com 예제 1 ​- 키의 조합 : ​아이디, 이름, 비밀번호, 나이, 등급, 가입날짜 모두 가능하다. (키의 조합은 각 컬럼 하나가 될 수도 있고 키가 될 수 있는 여러가지 조합 모두..

DB/SQL - Oracle 2024.02.01

[SQL] 데이터베이스 제약조건 "키" - 기본키, 외래키, 슈퍼키, 후보키, 대체키

키에 대해 이해하려면 먼저 유일성과 최소성이라는 단어를 이해해야 한다. 유일성은 중복값 없이 단 하나만 존재한다는 의미이다. 하나의 키값만으로도 하나의 튜플을 식별할 수 있어야 한다. 예를 들어 아이디 aaa를 찾아보라고 했을 때 딱 하나의 튜플이 나오면 유일성을 만족하고, ​이름이 홍길동인 사람을 찾아보라고 했을 때 여러 튜플이 해당되면 유일성을 만족하지 못한다. 하지만 아이디와 이름을 조합하여 슈퍼키로 만들면 유일성에 해당된다. 아이디가 유일성을 이미 만족하기 때문이다. ​ 최소성은 키의 조합에서 유일성을 만족하기 위해 불필요한 속성이 없어야 한다는 것을 말한다. 키를 조합할 경우 유일성을 만족하지 않은 속성을 포함하고 있다면 최소성에 부합하지 않는다. 예를 들어 회원가입을 할 때 해당 회원의 아이디..

DB/SQL - Oracle 2024.02.01

[SQL] 데이터 무결성의 종류 - 도메인, 개체, 참조 무결성

데이터 무결성이란, 저장된 데이터의 신뢰성을 의미한다. 데이터베이스에 저장된 데이터값과 그것이 표현하는 현실 세계의 실제값이 일치하는지, 그 정확성을 의미하는데 무결성의 종류는 도메인무결성, 개체무결성, 참조무결성이 있다. ​ 1) 도메인무결성 - 속성, 제약조건과 관련 특정 속성의 값이 그 속성이 정의된 도메인에 속한 값이어야 한다는 규정 ​ 예) 학점 varchar2(1) check (학점 in ('A','B','C','D','F')), insert 할 때 'E'는 들어갈 수 없음 - check에 위배 insert 할 때 'AA'는 들어갈 수 없음 - varchar2(1)에 위배 (한 글자만 들어갈 수 있음) ​​ 2) 개체무결성 - 기본키와 관련 릴레이션의 기본키를 구성하는 어떤 속성도 null 일..

DB/SQL - Oracle 2024.02.01

[SQL] SQL과 RDBMS (관계형 DBMS), DBMS 유형 정리

SQL(Structured Query Language)은 "구조화된 질의 언어"라는 의미를 가진다. 관계형 데이터베이스에서 데이터를 관리하고 처리하기 위한 표준화된 언어를 말한다. SQL은 데이터베이스 시스템에 쿼리를 전달하여 데이터를 조회, 삽입, 수정, 삭제하는 등의 작업을 수행한다. 1980년대 후반 국제표준화기구(ISO)와 미국국립표준협회(ANSI)에서 RDBMS의 표준 언어로 SQL을 채택했다. 표준이란 의미는 '표준' SQL 구문만 학습하면 Oracle은 물론 MSSQL, DB2 등 여러 DBMS에서 동일하게 사용할 수 있다는 의미이다. 물론 각각의 DBMS별로 차이점을 가지고 있지만 다른 프로그래밍 언어에 비해 그 차이는 적은 편이기 때문에 SQL을 한 번만 학습하면 DBMS에 구애되지 않고..

DB/SQL - Oracle 2024.01.28

[SQL] 문자(열) 데이터 타입 - char, varchar, varchar2

char, varchar, varchar2는 데이터베이스에서 문자(열)을 저장하는 데 사용되는 데이터 속성이다. 문자형 데이터라고도 말한다. 세 가지 모두 ANSI SQL 표준에 따라 정의된 데이터 유형으로 주로 SQL 데이터베이스 시스템에서 사용된다. 문자(열) 데이터 타입에는 위 3가지 말고도 nchar, nvarchar2, long이 있는데 자주 사용하지 않으므로 이번 글에서는 생략하고자 한다. 먼저 알아둘 점은 한글은 한 글자당 2byte, 영문과 숫자는 한 글자당 1byte를 차지한다는 점이다. (참고로 UTF-8에서 한글은 한 글자당 3byte를 차지한다.) 문자열을 DB에 저장할 때는 위 3가지의 속성의 특징과 더불어 정의된 필드에 최대 몇 바이트까지 저장 가능하도록 정의하는 것이 적절한지 ..

DB/SQL - Oracle 2024.01.21