본문 바로가기

mysql

(12)
[Mysql] 데이터 정의어 (DDL) 1. 데이터 정의어(DDL) 이란 테이블을 생성, 삭제하거나 컬럼을 추가, 수정, 삭제할 때 사용하는 명령어입니다. 크게 CREATE, ALTER, DROP, TRUNCATE로 구분됩니다. 2. 데이터 정의어 명령어 정리 1) CREATE 데이터베이스 또는 테이블을 생성할 때 사용합니다. create database 데이터베이스명; show databases; use 데이터베이스명; create table 테이블명 ( 컬럼명 자료형 [제약조건 및 옵션], [키 제약조건 선언] ) CREATE TABLE department ( id INT(11) NOT NULL AUTO_INCREMENT, name VARCHAR(50) NULL DEFAULT NULL, PRIMARY KEY (id) ) create tab..
[Mysql] 조인 (JOIN) 이란? 1. JOIN 이란? 한개 또는 여러개의 테이블을 결합하는 연산을 의미합니다. JOIN의 종류는 다음과 같습니다. cross join inner join left outer join right outer join full outer join self join join을 설명하기 이전에 테스트로 사용될 테이블 부터 생성해 보겠습니다. CREATE TABLE `department` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `name` VARCHAR(50) NULL DEFAULT NULL, PRIMARY KEY (`id`) ) CREATE TABLE `employee` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `name` VARCHAR(100) NU..
[Mysql] distinct와 group by의 차이 1. 예제 테이블 및 데이터 CREATE TABLE `employee` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `name` VARCHAR(100) NULL DEFAULT NULL, `salary` INT(11) NULL DEFAULT NULL PRIMARY KEY (`id`) ) CREATE TABLE `access_log` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `access_dt` DATETIME NULL DEFAULT '', `emp_id` INT(11) NULL DEFAULT NULL, PRIMARY KEY (`id`), CONSTRAINT `fk_access_log_emp_id` FOREIGN KEY (`emp_id`) REFERE..
[Mysql] group by와 having 1. group by란? group by는 특정 컬럼을 기준으로 그룹화 하는 명령어입니다. 그룹화를 하면 집계함수를 이용해서 통계데이터(평균, 합계 등)을 구할 수 있습니다. select 컬럼 from 테이블명 where 조건 group by 그룹컬럼 [having 조건] 2. group by 예제 #예제 테이블 및 데이터 CREATE TABLE `department` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `name` VARCHAR(50) NULL DEFAULT NULL, PRIMARY KEY (`id`) ) CREATE TABLE `employee` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `name` VARCHAR(100) NULL DE..
[Mysql] group by 시 가장 큰 값을 가진 row 조회하기 DB 쿼리문을 작성 할 때, 특정 컬럼의 최대 값, 최소 값을 구해야할 경우가 있습니다. 최대 값, 최소 값을 구하기는 쉽지만, 최대, 최소 값을 가진 Row를 조회해야하는 경우 원하는 결과가 안나올 수 있습니다. 이때 사용할 수 있는 몇가지 방법을 알려드리겠습니다. (더 좋은 방법이 있다면 댓글로 남겨주세요!) 테이블 생성 및 데이터 삽입 쿼리입니다. CREATE TABLE `employee` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `name` VARCHAR(100) NULL DEFAULT NULL, `salary` INT(11) NULL DEFAULT NULL, `dept_id` INT(11) NULL DEFAULT NULL, PRIMARY KEY (`id`), IND..
[Mysql] delete join DELETE [alias, ...] FROM table_a AS a LEFT JOIN table_b AS b ON (b.id = a.b_id) WHERE [조건문] [alias, ...] 부분에 삭제할 테이블의 alias를 입력하면 된다. (ex: DELETE a, b ... 또는 DELETE b ...) table_a와 table_b가 참조 관계이고, 두 테이블의 행을 동시에 삭제할 경우 참조무결성 에러가 발생할 수 있다.
[Mysql] CASE WHEN Function(다중 조건문) 사용 방법 CASE WHEN Function은 다중 조건문을 사용하고 싶을 때, 사용하는 함수입니다. SELECT CASE WHEN a.view_count > 50 THEN 'comment 1' WHEN a.view_count = 50 THEN 'comment 2' ELSE 'else comment' END FROM board a; CASE 문은 WHEN의 조건을 순차적으로 체크하고 조건이 충족되면 THEN에 명시된 값을 반환합니다. 모든 조건이 만족되지 않으면 ELSE 값을 반환합니다. ELSE 부분이 없고 조건이 참이 아니면 NULL 값을 반환합니다.
[Mysql] 문자열 치환 함수 replace 1. Replace 함수란? 특정 문자열을 원하는 문자열로 변환하는 함수이다. replace(컬럼명, '기존문자열', '변경문자열') 2. 사용 방법 1) select replace함수 실행 결과 추출하기 SELECT replace(url, 'http://' ,'https://') FROM file_info; 2) update 'http://' 문자열이 포함된 컬럼을 'https://'로 변경 UPDATE file_info SET url = replace(url, 'http://' ,'https://');