DML (Data Manipulation Language)

 

SELECT / INSERT, UPDATE, DELETE

 

SELECT DB에 들어있는 데이터를 조회, 검색
INSERT DB의 테이블에 데이터 삽입 
UPDATE DB 데이터 수정
DELETE DB의 원치않는 데이터 삭제

 

 

1. SELECT

SELECT 조회하고 싶은 컬럼명 FROM 테이블명

 

 

2. INSERT

행(column) 단위 데이터 삽입

INSERT INTO 테이블명 (column 명) VALUES (각 column에 삽입할 value)

테이블 전체에 데이터 삽입

 

  • DESC 테이블명
  • 테이블의 각 column에 대한 데이터 타입을 확인할 수 있는 명령어

사용예시)

INSERT INTO Salary (Id, name, salary, date) VALUES ('1', 'A', '500', '2020-07-10')
INSERT INTO Salary (Id, name, salary, date) VALUES ('2', 'B', '900', '2020-07-11')

 

 

3. UPDATE 

UPDATE 테이블명 SET column = value

 

 

4. DELETE

DELETE FROM 테이블명

 

조건에 맞는 행(row) 삭제

DELETE FROM 테이블명 WHERE 조건식

 

 

 


 

LEEDCODE

문제 풀이는 더보기 클릭

 

627 Swap Salary - https://leetcode.com/problems/swap-salary/submissions/

더보기
UPDATE salary
SET sex = CASE
		WHEN sex = 'f' THEN 'm'
		WHEN sex = 'm' THEN 'f'
		ELSE 'Other'
	END

 

 


 

< 기초 SQL 시리즈 >

 

2020/07/14 - [Database/SQL] - [백문이불여일타] 데이터 분석을 위한 기초 SQL - 1부

2020/07/14 - [Database/SQL] - [백문이불여일타] 데이터 분석을 위한 기초 SQL - 2부

2020/07/14 - [Database/SQL] - [백문이불여일타] 데이터 분석을 위한 기초 SQL - 3부 完

 

< 중급 SQL 시리즈 >

 

2020/07/15 - [Database/SQL] - [백문이불여일타] 데이터 분석을 위한 중급 SQL - 1부

2020/07/15 - [Database/SQL] - [백문이불여일타] 데이터 분석을 위한 중급 SQL - 2부

2020/07/16 - [Database/SQL] - [백문이불여일타] 데이터 분석을 위한 중급 SQL - 3부

2020/07/16 - [Database/SQL] - [백문이불여일타] 데이터 분석을 위한 중급 SQL - 4부 完

 

 

 

이 포스팅은 해당 강좌를 수강하며 작성하였습니다.

https://www.inflearn.com/course/%EB%8D%B0%EC%9D%B4%ED%84%B0-%EB%B6%84%EC%84%9D-%EA%B3%A0%EA%B8%89-SQL/dashboard

 

[백문이불여일타] 데이터 분석을 위한 고급 SQL - 인프런

SQL 고급 이론을 배우고, 실습 문제를 함께 풀어봅니다. 중급이상 데이터 분석 데이터베이스 데이터베이스 SQL 데이터 분석 온라인 강의 실무에 필요한 연산을 효율적으로 처리하기 위한 SQL의 고�

www.inflearn.com

 

데이터 순서 정렬하기

 

ORDER BY

 

ORDER BY의 사용 순서는 SELECT -> FROM -> WHERE -> ORDER BY으로 제일 마지막에 위치

 

mysql은 기본적으로 오름차순

SELECT *
FROM customers
ORDER BY customerid

 

ORDER BY 정렬 결과 스크린샷

 

customerid 내림차순(큰 것 부터)

SELECT *
FROM customers
ORDER BY customerid DESC

 

내림차순 결과 스크린샷

 


 

정렬하기 응용

 

가격이 20$ 이상이고, 가격이 높은 순으로 물건을 조회해라 (10개)

SELECT *
FROM products
WHERE price >= 20
ORDER BY price DESC
LIMIT 10

결과 스크린샷

 


 

+) MySQL 소수점 처리

 

CEIL() - 올림

SELECT CEIL(5.5) => 6

 

FLOOR() - 내림

SELECT FLOOR(5.5) => 5

 

ROUND() - 반올림

ROUND(5.556901, 4) => 5.5569

 

 

+) MySQL 문자열 자르기

 

LEFT(컬럼명, 문자열 길이)

SELECT LEFT("20140323", 4) => 2014

 

RIGHT(컬럼명, 문자열 길이)

SELECT RIGHT("20140323", 4) => 0323

 

SUBSTRING(컬럼명, 시작 위치, 길이) = SUBSTR()

SUBSTR("20140323", 1, 4) => 2014

SUBSTR("20140323", 5) => 0323


 

HACKER RANK

 

 

1. Employee Names

SELECT name
FROM employee
ORDER BY name

 

결과 스크린샷

 

 

 

2. Employee Salaries

SELECT name
FROM employee
WHERE salary >= 2000 AND months < 10
ORDER BY employee_id

 

 

 

3. Higher Than 75 Marks

SELECT name
FROM students
WHERE marks > 75
ORDER BY SUBSTR(name, -3), id

 

결과 스크린샷

 

 

4. Weather Observation Station 15 

SELECT ROUND(long_w, 4)
FROM station
WHERE lat_n < 137.2345
ORDER BY lat_n DESC
LIMIT 1

 

결과화면

 


< 기초 SQL 시리즈 >

 

2020/07/14 - [Database/SQL] - [백문이불여일타] 데이터 분석을 위한 기초 SQL - 1부

2020/07/14 - [Database/SQL] - [백문이불여일타] 데이터 분석을 위한 기초 SQL - 2부

2020/07/14 - [Database/SQL] - [백문이불여일타] 데이터 분석을 위한 기초 SQL - 3부 完

 

 

 

이 포스팅은 해당 강좌를 수강하며 작성하였습니다.

https://www.inflearn.com/course/%EB%B0%B1%EB%AC%B8%EC%9D%B4%EB%B6%88%EC%97%AC%EC%9D%BC%ED%83%80-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EB%B6%84%EC%84%9D-%EA%B8%B0%EC%B4%88-SQL

 

[백문이불여일타] 데이터 분석을 위한 기초 SQL - 인프런

SQL 기초 이론을 배우고, 해커랭크 문제 10개를 함께 풀어봅니다. 입문 데이터베이스 데이터베이스 데이터 분석 SQL 데이터 분석 온라인 강의 생초보도 따라할 수 있는 SQL 기초강의 듣고 코딩 테스

www.inflearn.com

 

조건에 맞는 데이터 검색하기

 

1. 비교 연산자와 논리 연산자

 

비교 연산자 - 특정 칼럼이 특점 값을 가지는 데이터만 불러오기 위해서 사용

= 같다
<> 다르다
<= 작거나 같다
>= 크거나 같다
< 작다
> 크다

 

SELECT *
FROM Customers
WHERE Country = 'Germany'

 

숫자뿐만 아니라, 문자도 비교가 가능하다.

알파벳 "B" 이전에 시작하는 것만 조회하는 방법. 즉, 'A'로 시작하는 모든 데이터를 가져옴

 

SELECT *
FROM customers
WHERE customerName < "B"

 

 

논리 연산자

AND A, B 둘 다 만족
OR A 거나 B 둘 중에 하나라도 만족

 

 


 

2. LIKE / IN / BETWEEN / IS NULL

 

LIKE

- country가 'Br'로 시작하는 row를 조회하고 싶은 경우

SELECT *
FROM customers
WHERE country LIKE 'Br%'

 

 

IN

- country가 프랑스 거나 독일인 사람을 조회

SELECT *
FROM customers
WHERE country IN ('Germany', 'France')

-- WHERE country = 'Germany' OR country = 'France' (IN과 같음)

 

 

BETWEEN

- customerID가 3과 5 사이에 들어가는 row 조회

SELECT *
FROM customers
WHERE customerID BETWEEN 3 AND 5

 

 

IS NULL

- 테이블 내에 데이터가 비어있는 부분을 검색하기 위한 예약어

SELECT *
FROM customers
WHERE customerID IS NULL

-- NULL, NaN (Not a Number) : 숫자도 아니고, 문자도 아니고 비어있다

 

 


 

3. LIKE 심화

 

% - 어떤 것이 와도 상관이 없다. 와일드카드(wildcard)

_ - 한 글자 와일드카드

 

 

일단, r 이 포함된 것은 모두 조회

SELECT * 
FROM Customers 
WHERE country LIKE '%r'

 

 

찾고 싶은 키워드가 명확하다면 LIKE 보다는 = 비교 연산자 사용 (속도가 빠른 장점)

SELECT *
FROM customers
WHERE country = 'Brazil'

 

 

글자 수 제한해서 조회 (B뒤에 5글자)

SELECT *
FROM customers
WHERE country LIKE 'B_____'

 

 

이스케이프(\) - 특수문자 조회하기 (두 자릿수 퍼센트 디스카운트)

SELECT *
FROM customers
WHERE discount LIKE '__\%'

 

+) DISTINCT

해당 칼럼의 중복 값을 제거하여 조회 (아래 예시에서는 중복되는 city 값은 딱 한 개만 출력된다.)

SELECT DISTINCT city
FROM station

 

 


 

HACKER RANK 퀴즈

 

1. Revising the Select Query 1

문제 설명

 

SELECT *
FROM city
WHERE population > 100000 AND countrycode = 'USA' 

 

성공 스크린샷

 

 

2. Select By ID

 

SELECT *
FROM city
WHERE id = 1661

 

성공 화면

 

 

3. Weater Observation Station 6

 

SELECT city
FROM station
WHERE city LIKE 'a%' 
OR city LIKE 'e%' 
OR city LIKE 'i%' 
OR city LIKE 'o%' 
OR city LIKE 'u%'

 

결과

 

 

4. Weather Observation Station 12

문제

 

SELECT DISTINCT city
FROM station
where city NOT LIKE 'a%'
AND city NOT LIKE 'e%'
AND city NOT LIKE 'i%'
AND city NOT LIKE 'o%'
AND city NOT LIKE 'u%'
AND city NOT LIKE '%a'
AND city NOT LIKE '%e'
AND city NOT LIKE '%i'
AND city NOT LIKE '%o'
AND city NOT LIKE '%u'

 

결과

 

 


< 기초 SQL 시리즈 >

 

2020/07/14 - [Database/SQL] - [백문이불여일타] 데이터 분석을 위한 기초 SQL - 1부

2020/07/14 - [Database/SQL] - [백문이불여일타] 데이터 분석을 위한 기초 SQL - 2부

2020/07/14 - [Database/SQL] - [백문이불여일타] 데이터 분석을 위한 기초 SQL - 3부 完

 

 

 

 

이 포스팅은 해당 강좌를 수강하며 작성하였습니다.

https://www.inflearn.com/course/%EB%B0%B1%EB%AC%B8%EC%9D%B4%EB%B6%88%EC%97%AC%EC%9D%BC%ED%83%80-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EB%B6%84%EC%84%9D-%EA%B8%B0%EC%B4%88-SQL

 

[백문이불여일타] 데이터 분석을 위한 기초 SQL - 인프런

SQL 기초 이론을 배우고, 해커랭크 문제 10개를 함께 풀어봅니다. 입문 데이터베이스 데이터베이스 데이터 분석 SQL 데이터 분석 온라인 강의 생초보도 따라할 수 있는 SQL 기초강의 듣고 코딩 테스

www.inflearn.com

 

+ Recent posts