반응형

SW/MySQL 39

MySQL : 트랜잭션, rollback, commit, save point, truncate : 개념, 사용 방법

트랜잭션 데이터 베이스에서 데이터 처리의 한 단위를 트랜잭션이라고 부릅니다. 대부분의 데이터 베이스는 데이터를 저장하고 수정하고 삭제하는 작업을 바로 물리적인 하드디스크에 저장된 데이터에 반영하지 않습니다. 개발자의 실수로 잘못된 명령문을 입력하였을 경우, 다시 원래 상태로 되돌리기 위한 안전장치입니다. 따라서 개발자가 커밋이라는 작업을 하기 전까지 입력한 명령문은 메모리에서만 동작합니다. 즉, 물리적인 하드디스크에 반영하지 않습니다. 커밋 작업이 발생하면 그떄 하드디스크에 반영하게 됩니다. 개발자가 데이터에 대한 작업을 하기 위해 입력하는 명령문들의 시작부터 커밋까지를 하나의 트랜젝션이라고 합니다. RollBack 데이터의 저장, 삭제, 수정 등의 작업을 하고 난 후 원래의 형태로 되돌리는 작업을 의미..

SW/MySQL 2020.01.30

MySQL : 시퀀스, limit : 사용방법, 예제

시퀀스 로우를 추가할떄, 자동으로 증가하는 값이 저장되는 것을 시퀀스라고 합니다. 시퀀스는 데이터베이스 마다 사용하는 방법이 다르므로 반드시 파악해야 합니다. mysql은 auto_increment 키워드를 설정해주면 됩니다. 데이터를 insert 할 때, auto_increment를 설정한 컬럼은 제외합니다. create table test_table100( data1 int auto_increment, data2 int not null, data3 int not null, constraint pk1 primary key(data1) ); limit select 해서 가져온 로우에서 원하는 범위의 로우만 가지고 올 때 사용합니다. 게시판 등에서 사용하는 페이징 기법을 구현할 떄 사용합니다. 데이터 베이..

SW/MySQL 2020.01.29

MySQL : 테이블, 컬럼 추가, 삭제, 수정, 변경 : 사용 방법, 예제

테이블 변경하기 존재하는 테이블의 이름, 속성 등을 변경할 수 있습니다. 테이블 이름 변경 rename table old_name to new_name table의 이름을 바꾸고 싶을 때 위와 같이 활용해, 이름을 바꿀 수 있습니다. 개발 도중에 이름을 바꾸는 것이 필요할 때 활용하면 됩니다. 컬럼 타입 변경 alter table table_name modify colum type 컬럼의 타입을 변경할 때 사용하는 명령어 입니다. 해당 방식으로 불필요한 메모리나 크기를 줄일 수 있습니다. 컬럼명 변경 alter table table_name change old_column new_column type 컬럼명을 변경할 때 사용하는 명령어입니다. 다만 type 역시 동일하게 적어주어야 합니다. 컬럼 추가 a..

SW/MySQL 2020.01.28

MySQL : 데이터 저장, 삭제, 수정 : 방법, 예제

데이터 저장하기 insert 문을 활용하면 데이터를 저장할 수 있습니다. 이 때, 로우 단위로 저장됩니다. insert into 테이블명 (컬럼명) values (값) insert into 테이블명 values (값) 컬럼에 저장될 값을 지정하지 않으면 null이 저장됩니다. 일반적으로 실수 하지 않도록, 컬럼명을 지정하고 값을 저장하는 것을 추천합니다. 데이터 수정하기 update 문을 활용하면 데이터를 수정할 수 있습니다. update 테이블명 set 컬럼명=값, 컬럼명=값 where 조건식 데이터 삭제하기 delete 문을 활용하면 데이터를 삭제할 수 있습니다. delete from 테이블명 where 조건식 만약 조건식이 없으면 해당 로우가 모두 삭제됩니다.

SW/MySQL 2020.01.27

MySQL : 데이터베이스, 테이블 생성 : 방법, 예제, 팁

데이터 베이스 만들기 데이터 베이스 생성은 create database 구문을 사용합니다. create database 이름 생성한 데이터베이스는 use 문을 이용하여 선택해야 합니다. utf-8 인코딩 타입의 한글을 저장하기 위해서는 언어 타입을 지정해주어야 합니다. create table 이름 character set = 'utf8' collate = 'utf8_general_ci'; 데이터 베이스를 선택한 후에는 create table 명령문을 이용해, 테이블을 생성합니다. create table 이름( 컬럼이름 자료형 제약조건, 컬럼이름 자료형 제약조건 ); 자료형 char(n) : 고정 길이 문자열 ( 최대 225 바이트) varchar(n) : 가변 길이 문자열 (최대 65535바이트) int..

SW/MySQL 2020.01.26

MySQL : 서브쿼리 : 조건문 : 사용방법, 예제

서브 쿼리 쿼리문 안에 쿼리문이 있는 것을 서브 쿼리라고 합니다. 조건문을 만들 떄 값을 직접 지정하지 못하고, 쿼리문을 통해 구해와야 할 경우가 있습니다. 이 떄 서브 쿼리를 통해 값을 구해와 조건문을 완성할 수 있습니다. 예제 # 현재 받는 급여와 평균보다 많이 받는 사원들의 사원 번호, 급여액을 가져옵니다. 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'; 평균을 가져오는 쿼리를 사용하여, 구하는 예제입니다. # d001 부서에 근무화고 있는 사원들의 사원 번호와 first_name을 가져옵니다. sel..

SW/MySQL 2020.01.25

MySQL : SET(집합 연산) : 합집합, 교집합, 차집합 : 사용방법, 예제

SET 두 select 문을 통해 얻어온 결과를 집합 연산을 통해 하나의 결과로 만드는 것을 set이라고 부릅니다. 합집합, 교집합, 차집합 등 집합 연산을 할 수 있습니다. 집합 연산을 하기 위해서는 두 select문을 통해 가져오는 컬럼이 같아야 합니다. 합집합 두 select 문의 결과를 모두 포함하는 최종 결과를 반환합니다. UNION 중복되는 데이터를 하나만 가져옵니다. UNION ALL 중복되는 데이터도 모두 가져옵니다. 교집합 두 select 문의 결과 중 중복되는 부분만 가져옵니다. 교집합은 join 문을 사용합니다. 차집합 두 select 문에서 중복되는 부분을 제거하고 첫 번째 select 문 결과만 가져옵니다. 차집합은 서브 쿼리를 이용합니다. 예제 select emp_no from ..

SW/MySQL 2020.01.24

MySQL : 그룹함수 : 카운트, 총합, 평균, 최대값, 최저값 : 예제, 사용방법

그룹 함수 조건에 맞는 로우의 컬럼에 대해 집계 값을 가져오는 함수입니다. COUNT(컬럼명) 가져온 로우의 개수를 반환합니다. SUM(컬럼명) 가져온 로우의 해당 컬럼에 저장된 값의 총합을 구합니다. AVG(컬럼명) 가져온 로우의 해당 컬럼에 저장된 값의 평균을 구합니다. MAX(컬럼명) 가져온 로우의 해당 컬럼에 저장된 값 중 최대 값을 가져옵니다. MIN(컬럼명) 가져온 로우의 해당 컬럼에 저장된 값 중 최소 값을 가져옵니다. 예제 # 남자 사원의 수를 구합니다. select count(*) from employees where gender = "M"; # d005 부서 현재 근무하고 있는 사원들의 수를 가져옵니다. select count(*) from dept_emp where dept_no = ..

SW/MySQL 2020.01.23

MySQL : 날짜 함수 : 형식, 날짜, 연산 방법 : 개요, 예제, 방법

날짜 함수 날짜에 대한 작업을 하는 함수들에 대해 알아보겠습니다. now(), sysdate(), current_timestamp() 현재 날짜와 시간을 반환합니다. curdate(), current_date() 현재 날짜를 반환합니다. curtime(), current_time() 현재 시간을 반환합니다. date_add(날짜, INTERVAL 기준값) 날짜에서 기준값 만큼 더합니다. (YEAR, MONTH, DAY, HOUR, MINUTE, SECOND) date_sub(날짜, INTERVAL 기준값) 날짜에서 기준값 만큼 뺴줍니다. (YEAR, MONTH, DAY, HOUR, MINUTE, SECOND) YEAR(날짜) 날짜의 연도를 가져옵니다. Month(날짜) 날짜의 월을 가져옵니다. MONTH..

SW/MySQL 2020.01.22

MySQL : 문자열 함수 : 합치기, 삽입, 교체, 찾기, 공백 제거, 소문자, 대문자, 거꾸로 : 사용방법, 예제

문자열 함수 컬럼에 저장되어 있는 문자열에 대한 작업을 할 수 있는 함수를 의미합니다. CONCAT(문자열1, 문자열2, ...) 문자열을 합칩니다. INSERT(문자열, 시작위치, 길이, 새로운 문자열) 문자열의 시작위치부터 길이 만큼의 문자열을 제거하고 그 자리에 새로운 문자열을 삽입합니다. REPLACE(문자열, 기존문자열, 새로운 문자열) 문자열에서 기존 문자열을 찾아 제거하고 그자리에 새로운 문자열을 삽입합니다. INSTR(문자열, 문자열2) 문자열1에서 문자열2를 찾아 위치를 반환합니다. 위치는 1부터 시작하며 문자열2를 찾지 못하면 0을 반환합니다. LEFT(문자열, 개수) 문자열의 좌측부터 개수만큼 가져옵니다. RIGHT(문자열, 개수) 문자열의 우측부터 개수만큼 가져옵니다. MID(문자열..

SW/MySQL 2020.01.21

MySQL : 숫자 함수 : 절대값, 올림, 내림, 반올림, 버림, 제곱, 나머지, 최대값, 최소값 : 사용법, 예제

숫자와 관련된 작업을 하는 함수에 대해 알아보도록 하겠습니다. ABS(숫자) : 절대값을 구합니다. CEIL(숫자) : 값보다 큰 정수 중 가장 작은 정수를 구합니다. 소수점 이하 올림을 의미합니다. FLOOR(숫자) : 값보다 작은 정수 중 가장 큰 정수를 구합니다. 소수점 이하 버림을 의미합니다. ROUND(숫자, 자릿수) : 자릿수를 기준으로 반올림합니다. TRUNCATE(숫자, 자릿수) : 자릿수를 기준으로 버림합니다. POW(X, Y) , POWER(X, Y) : X의 Y승을 의미합니다. MOD(분자, 분모) : 분자를 분모로 나눈 나머지를 구합니다. GREATEST(숫자1, 숫자2, ...) : 주어진 숫자 중에 가장 큰 값을 반환합니다. LEAST(숫자1, 숫자2, ...) : 주어진 숫자 ..

SW/MySQL 2020.01.20

MySQL : 정렬 : order by : 사용법, 기능, 개념

정렬 데이터를 가져올 떄 오 찬수 혹은 내림 차순으로 정렬하여 가져올 수 있습니다. order by 컬럼명 asc : 오름 차순으로 정렬합니다. asc는 생략 가능합니다. order by 컬럼명 desc : 내림 차순으로 정렬합니다. 정렬 기준은 숫자, 문자열, 날짜 모든 컬럼이 가능합니다. 예제 # 사원의 번화와 급여를 가져옵니다. select emp_no, salary from salaries order by salary asc; select emp_no, salary from salaries order by salary; # 사원의 번호와 급여를 가져옵니다. 급여를 기준으로 내림 차순 정렬합니다. select emp_no, salary from salaries order by salary desc;..

SW/MySQL 2020.01.17

MySQL : like 연산자 : 문자열 검색 :사용방법, 예제

like 조건식을 만들어 줄때 문자열과 비교 시 사용합니다. 문자열 값을 비교할 때, =을 이용하면 지정된 문자열이 저장되어 있는 로우를 가져올 수 있습니다. like는 더욱 확장해서 조건을 만들 때 사용하는 것입니다. like는 와일드 카드라는 개념을 사용합니다. 와일드 카드는 모든 글자를 의미하는 특수 기호입니다. _ : 글자 하나를 의미합니다. % : 글자 수와 상관없이 모든 글자를 의미합니다. 사용 예제 # 이름이 Tommaso 사원의 사원번호, 이름을 가져옵니다. select emp_no, first_name from employees where first_name = 'Tommaso'; # 이름이 A로 시작하는 사원의 사원번호, 이름을 가져옵니다. select emp_no, first_name..

SW/MySQL 2020.01.11

MySQL : 논리 연산자 : and, or, not, between, in : 사용법, 예제

논리 연산자 두개 이상의 조건문을 작성할 떄 사용하는 연산자입니다. and : 양쪽 조건을 모두 만족해야 합니다 or : 양쪽 조건 중 하나만 만족해도 됩니다. not : 조건의 결과를 반대로 부정합니다. # d001 부서의 매니저 중에서 1990년 이후 부터 매니저인 사원의 사원 번호, # 부서 번호, 매니저, 시작날짜를 가져온다. select emp_no, dept_no, from_date from dept_manager where dept_no = 'd001' and from_date >= '1990-01-01'; # 1990년 이후에 입사한 남자 사원의 사원 번호, 성별, 입사일을 가져온다. select emp_no, gender, hire_date from employees where hire_..

SW/MySQL 2020.01.10

MySQL : where, 조건 연산자 : 사용방법, 예제

조건 사용하기 select구문에 where 절을 사용하면 조건을 설정할 수 있습니다. 컬럼에 저장되어 있는 데이터를 기준으로 검색합니다. 그러면 원하는 데이터만 가져올 수 있습니다. 조건 연산자 조건식을 만들 때 사용하는 연산자는 아래와 같습니다. = : 같다 > : 크다 = : 크거나 같다 150000; 위와 같이 범위를 활용하여서 해당 값들을 가져올 수 있습니다. 해당 쿼리는 급여가 15만 이상인 사람들의 사원 번호를 검색하는 쿼리입니다. 날짜 데이터 날짜 데이터를 조건절로 사용할 떄도 비교 연산자를 이용하면 됩니다. select emp_no, hire_date, last_name, first_name from employees where hire_date >= '1986-01-01' ..

SW/MySQL 2020.01.09

MySQL : 기본 연산자, 중복 제거 : 예제, 방법, 사용법

기본 연산자 사용하기 MySQL에서는 연산자를 사용할 수 있습니다. +, -, *, / 모두 가능합니다. select 20 + 10, 20 - 10, 20 * 10, 20 / 10; 위와 같이 연산 값이 나오는 것을 확인할 수 있습니다. select salary, salary + 1000, salary - 1000, salary * 1000, salary / 1000 from salaries; 컬럼 값에 숫자를 넣어 위와 같이 조정 가능합니다. 주의할 점은 문자열에 산술연산자를 사용한다면, 문자열 값은 0으로 생각하고 연산을 진행합니다. distinct 연산자 중복을 제거하는 연산자입니다. 즉, 가져온 결과에서 중복을 제거하는 것입니다. select distinct 컬럼명 from 테이블명 select ..

SW/MySQL 2020.01.09

MySQL : select 기본 문법, 예제, 사용법

테이블의 모든 정보 가져오기 selct * from 테이블 이름 select * from employees; employeses의 모든 사원 정보를 가져올 경우 다음과 같이 선언합니다. 일부 컬럼만 가져오기 select 컬럼명1, 컬럼명2 from 테이블명 select emp_no, first_name, last_name from employees 사원의 정보 중 번호, 이름만 가져올 경우 다음과 같이 선언합니다. *를 선언하기보다는 직접 컬럼명을 선언해주는 습관을 들이면 좋다고 합니다. 그 이유는, 작성한 쿼리에서 어떤 정보를 얻고 싶은 지, 나중에 보아도 알 수 있기 떄문입니다.

SW/MySQL 2020.01.08

MySQL : 데이터 베이스, 테이블 정보 조회 명령어 : 예시

데이터 베이스 조회하기 show databases; 로그인한 계정으로 사용가능한 데이터 베이스의 목록을 조회할 수 있습니다. 데이터 베이스 사용하기 use 데이터베이스 이름; 사용할 데이터 베이스를 선택하는 명령어입니다. 테이블 조회 show tables; 선택된 데이터 베이스 내의 테이블을 조회하는 명령어입니다. 테이블 정보 조회 desc 테이블 이름; 지정된 테이블의 컬럼명, 자료형 등의 정보를 조회하는 명령어입니다.

SW/MySQL 2020.01.05

MySQL : 데이터베이스 정의, 기능, 특징, 장점

데이터베이스 정의, 기능 여러 사람들이 공유하고 사요할 목적으로 통한 관리되는 정보의 집합을 의미합니다. 즉, 논리적으로 연관된 하나 이상의 자료의 모음입니다. 그 내용을 고도로 구조화합니다. 따라서 검색과 갱신의 효율화를 얻어냅니다. 몇개의 자료를 조직적으로 통합합니다. 자료 항목의 중복을 없애고 자료를 구조화합니다. 그리고 기억 시켜 놓은 자료의 집합체를 의미합니다. 공동 자료로서, 같은 데이터라 할지라도 각자의 응용 목적에 따라, 다르게 사용할 수 있습니다. 데이터베이스 특징 데이터 베이스는 실시간 접근성을 가지고 있습니다. 또한, 지속적으로 변화할 수 있습니다. 또 여러 사람과 동시에 공유할 수 있습니다. 내용에 의한 참조가 가능하며, 데이터가 논리적으로 독립성을 가지는 특징이 있습니다. 데이터베..

SW/MySQL 2020.01.04
반응형