본문 바로가기
Data-driven Methodology/DataBase

[DataBase] MySQL 데이터베이스

by goatlab 2024. 5. 17.
728x90
반응형
SMALL

MySQL 접속

 

MySQL Workbench로 MySQL 서버를 실행하고 데이터베이스를 추가하기 위해 https://dev.mysql.com/doc/index-other.htm에서 샘플 데이터를 다운 받는다.

 

 

파일 메뉴에서 Open SQL Script를 선택 후 world.sql 파일을 연다. 그러면 쿼리가 실행되고 좌측 레이아웃에서 오른쪽 마우스 클릭 후 Refresh All 메뉴를 선택하면 World 데이터베이스가 나타난다.

 

 

실행하기 위한 쿼리문을 작성하기 위해 new SQL을 생성한다.

 

 

데이터베이스 선택 및 출력

 

# 데이터 베이스 선택
USE world;
# 현재 선택된 데이터베이스 출력
SELECT database();

 

SQL문의 종류 : DML / DDL / DCL

 

DML
(Data Manipulation Language)
  • 데이터 조작어
  • 데이터 검색, 삽입, 수정, 삭제등에 사용
  • SELECT, INSERT, UPDATE, DELETE
  • 트랜젝션이 발생하는 SQL문
DDL
(Data Definition Language)
  • 데이터 정의어
  • 데이터 베이스, 테이블, 뷰, 인덱스등의 데이터 베이스 개체를 생성, 삭제, 변경에 사용
  • CREATE, DROP, ALTER, TRUNCATE
  • 실행 즉시 DB에 적용
DCL
(Data Control Language)
  • 데이터 제어어
  • 사용자의 권한을 부여하거나 빼앗을때 사용
  • GRUNT, REVORKE, DENY

 

주석

 

--
  • 한줄 주석
  • --를 한 후에 반드시 한 칸을 띄어서 사용
/* */ 블럭 주석

 

SELECT

 

SELECT FROM은 데이터를 검색할때 사용되는 문법이다.

 

# SELECT <columns> FROM <table>
SELECT * FROM country;
SELECT Code, Name, Population FROM country;

# AS : alias
SELECT code, name AS country_name, population 
FROM country;

 

OPERATORS

 

SQL Query에서는 세가지 연산자의 사용이 가능하다. 연산자는 SELECT 절에서 숫자나 논리값들을 연산할 때와 컬럼과 컬럼을 연산하는 경우에도 사용이 가능하다.

 

+ 덧셈
- 뺄셈
* 곱셈
/ 나눗셈
% 나머지
div

 

산술 연산자

 

# Operator : 산술, 비교, 논리
# 산술연산자 : +, -, *, /, %
SELECT code, name, population, surfacearea
FROM country;

# 인구밀도 컬럼을 추가 : population / surfacearea
SELECT code, name, population, surfacearea
	   , population / surfacearea AS pps
FROM country;

# 국가코드, 국가이름, 인구수, GNP(총GNP), 1인당 GNP 출력
SELECT code, name, population, gnp, gnp / population * 1000 AS gpp
FROM country;

 

비교 연산자

 

결과가 True 이면 0을 출력, 결과가 False 이면 1을 출력한다.

 

= 같음
!= 같지 않음
>
< 작음
>= 크거나 같음
<= 작거나 같음
# 산술 : 데이터 + 데이터 = 데이터
# 비교 : 데이터 + 데이터 = 논리값 : 조건 1개
# 논리 : 논리값(비교연산) + 논리값(비교연산) = 논리값 : 조건 2개 이상

# 비교 연산자 : =, !=, >, <, >=, <=
SELECT code, name, continent
FROM country;

# Asia 대륙이면 1(True), 아니면 0(False) 출력하는 컬럼 추가
SELECT code, name, continent, continent = 'Asia' AS is_Asia
FROM country;

# 국가코드, 국가이름, 독립년도(indepyear), 독립년도가 1900년 이후이면 1, 아니면 0 출력 
SELECT code, name, indepyear, indepyear >= 1900 as upper_1900
FROM country;

 

논리 연산자

 

True와 False의 논리 값을 연산한다.

 

AND 둘 다 True이면 True
OR 둘 다 False이면 False 
# 논리연산자 : NOT, AND(T and T = T), OR(F or F = F)
# 아시아 대륙이면서 1900년도 이후에 독립한 국가를 1, 아니면 0으로 출력하는 컬럼 추가
# 조건 1 : 아시아 대륙
# 조건 2 : 1900년도 이후 독립 
SELECT code, name, continent, indepyear, continent = 'Asia', indepyear >= 1900
FROM country;

SELECT code, name, continent, indepyear
	   , continent = 'Asia' AS is_asia, indepyear >= 1900 AS upper_1900
       , (continent = 'Asia') AND (indepyear >= 1900) as is_asia_upper_1900
FROM country;

 

 

728x90
반응형
LIST