Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
Tags
- 팀플회고
- 네트워크
- 깃 터미널 연동
- React Native
- 백준 5525번
- 딥러닝
- 백준 4358번
- 모두의 네트워크
- 백준
- 문자열
- 머신러닝
- 백준 4358 자바
- 모두를 위한 딥러닝
- 깃허브 로그인
- 지네릭스
- HTTP
- 데베
- 모두의네트워크
- 리액트 네이티브
- 리액트 네이티브 프로젝트 생성
- 깃 연동
- 백준 4949번
- 리액트 네이티브 시작하기
- 스터디
- SQL
- 모두를위한딥러닝
- 자바
- 깃허브 토큰 인증
- 정리
- 데이터베이스
Archives
- Today
- Total
솜이의 데브로그
6장 ) SQL문의 기본 : Select(2) 본문
Reference : 데이터베이스 첫걸음
8강 ) 데이터 갱신, 삽입, 제거
- 데이터 갱신 : UPDATE
- 데이터 삽입 : INSERT
- 데이터 제거 : DELETE
데이터 변경하는 UPDATE문
UPDATE 테이블명 SET 열명 = 값 WHERE 조건;
- WHERE 구문에 부합하는 행 전부에 대해 갱신이 수행된다.
- 복수열을 동시에 갱신하기 위해서는 AND로 지정하거나 유니크한 열을 조건으로 지정한다.
- ex)
update city set name = 'siheung', population = 429390 where countrycode = 'KOR' and district = 'Kyonggi' and name= 'Shihung';
데이터 입력하는 INSERT문
INSERT INTO 테이블명(열1,[, 열2, ...]) VALUES (값1[, 값2, ...]);
- INSERT는 행 단위로 수행되므로 테이블 정의를 정확하게 알아야 한다.
- 테이블명 뒤의 열 리스트와 VALUES 뒤의 값 리스트는 수와 데이터형이 일치되어야 한다.
- 테이블에 정의된 모든 열에 대해 VALUES에서 값을 설정하면 테이블명의 열 리스트를 생략할 수 있다.
- INSERT문에서 값 대신에 DEFAULT 키워드를 지정하면 테이블 정의에 지정된 기본값이 지정된다.
INSERT INTO 테이블1 SELECT * FROM 테이블2
위의 구문을 사용하면 VALUES 대신 입력한 값(레코드)로 SELECT 문의 결과를 사용하는 방법이다.
기존의 데이터를 통해 1행으로 복수의 레코드 입력이 가능하다.
CREATE TABLE 테이블명1 LIKE 테이블명2
MySQL에서는 위의 구문을 통해 테이블명2와 같은 구조의 테이블을 작성할 수 있다.
또한 MySQL에서는 INSERT문 하나로 신규 복수행을 입력할 수 있는 '복수 행의 입력' 기능이 있다. 콤마 , 로 이어서 복수의 레코드를 입력 가능하다.
데이터를 제거하는 DELETE문
DELETE FROM 테이블명 WHERE 조건;
- WHERE로 지정한 조건에 맞는 항목을 제거한다.
- 1행을 대상으로 제거하려면 WHERE 구문의 대상을 유니크하게 특정해야한다.
9강 ) 뷰 작성, 복수 테이블에서 선택
뷰 작성과 서브쿼리 및 결합
- 뷰는 SQL 시점에서 테이블과 동일하지만 테이블과 같은 데이터는 가지고 있지 않으며, 테이블에 대한 SELECT를 가지고 있다.
- 테이블 대신 뷰를 사용하는 이점
- 복잡한 SELECT문을 일일이 매번 기술할 필요가 없다.
- 필요한 열과 행만 사용자에게 보여줄 수 있고, 갱신 시 뷰 정의에 따른 갱신으로 한정할 수 있다.
- 데이터 저장 없이 실현할 수 있고, 뷰를 제거해도 참조하는 테이블은 영향을 받지 않는다.
뷰 작성 CREATE문
CREATE VIEW 뷰 명(열명1[, 열명2,...]) AS SELECT문;
SELECT문에서 열 전체를 지정했을 경우 뷰명 뒤의 괄호와 열 리스트는 생략할 수 있다.
서브쿼리의 실행
- SQL문에서는 단일값으로 구성된 SELECT문의 결과를 데이터처럼 다루거나 수치처럼 취급해 조건문에 이용할 수 있다.
- 위의 예제에서는 인구의 평균값을 구해 그 단일값을 조건으로 이용
- 서브쿼리는 일반 쿼리에서 테이블이나 단일값을 둔 장소 대부분에서 이용하는 것이 가능하다
결합 (JOIN)
- 하나의 테이블에 있는 열만으로는 데이터가 충족되지 않는 경우 열을 가지고 오는 조작.
- 결합 조건을 지정해 2개 테이블의 행을 결합한다.
Inner JOIN (내부 결합)
- 테이블에서 필요한 열을 가지고 올 때 행을 결합하기 위한 조건을 'ON'으로 지정한다.
- 내부결합에서는 이 ON으로 지정한 결합 조건에 일치하는 행만을 2개의 테이블로부터 가져온다.
- 결합조건으로 country code를 사용한다.
- 열이 어디서 왔는지 알고 싶을 경우 '테이블명.열명' 과 같이 지정한다.
SELECT 선택하고 싶은 열 리스트 FROM 첫 번째 테이블명 INNER JOIN 두 번째 테이블명 ON 결합조건;
Outer JOIN (외부 결합)
- 한쪽 테이블을 기준으로 전체 행을 표시하고 다른 테이블은 값이 있으면 표시
- 두개의 테이블 중 왼쪽 테이블의 전체 행이 표시되고, 다른 테이블의 행 데이터는 결합 조건과 일치할 때 그 값이 되고, 일치하는 것이 없으면 'NULL' 이 된다.
- LEFT OUTER JOIN 또는 RIGHT OUTER JOIN 을 사용한다. (보통 LEFT가 기준)
SELECT 선택하고 싶은 열의 리스트 FROM 첫 번째 테이블명 LEFT OUTER JOIN 두 번째 테이블명 ON 결합조건;
'CS > Database' 카테고리의 다른 글
7장 ) 트랜잭션과 동시성 제어 (0) | 2021.11.14 |
---|---|
20-22강 ) 집계, 그룹화 (0) | 2021.11.06 |
16-19강 : 데이터의 추가, 삭제, 갱신 (0) | 2021.10.31 |
6장 ) SQL문의 기본 : Select (0) | 2021.10.31 |
13-15강 ) 문자열, 날짜, CASE문 (0) | 2021.10.28 |