https://www.youtube.com/watch?v=ydvZzRPxOWM
SQL : DB 표준 언어
01.정의어(DDL, definition)
: CREATE / ALTER / DROP
02.조작어(DML, manipulation)
: SELECT / UPDATE / INSERT / DELETE
03.제어어(DCL, control)
:GRANT / REVOKE / COMMIT / ROLLBACK
SQL 테이블 종류
- 기본 테이블 : DDL에 의해 만들어지는 테이블
- 뷰 테이블 : DDL에 의해 만들어지면 기본 테이블에서 필요한 부분만 떼와서 보는 테이블. 조작 제한
- 임시 테이블 : DML에 의해 만들어지는 테이블. 뷰 테이블에서 복사해와서 조작
SQL 데이터타입
가변형이면 앞에 VAR붙음
02-1. SELECT ~ FROM 테이블명
DISTINCT 중복제거
EXISTS ( SELECT 조건 ) 충족하면 참, 충족 못하면 거짓 반환
UNION 합집합
INTERSECT 교집합
MINUS 차집합
02-2. INSERT INTO 테이블
//데이터 삽입
02-3. UPDATE 테이블명 SET 열명 = 값 where 조건
// 데이터 갱신
02-4. DELETE FROM 테이블
// 데이터 제거
02-1. SELECT ~ FROM 테이블명
SELECT 문으로 테이블 내용 살펴보기
(MySQL은 대소문자 구분 없다)
SHOW DATABASES;
: DB목록보기
USE DB명;
SHOW TABLES;
: 해당 DB(schema) 테이블 보기
-테이블 행 수 카운트
SELECT COUNT(*) FROM 테이블 WHERE 조건
-검색 결과 정렬
select * from city where countrycode ='KOR' and district='Chollanam' order by population;
테이블 집약(요약 함수)
-한국 각 도시 인구의 최소, 최대, 총 수, 평균 출력하기
select min(population), max(population), sum(population), avg(population) from city where countrycode ='KOR';
행정구역이 '전라북도'인 도시 출력
select name from city where countrycode='KOR' and district='Chollabuk';
한 행으로 집약
select group_concat(name) from city where countrycode='KOR' and district='Chollabuk';
테이블을 그룹으로 구분
행정구역(district)별로 그룹을 나눠서 몇 개의 도시가 등록되어 있는지 확인
select district, count(*) from city where countrycode ='KOR' group by district;
// group by [ ]를 기준으로 count를 나눠서 테이블에 출력해준다.
select count(*) from city where countrycode ='KOR' group by district;
//select와 from 사이 요소가 테이블의 열을 구성한다
-중복 피하기( 중복 제거 )
select group_concat(district) from city where countrycode='KOR';
→ select group_concat( DISTINCT district ) from city where countrycode='KOR';
*concatenate : 사슬같이 잇다. (= 나열하다)
*\G는 세미콜론 대신에 쓸 수 있는 딜리미터로 결과를 세로로 보기 쉽게한다.
집약한 결과에 조건 지정
SELECT ~ FROM ~ GROUP BY ~ HAVING 그룹의 값에 대한 조건
select district, count(*) from city where countrycode='KOR' group by district having count(*) = 6;
select district, count(*) from city where countrycode='KOR' group by district having count(*) > 6 order by count(*) desc;
02-2. INSERT INTO 테이블
INSERT는 행단위로 수행되므로 행을 구성하는 열의 정의 정보를 포함한 테아블 정의를 정확하게 알아야한다.
테이블의 정의를 알려주는 명령어
SHOW CREATE TABLE 테이블명
해당 데이터베이스의 테이블의 구조가 쿼리형태로 출력
02-3. UPDATE 테이블명 SET 열명 = 값 where 조건
// 데이터 갱신
02-4. DELETE FROM 테이블
// 데이터 제거
기본 구문
DELETE FROM 테이블명;
기본 구문 형태로 사용하면 지정한 테이블의 전체 행이 제거되므로 거의 사용하지 않고,
갱신하는 대상을 WHERE 구문으로 추려내는 구문을 주로 사용(조건에 맞는 각 행을 삭제)
'DB' 카테고리의 다른 글
테이블 설계의 기초 (0) | 2019.05.12 |
---|---|
트랜잭션과 동시성 제어 (0) | 2019.05.09 |
데이터베이스와 아키텍쳐 구성 (0) | 2019.04.30 |
데이터베이스 초기비용와 운영비용 (0) | 2019.04.30 |
관계형 데이터베이스 (0) | 2019.04.28 |