MySQL 8

MYSQL - CAST/ CONVERT 데이터 형 변환

타입변환 Cast / Convert Cast함수와 Convert함수를 이용하면 기존 있던 데이터를 다른 데이터 타입으로 형변환이 가능해진다. - CAST 함수 형식 CAST(데이터 AS 데이터 타입) - CONVERT 함수 형식 CONVERT(데이터, 데이터 타입) 데이터 타입 BINARY BINARY로 변환 CHAR 문자열로 변환 DATE yyyy-mm-dd의 date로 변환 DATATIME yyyy-mm-dd hh:mm:ss의 datetime으로 변환 DECIMAL 최대자리수와 소수점 이하 자릿수를 지정하여 decimal형으로 변환 SIGNED 값을 부호가 있는 64비트 정수로 변환 UNSIGNED 값을 부호가 없는 64비트 정수로 변환 TIME 값을 hh:mm:ss의 time으로 변환 사용할 수 있..

sql 2023.01.13

MYSQL - UNION/GROUP BY/HAVING/DISTINCT

UNION SELECT department_id, count(*) FROM employees WHERE department_id = 90 UNION SELECT department_id, count(*) FROM employees WHERE department_id = 60 UNION SELECT department_id, count(*) FROM employees WHERE department_id = 70; UNION연산자는 여러 테이블에 존재하는 같은 성격의 값을 한번의 쿼리로 추출할 수 있도록 도와줘서 한번에 값을 같이 보고싶을 때 사용한다. 주의 할 점은 대응하는 필드의 이름과 타입이 같아야 하기 때문에 필드의 이름은 AS를 사용해서 같은 값을 갖게 만든다. 위의 예시는 UNION 동작하는 것을..

sql 2023.01.12

MYSQL - 서브쿼리(Subquery)

서브쿼리(Subquery) 서브쿼리란 하나의 SQL문에 포함되어 있는 또 다른 SQL문을 의미한다. 서브쿼리는 다음과 같이 괄호()로 감싸져서 표현된다. -- IT로 시작하는 부서를 조회 SELECT department_id FROM departments WHERE department_name LIKE 'IT%'; -- 위 부서에서 일하는 직원들 조회 SELECT * FROM employees WHERE department_id IN (60,210,230); -- 위 두개 합치기 SELECT * FROM employees WHERE department_id IN (SELECT department_id FROM departments WHERE department_name LIKE 'IT%'); employ..

sql 2023.01.12

MYSQL - 합/평균/최대값/최솟값

필드 연산값 조회 -- 합 select sum(salary) from employees; -- 모든 직원의 연봉의 평균 select avg(salary) from employees; -- 연봉의 최대값 select max(salary) from employees; -- 연봉의 최솟값 select min(salary) from employees; -- 연봉의 최대값 - 최소값 select max(salary)- min(salary) from employees; -- 전화번호가 515로 시작하는 직원 수는? select count(*) from employees where PHONE_NUMBER like '515%'; 테이블을 조회하면서 필드 값의 합이나 평균, 최대값이나 최솟값을 조회하고 싶을 때가 있을 ..

sql 2023.01.12

MYSQL - 테이블 생성/삭제/수정

테이블 생성/삭제 -- 테이블 생성 CREATE table if not exists person( id INT PRIMARY KEY AUTO_INCREMENT, -- AUTO키 설정 name VARCHAR(10), -- 이름(가변길이 제한 10) age INT -- 나이(정수형) ); -- table 전체 없애기 DROP table person; CREATE문을 사용해서 테이블을 생성할 수 있고 필드의 이름과 datatype을 지정해줄 수 있다. 또한 기본키(primary key)를 지정해줄 수 있는데 이는 레코드를 유일하게 식별할 수 있도록 하는 컬럼이다. 그렇기 때문에 null값이 들어갈 수 없으며 unique한 값이어야 한다. 기본키는 직접 값을 입력할 수도 있고 AUTO_INCREMENT 값을 주..

sql 2023.01.12

MYSQL - ORDER BY/ LIKE 연산자

정렬 ORDER BY SELECT code, name, population FROM country WHERE Population 0 ORDER BY Population desc; -- lifeexpectancy 오름차순으로 조회 SELECT name, LifeExpectancy FROM country WHERE LifeExpectancy is not null ORDER BY LifeExpectancy; -- name, population, surfacearea, population/ surfacearea 연구밀도의 내림차순 SELECT name, population, surfacearea, population/surfacearea as "인구밀도" FROM country ORDER BY 인구밀도 desc..

sql 2023.01.11

MYSQL - SELECT/WHERE/AS문

조회문 SELECT SELECT * FROM country; -- country 테이블에서 Code 열, GNP열 조회 SELECT Code,GNP FROM country; select문을 이용하여 원하는테이블에서 값을 가져올 수 있다. "SELECT * FROM 테이블명"을 사용하면 테이블이 가지고 있는 모든 필드의 값을 가지고 오며 " * " 대신 필드명을 입력하면 그 필드명만 조회할 수 있다. 조건문 WHERE SELECT * FROM country WHERE name = 'South Korea'; -- name값이 south korea, japan, china 중 하나이면 조회 SELECT * FROM country WHERE name = 'South Korea' or name = 'Japan' ..

sql 2023.01.11