MySQL 제약조건
2021. 7. 7. 15:12
MySQL
제약조건 컬럼에 저장될 데이터의 조건을 설정하는 것을 제약조건이라고 한다. 제약 조건을 설정하면 조건에 위배되는 데이터는 저장할 수가 없으므로 데이터의 무결성을 보장할 수 있다. 데이터베이스 내의 테이블들은 여러 개발자가 사용할 수 있으므로 테이블을 만들 때 제약 조건을 설정하는 것은 매우 중요하다. - Primary key : 컬럼에 중복된 데이터를 저장할 수 없으며 null 값을 허용하지 않는다. 주로 각 로우를 구분하기 위한 유일한 값을 저장하는 컬럼에 사용한다. 기본키라고도 부른다. - Foreign key : 특정 테이블의 primary key 컬럼에 저장되어 있는 값만 저장할 수 있도록 한다. 흔히 참조키, 외래 키라고 부르며 지정된 테이블의 기본키 컬럼을 참조하여 참조하는 기본키 컬럼에 저장..
MySQL 트랜젝션 관리
2021. 7. 7. 14:02
MySQL
데이터베이스에서 데이터 처리의 한 단위를 트랜젝션이라고 부른다. 대부분의 데이터베이스는 데이터를 저장하고 수정하고 삭제하는 작업을 바로 물리적인 하드디스크에 저장된 데이터에 반영하지 않는다 이는 개발자의 실수로 잘못된 명령문을 입력하였을 경우를 대비해 다시 원래 상태로 되돌리기 위한 안전장치이다. 따라서 개발자가 커밋이라는 작업을 하기 전까지 입력한 명령문은 메모리에서만 동작하고 물리적인 하드디스크에 반영하지 않으며 커밋 작업이 발생하면 그때 하드디스크에 반영하게 된다. 개발자가 데이터에 대한 작업을 하기위해 입력하는 명령문들의 시작부터 커밋까지를 하나의 트랜젝션이라고 부른다. RollBack 데이터의 저장, 삭제, 수정 등의 작업을 하고 난 후 원래의 형태로 되돌리는 작업을 의미한다. 커밋이라는 작업을..
MySQL 저장 수정 삭제
2021. 7. 7. 13:21
MySQL
데이터 저장하기 INSERT 문을 활용하면 데이터를 저장할 수 있다. 이때, 로우 단위로 저장된다. INSERT INTO 테이블명 (컬럼명) VALUES (값) (컬럼을 지정해서 저장하고 싶을 때) INSERT INTO 테이블명 VALUES (값) (컬럼을 지정하지 않고 전체 컬럼에 저장하고 싶을 때) 컬럼에 저장될 값을 지정하지 않으면 null이 저장된다. 우선 테이블 형식을 확인한 다음 그에 맞는 VALUES를 넣어야 한다 예시로 든 test_table1 에는 data1은 int형, data2 는 varchar 형, data3 은 float형임을 DESC 구문을 통해 확인할 수 있다. -- 테이블 형식 확인하기 desc test_table1; -- 데이터 저장하기 insert into test_tab..
MySQL 데이터 베이스 및 테이블 생성
2021. 7. 7. 10:58
MySQL
데이터베이스 만들기 데이터베이스 생성은 CREATE DATABASE 구문을 사용한다. CREATE DATABASE 이름; 생성한 데이터베이스는 USE 문을 이용하여 선택해야 한다. UTF-8 인코딩 타입의 한글을 저장하려면 꼭 다음과 같이 언어 타입을 지정해주어야 한다. CREATE DATABASE 이름 CHARACTER SET = 'utf8' COLLATE = 'utf8_general_ci'; -- 데이터베이스 생성하기 create database test_db character set = 'utf8' collate = 'utf8_general_ci'; -- 데이터베이스 이용하기 use test_db; 테이블 만들기 데이터베이스를 선택한 후 CREATE TABLE 명령문을 이용해 테이블을 생성한다. C..
MySQL 서브쿼리(SUB QUERY)
2021. 7. 5. 16:46
MySQL
쿼리문 안에 쿼리문이 있는 것을 서브쿼리라고 부른다. 조건문 등을 만들 때 값을 직접 지정하지 못하고 쿼리문을 통해 구해와야 할 경우 서브쿼리를 통해 원하는 데이터를 가져올 수 있다 서브쿼리문은 조인으로 해결되는 경우도 많다 -- 현재 받는 급여의 평균보다 많이 받는 사원들의 사원번호, 급여액을 가져온다. select avg(salary) from salaries where to_date = '9999-01-01'; -- 필요한 조건 select emp_no, salary from salaries where salary > (select avg(salary) from salaries where to_date = '9999-01-01') and to_date = '9999-01-01'; 위의 식을 보면 우..