DataBase
트랜잭션이란 데이터베이스의 상태를 변화시키기 위해 수행하는 작업의 논리적 단위 데이터베이스의 상태를 변화시킨다는 말은 SELECT, INSERT, UPDATE, DELETE 등과 같은 쿼리를 사용하는 행동을 의미 의미 1. 트랜잭션은 데이터베이스에서 병행 제어 및 회복 작업 시 처리되는 작업의 논리적 단위 2. 사용자가 시스템에 대한 서비스 요구 시 시스템이 응답하기 위한 상태 변환 과정의 작업 단위 3. 하나의 트랜잭션은 Commit 되거나 Rollback 된다. 특징 트랜잭션의 4 가지 특징 원자성( Atomicity ), 일관성( Consitency ), 독립성( Isolation ), 지속성( Durability ) => ACID 1. 원자성 (Atomicity) 트랜잭션의 작업이 부분적으로 실행..
본문에서 다루는 MySQL 버전은 5.6 버전이며 5.7 버전부터 일부 변경 된 사항이 있음!!! 계정 생성) mysql -u root -p 를 입력하여 MySQL 에 접속 그 다음, 스키마를 mysql 로 변경하겠다. use mysql; 를 입력합니다. 지금부턴 SQL 질의문 이기 때문에 마지막에 세미콜론(;) 을 붙여야한다. mysql 스키마에 테이블 구성을 알아보겠습니다. show tables; 를 입력합니다. 여기서 계정에 관련 된 정보를 관리하는 테이블은 user 테이블 이다. select host, user, password from user; 를 입력하여 계정정보를 조회 ** MySQL 5.7 부터 user 테이블에 password 컬럼이 삭제되고 authentication_string 컬럼..
1. NULL값확인함수가 다르다. ORACLE에서는 NVL함수를 사용하지만 MYSQL에서는 IFNULL을 사용 (ORACLE) SELECT NVL(USER_ID,'') FROM KGON (MYSQL ) SELECT IFNULL(USER_ID,'') FROM KGON 2.현재날짜시간 확인하는 방법이 다르다. ORACLE에서는 SYSDATE를 사용하지만 MYSQL에서는 NOW()함수를 사용 (ORACLE) SELECT SYSDATE FROM DUAL; (MYSQL ) SELECT NOW() FROM DUAL; 3.날짜포멧 변환방법이 다르다. ORACLE에서는 날짜를 STRING으로 변경시 TO_CHAR()함수를 사용하지만 MYSQL에서는 DATE_FORMAT()함수를 사용 (ORACLE) SELECT TO_..
무결성 제약조건 테이블에 부적절한 자료가 입력(INSERT,UPDATE) 되는 것을 방지하기 위해서 테이블 생성할 때 각 컬럼에 대해서 정의하는 여러가지 규칙, (테이블 생성 후에도 규칙 정의 가능) NOT NULL 해당 컬럼값으로 NULL을 허용하지 않음 (행 단위) 입력시 데이터를 무조건 받음 유일하지 않고 반드시 입력, 수정해야 하는 컬럼에 설정 UNIQUE 테이블내에서 해달 컬럼값은 항상 유일무이한 값을 가질 것 중복을 허용하지 않음 중복데이터 방지, 하지만 NULL의 중복은 방지하지 못함. ADD NOT NULL은 불가능 => 테이블 내의 모든 컬럼은 특별한 설정(NOT NULL또는 PRIMARY KEY)을 하지 않았을 경우 NULL값이 기본 설정 PRIMARY KEY(기본키) 해당 컬럼값은 반..
import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; String DRIVER = "com.mysql.jdbc.Driver"; String URL = "jdbc:mysql://localhost:3306/databasename?useSSL=false"; String ID =""; String PW =""; Connection conn = null; try{ //1. 드라이버 로딩 : mysql 드라이버 로딩 Class.forName(DIRVER); //2. mysql과 연결시키기 conn = DriverManager.getConnection(URL, "ID", "PW"); System.out.print..
시퀀스(SEQUENCE) 오라클에서는 행을 구분하기 위해서 기본키(PK)를 두고 있다. 기본키는 중복된 값을 가질 수 있으므로 항상 유일한 값을 가져야 하고, 기본키가 유일한 값을 갖도록 사용자가 직접 값을 생성해내려면 불편하기 때문에 시퀀스를 사용 시퀀스는 테이블 내의 유일한 숫자를 자동으로 생성하는 자동번호 발생기이므로 시퀀스를 기본키로 사용하게 되면 사용자의 부담을 줄일 수 있다. 즉) -순차적으로 증가하는 값 -유일한 값으로 사용가능 -NUMBER 타입의 컬럼이 PK로 지정될때 시퀀스를 이용할수도 있습니다. -테이블과는 독립적인 구조 시퀸스를 사용하기 위한 조건) 서브 쿼리가 아닌 select문 insert문의 select절 insert 문의 value절 update문의 set 사용할 수 없는 경..
오라클 접속 코드 String DRIVER = "oracle.jdbc.driver.OracleDriver"; String URL = "jdbc:oracle:thin:@127.0.0.1:1521:XE; String ID = ""; String PW = ""; try{ Class.forName(DIRVER); Connection conn = DriverManager.getConnection(URL,ID,PW); } catch(ClassNotFoundException e) { System.err.println("로딩 실패"+e.getmesseage); } 현재는 교육용으로 11g XE버전을 사용하고 있어서 URL은 오라클에 따라 바뀔 수 있다.
LIKE 연산자 => 비교 '=' 대신 like => 특정 문자열에 대해서 일부분만 일치하는 경우를 찾아야 할 때 사용 구문 : where 필드이름 like 문자열패턴 -> 절대로 '='를 사용하지 않음 %검색어 => 검색어로 끝나는 것 찾는거 %검색어% => 검색어를 포함하는 것을 찾음 검색어% = 검색어로 시작하는 것을 찾음 _ _ _ => 3가지를 비교하겠다 (붙여서 사용하는것) _ _ _% '김'씨 성을 가진 학생 이름출력 하기 SQL> select name, address 2 from student 3 where name like '김%'; NAME ADDRESS -------------------- -------------------- 김광식 서울 김정현 서울 김현정 대전 김현정 대구 김우주 ..
SQL(Structured Query Language) : 표준 질의어로 관계형 질의언어 구조적 질의 언어(Structured Query Language)의 줄임말로 관계형 데이터베이스 시스템에서 자료를 관리 및 처리하기 위해서 설계된 언어 -> 1986년 ANSI와 ISO에서 표준 질의어로 채택 : 자연어와 유사하고 비절차적 언어 DDL(Data Definition Language) : 데이터 정의 언어 -> 데이터 저장 구조를 명시하는 언어 -> 테이블 스키마의 정의, 수정, 삭제 create // alter // drop // rename // truncate 분류 표준 SQL 오라클 설명 문자 char(n) char(n) 길이가 n byte 고정길이 문자열 (오라클경우 최대 2000byte ) v..