반응형

자격증/SQLD 36

[SQL 첫걸음] 26강. 테이블 작성·삭제·변경

테이블 작성, 삭제, 변경 데이터베이스 객체인 테이블을 작성, 삭제, 변경하는 명령을 DDL(Data Definition Language)이라 합니다. 테이블 작성 CREATE 명령을 사용하여 테이블, 뷰, 인덱스 등의 객체를 작성할 수 있습니다. 그 형태는 간단하게 표현해보면 아래와 같습니다. CREATE TABLE 테이블명 ( 열 정의1, 열 정의2, ... ) 열을 정의할 때는 열명을 붙이고 자료형으로 INTEGER, VARCHAR 등을 지정합니다. 특히 CHAR 또는 VARCHAR의 경우 문자열형이기 때문에 최대길이를 괄호(())를 사용하여 함께 지정해줘야 합니다. 또한 열을 정의할 때 DEFAULT 키워드를 사용하여 기본값을 설정할 수 있습니다. 마지막으로 NULL을 허용할 것인지 지정해야 합니..

자격증/SQLD 2022.04.04

[SQL 첫걸음] 25강. 데이터베이스 객체

데이터베이스 객체 데이터베이스 객체란 테이블이나 뷰, 인덱스 등 데이터베이스 내에 정의하는 모든 것을 일컫는 말로 구체적으로 이야기하면 실체를 가지는 어떤 것입니다. 따라서 객체의 종류에 따라 데이터베이스에 저장되는 내용도 달라집니다. 쉽게 테이블은 객체이며 해당 테이블을 조작할 수 있는 명령이었던 SELECT, INSERT 등은 객체가 아닙니다. 객체는 이름을 가집니다. 따라서 데이터베이스 내에서 객체를 작성할 때는 이름이 중복되지 않게 해야 합니다. 테이블의 열이나 SELECT 명령에서의 별명(AS) 또한 이름을 갖지만 이것들은 모두 객체가 아닙니다. 실체가 존재하지 않기 때문입니다. 다만 이름을 붙일 때는 제약 사항, 다시 말해 아래와 같은 명명 규칙(Naming Convention)을 따라야 합니..

자격증/SQLD 2022.04.04

[SQL 첫걸음] 24강. 상관 서브쿼리

상관 서브쿼리 서브쿼리의 일종을 상관 서브쿼리라 합니다. 더 자세한 정의는 상관 서브쿼리에서 확인하겠습니다. 1. EXISTS 서브쿼리를 사용해 검색할 때 데이터 존재여부를 판별하기 위해 조건을 지정할 수 있습니다. 이런 경우 EXISTS 술어를 사용할 수 있습니다. 이때 EXISTS 술어는 단지 반환된 행이 있는지를 확인해보고 값의 있으면 참(True), 없으면 거짓(False)을 반환하므로 굳이 스칼라 서브쿼리일 필요는 없습니다. sample551과 sample552에 대해 no=no2인 행의 값을 '있음'으로 수정하려 할 때 다음과 같이 EXISTS를 사용하면 조건에 맞는 행을 갱신할 수 있다. UPDATE sample551 SET a="있음" WHERE EXISTS (SELECT * FROM sa..

자격증/SQLD 2022.04.04

[SQL 첫걸음] 23강. 서브쿼리

서브쿼리 서브쿼리는 SELECT 명령으로 괄호로 묶어 지정하는 하부의 부수적인 질의이다. 보통 SQL명령의 WHERE구에 주로 지정된다. 1. DELETE의 WHERE구에서 서브쿼리 사용하기 sample54 테이블에서 a값이 가장 작은 행을 삭제하려한다. 보통 아래와 같은 순서로 진행된다. SELECT MIN(a)으로 가장 작은 값 검색 → DELETE문으로 해당 행을 삭제 괄호로 서브쿼리를 지정하면 이 SELECT명령과 DELETE명령을 결합시킬 수 있다. DELETE FROM sample54 WHERE a=(SELECT MIN(a) FROM sample54); ❗ MySQL에서는 데이터를 추가/갱신할 경우 동일한 테이블을 서브쿼리에서 사용할 수 없기 때문에 에러가 발생한다. 아래와 같이 인라인 뷰로 ..

자격증/SQLD 2022.04.04

[SQL 첫걸음] 22강. 그룹화 - GROUP BY

그룹화 - GROUP BY 1. GROUP BY로 그룹화 GROUP BY구를 통해 지정된 열의 값이 같은 행을 하나의 그룹으로 묶어서 집계함수로 넘겨줄 수 있다. SELECT name FROM sample51 GROUP BY name; 결과는 DISTINCT와 같다. GROUP BY의 의미는 집계함수와 함께 사용할 때 나타난다. SELECT name, COUNT(name), SUM(quantity) FROM sample51 GROUP BY name; GROUP BY에 의해 name이 4개의 그룹으로 나뉘고, 각 그룹별로 COUNT와 SUM의 결과가 반환됐다. 2. HAVING 구로 조건 지정 SELECT 열 FROM 테이블 GROUP BY 열 HAVING 조건 WHERE구는 GROUP BY보다 처리 순서..

자격증/SQLD 2022.04.04

[SQL 첫걸음] 21강. COUNT 이외의 집계함수

COUNT 이외의 집계함수 > SELECT SUM(컬러명) FROM 테이블명 > SELECT AVG(컬럼명) FROM 테이블명 > SELECT MIN(컬럼명) FROM 테이블명 > SELECT MAX(컬럼명) FROM 테이블명 1. SUM - 합계 구하기 SUM함수는 수치형 집합만을 지정한다. SELECT SUM(quantity) FROM sample51; 2. AVG - 평균 내기 SUM/COUNT같이 반환값으로 연산도 가능하지만 AVG 함수로 쉽게 평균값을 구할 수 있다. SELECT AVG(quantity), SUM(quantity)/COUNT(quantity) FROM sample51; 3. MIN. MAX로 최소값, 최대값 구하기 MIN과 MAX 집계합수는 문자열형과 날짜시간형에도 사용할 수 있..

자격증/SQLD 2022.04.04

[SQL 첫걸음] 20강. 행 개수 구하기 - COUNT

COUNT SQL에서 대표적인 집계함수(집합을 다루는 함수)는 다음과 같다. 일반적인 함수는 하나의 값을 인수로 받는 반면 집계함수는 집합을 인수로 받는다. > COUNT > SUM > AVG > MIN > MAX COUNT로 행 개수 구하기 COUNT는 인수로 주어진 집합의 개수를 반환한다. SELECT COUNT(*) FROM sample51; SELECT COUNT(*) FROM sample51 WHERE name='A'; sample51에는 총 5개의 행이 있고, COUNT집계함수에서 *은 '모든열=테이블 전체'를 의미하기 때문에 위 명령은 5를 반환한다. 이는 WHERE구를 지정해 검색 조건을 추가할 수 있다. 집계함수와 NULL 값 집계함수는 집합 안에 NULL 값이 있을 경우 이를 제외하고 ..

자격증/SQLD 2022.04.04

[SQL 첫걸음] 19강. 물리삭제와 논리삭제

물리삭제와 논리삭제 데이터베이스에서 데이트를 삭제할 때는 ‘물리 삭제’와 ‘논리 삭제’ 두 가지 방법이 있다 두 종류의 삭제방법 물리삭제 : DELETE 명령을 사용해 직접 데이터를 삭제하는 방식 DELETE FROM 테이블명 WHERE 조건 논리삭제 : 테이블에 '삭제플래그'와 같은 열을 만들어 UPDATE 명령으로 '삭제플래그' 값을 유효하게 갱신해두는 방식. 실제 데이터는 남아있지만 삭제가 설정된 행을 제외하고 SELECT하는 명령 시행 // 예를들어 회원테이블에 삭제일시라는 컬럼이 있을 경우 UPDATE members SET delete_at = now() --> 현재시간 WHERE mber_id = 1 --> 조건 논리삭제는 실제로 데이터를 삭제하지 않기 때문에 삭제 이전으로 되돌릴 수 있다는 ..

자격증/SQLD 2022.04.04

[SQL 첫걸음] 18강. 데이터 갱신하기 - UPDATE

데이터 갱신하기 - UPDATE 테이블에 저장되어 있는 데이터를 갱신하기 위해서는 UPDATE 명령을 사용한다. UPDATE 테이블 SET 열1=값1, 열2=값2... WHERE 조건식; UPDATE로 데이터 갱신하기 데이터를 잘못 입력하거나 변경되어 값을 수정해야 하는 경우 UPDATE 명령으로 셀 값을 갱신할 수 있다. UPDATE sample41 SET a='AAA',b='2021-01-27' WHERE no=3; UPDATE로 갱신할 경우 주의사항 SET구에서 =는 비교 연산자가 아닌 대입 연산자이다. UPDATE sample41 SET no = no+1; 위 명령을 실행하면 WHERE 구가 지정되어 있지 않으므로 테이블의 no열의 모든 행이 no+1로 갱신된다. 복수열 갱신 UPDATE의 SET..

자격증/SQLD 2022.04.04

[SQL 첫걸음] 17강. 삭제하기 - DELETE

삭제하기 - DELETE DELETE로 행 삭제하기 DELETE FROM 테이블 WHERE 조건식 DELETE 명령을 실행하기 전 SELECT 명령으로 기존 테이블의 데이터를 확인하는 것이 좋다. WHERE구를 따로 지정하지 않고 DELETE하면 테이블의 모든 데이터가 삭제된다. 또한 DELETE는 다른 명령처럼 열을 지정할 수 없어 WHERE 조건에 일치하는 모든 행을 삭제한다. DELETE 명령구 MySQL에서는 DELETE명령에서 ORDER BY와 LIMIT구를 사용해 삭제할 행을 지정할 수 있다. DELETE FROM sample41 WHERE no = 1 OR no = 2;

자격증/SQLD 2022.04.04
반응형