SQL첫걸음 27

[SQL 첫걸음] 6장.데이터베이스 객체 작성과 삭제 - 29.인덱스 작성과 삭제

저자 : 아사이 아츠시출판 : 한빛미디어 발매 : 2015.11.01 1. 인덱스 작성CREATE INDEX 인덱스명 ON 테이블명 (열명1, 열명2, ...) ex) CREATE INDEX isample65 ON sample62(no); -> sample62테이블의 no열에 isample65 라는 인덱스를 지정. - 인덱스는 이름을 붙여 관리하는데, 데이터베이스 객체가 될지 테이블의 열처럼 취급될지는 데이터베이스 제품에 따라 다름.- Oracle이나 DB2 등에서 인덱스는 스키마 객체. 따라서 스키마 내에 이름이 중복하지 않도록 지정. / SQL Server나 MySQL에서 인덱스는 테이블 내의 객체. 따라서 테이블 내에 이름이 중복하지 않도록 지정. => 인덱스의 네임스페이스가 디비제품마다 다름. -..

Study/DB 2018.09.16

[SQL 첫걸음] 6장.데이터베이스 객체 작성과 삭제 - 26.테이블 작성·삭제·변경

저자 : 아사이 아츠시출판 : 한빛미디어 발매 : 2015.11.01 * SELECT, INSERT, DELETE, UPDATE는 SQL 명령 중에서도 DML로 분류. DML은 데이터를 조작하는 명령. 한편 DDL은 데이터를 정의하는 명령으로 스키마 내의 객체를 관리할 때 사용. 1. 테이블 작성- DDL은 데이터베이스 객체 모두 같은 문법을 사용. CREATE로 작성, DROP으로 삭제, ALTER로 변경. 뒤이어 어떤 종류의 객체를 작성, 삭제, 변경할지를 지정. ex) 테이블을 작성한다면 CREATE TABLE, 뷰를 작성한다면 CREATE VIEW와 같이 지정. - 테이블 작성 : CREATE TABLE 에 이어 작성하고 싶은 테이블 명 지정. 테이블명 뒤에는 괄호로 묶어 열 정의. 열을 정의할 ..

Study/DB 2018.09.11

[SQL 첫걸음] 6장.데이터베이스 객체 작성과 삭제 - 25.데이터베이스 객체

저자 : 아사이 아츠시출판 : 한빛미디어 발매 : 2015.11.01 1. 데이터베이스 객체- 데이터베이스 객체란 테이블이나 뷰, 인덱스 등 데이터베이스 내에 정의하는 모든 것을 일컫는 말. - 객체는 데이터베이스 내에서 실체를 가짐.- 객체는 이름을 가진다. 데이터베이스 내에서 객체를 작성할 때는 이름이 겹치지 않도록 함. cf. 데이터베이스 객체의 명명규칙(제약 사항)기존 이름이나 예약어와 중복하지 않는다.숫자로 시작할 수 없다.언더스코어(_) 이외의 기호는 사용할 수 없다.한글을 사용할 때는 더블쿼트(MySQL에서는 백쿼트)로 둘러싼다.시스템이 허용하는 길이를 초과하지 않는다. - 이름은 객체의 종류와는 관계가 없다. 예를 들어 foo라는 이름의 테이블을 한번 만들면, 같은 종류의 테이블은 물론이고..

Study/DB 2018.09.11

[SQL 첫걸음] 5장.집계와 서브쿼리 - 24.상관 서브쿼리

저자 : 아사이 아츠시출판 : 한빛미디어 발매 : 2015.11.01 1. EXISTS- 서브쿼리를 사용해 검색할 때, '데이터가 존재하는지 아닌지' 판별하기 위해 조건을 지정 할 수도 있음.이런 경우 EXISTS 술어를 사용해 조사 - 서브쿼리의 WHERE 구는 no2 = no라는 조건식.. no2는 sample552의 열이고 no는 sample551의 열. 이때, no가 3과 5일 때만 서브쿼리가 행을 반환. - EXISTS 술어에 서브쿼리를 지정하면 서브쿼리가 행을 반환할 경우에 참을 돌려줌. 결과가 한 줄이라도, 그 이상이라도 참이 됨. 반면 반환되는 행이 없을 경우에는 거짓이 됨. 2. NOT EXISTS- EXISTS와 반대로 행이 존재하지 않을 경우 참이 됨. - UPDATE 명령 뿐 아니라..

Study/DB 2018.09.10

[SQL 첫걸음] 5장.집계와 서브쿼리 - 23.서브쿼리

저자 : 아사이 아츠시출판 : 한빛미디어 발매 : 2015.11.01 - 서브쿼리 : SELECT 명령에 의한 데이터 질의로, 상부가 아닌 하부의 부수적인 질의를 의미.- SQL 명령문 안에 지정하는 하부 SELECT 명령으로 괄호로 묶어 지정. 특히 서브쿼리는 WHERE 구에서 주로 사용됨. WHERE 구는 SELECT, DELETE, UPDATE 구에서 사용할 수 있는데 이들 중 어떤 명령에서든 서브쿼리 사용 가능. 1. DELETE의 WHERE 구에서 서브쿼리 사용하기123-- 최솟값을 가지는 행 삭제 (괄호로 서브쿼리를 지정해 삭제)DELETE FROM sample54 WHERE a = (SELECT MIN(a) FROM sample54); cs- 단, MySQL에서는 위 쿼리를 실행할 수 없음...

Study/DB 2018.09.05

[SQL 첫걸음] 5장.집계와 서브쿼리 - 22.그룹화(GROUP BY)

저자 : 아사이 아츠시출판 : 한빛미디어 발매 : 2015.11.01 1. GROUP BY로 그룹화 SELECT * FROM sample51; - name열에서 같은 값을 가진 행 끼리 한데 묶어 그룹화한 집합을 집계함수로 넘겨줄 수 있음. 그룹으로 나눌 때에는 GROUP BY 구를 사용. GROUP BY 구에 그룹화할 열을 지정. 복수로도 지정 가능. SELECT name FROM sample51 GROUP BY name; - GROUP BY 구에 열을 지정하여 그룹화하면 지정된 열의 값이 같은 행이 하나의 그룹으로 묶임. - GROUP BY를 지정해 그룹화하면 DISTINCT와 같이 중복을 제거하는 효과가 있음. 그러면 DISTINCT와 무슨 차이가 있을까? 하지만 사실 GROUP BY 구를 지정하는..

Study/DB 2018.09.04

[SQL 첫걸음] 5장.집계와 서브쿼리 - 21.COUNT 이외의 집계함수

저자 : 아사이 아츠시출판 : 한빛미디어 * COUNT 이외의 집계함수 - 합계값 조회 : SUM ( [ALL | DISTINCT] 집합 ) - 평균값 조회 : AVG ( [ALL | DISTINCT] 집합 ) - 최솟값 조회 : MIN ( [ALL | DISTINCT] 집합 ) - 최댓값 조회 : MAX ( [ALL | DISTINCT] 집합 ) 1. SUM으로 합계 구하기 - 집합의 합계를 구할 수 있음. SUM 집계함수에 지정되는 집합은 수치형만 가능. 문자열형이나 날짜시간형의 집합에서 합계를 구할 수 X. - SUM함수도 COUNT와 마찬가지로 NULL값을 무시. NULL값을 제거한 뒤에 합계를 냄. 2. AVG로 평균 내기 - SUM집계함수로 합한 값을 개수로 나누면 평균값을 구할 수 있음. b..

Study/DB 2018.08.31

[SQL 첫걸음] 5장.집계와 서브쿼리 - 20.행 갯수 구하기(COUNT)

저자 : 아사이 아츠시 출판 : 한빛미디어 발매 : 2015.11.01 * 집계함수 - SQL의 대표적인 집계함수 : COUNT(집합) SUM(집합) AVG(집합) MIN(집합) MAX(집합)- 집계함수의 특징은 복수의 값(집합)에서 하나의 값을 계산해내는 것. 일반적인 함수는 하나의 행에 대해여 하나의 값을 반환. 집계함수는 집합으로부터 집합으로부터 하나의 값을 반환. 이렇게 집합으로 부터 하나의 값을 계산하는 것을 '집계'라 함. 집계함수를 SELECT 구에 쓰면 WHERE구의 유무와 관계없이 결괏값으로 하나의 행을 반환. 1. COUNT로 행 개수 구하기 - COUNT는 인수로 지정된 집합의 행 개수를 반환. - SELECT COUNT(*) FROM sample51; ==> COUNT집계함수에선 *..

Study/DB 2018.08.31

[SQL 첫걸음] 4장.데이터의 추가,삭제,갱신- 19.물리삭제와 논리삭제

저자 : 아사이 아츠시출판 : 한빛미디어 1. 두 종류의 삭제방법 ( 물리삭제, 논리삭제 ) - 물리삭제 : SQL의 DELETE 명령을 사용해 직접 데이터를 삭제하자는 사고방식. 테이블에서 데이터를 정말 삭제. - 논리삭제 : 테이블에서 실제로 삭제하는 대신, UPDATE명령을 이용해 '삭제플래그'의 값을 유효하게 갱신해두자는 발상에 의한 삭제방식. 데이터가 삭제된 것처럼 가장하는 삭제방법. 실제 테이블 안에 데이터는 남아있지만, 참조할 때에는 '삭제플래그'가 삭제로 설정된 행을 제외하는 SELECT 명령을 실행하여 결과적으론 해당 행이 삭제된 것처럼 보임. ex) UPDATE로 삭제플래그 열의 값을 1로 갱신 ----> SELECT * FROM xxx WHERE 삭제플래그 1로 검색 - 논리삭제의 장..

Study/DB 2018.08.30

[SQL 첫걸음] 4장.데이터의 추가,삭제,갱신- 18.데이터 갱신하기(UPDATE)

저자 : 아사이 아츠시출판 : 한빛미디어 1. UPDATE로 데이터 갱신하기 - UPDATE 테이블명 SET 열명 = 값 WHERE 조건식 ex ) UPDATE sample41 SET b='2018-09-07' WHERE no = 2; 2. UPDATE로 갱신할 경우 주의사항 - UPDATE sample41 SET no = no + 1; 실행 결과 모든 행의 no값에 1씩 더해짐. 위처럼 갱신할 열이 포함된 식으로도 표기 가능. 해당 열이 갱신 대상이 되는 열이라 해도 상관없음. 계산식은 '현재의 no값에 1을 더한값으로 no열을 갱신하라'는 의미. 갱신은 행 단위로 처리되므로 '현재의 no값'은 그 행이 갱신되기 전의 값에 해당. 3.복수열 갱신- UPDATE 테이블명 SET 열명1 = 값1, 열명2 ..

Study/DB 2018.08.30