쿼리문 끝날때 세미콜론 꼭 작성하기;;;;;;;
이제 단답형으로 나오는 추세라고 하긴 하는데 그래도 유의하기
20년 1회 17번
distinct: 중복제거
한 릴레이션에서 속성(어트리뷰트)의 개수: 차수(degree)
한 릴레이션 안의 튜플 수: 카디널리티
20년 2회 6번
SELECT 학번, 이름 FROM 학생
WHERE 학년 IN (3, 4);
20년 2회 12번
CREATE INDEX idx_name ON student (name);
인덱스 만드는 방법
create index 인덱스 이름 on 테이블(속성1, 속성2, ...);
20년 3회 3번
DELETE FROM 학생 WHERE 이름 = '민수';
DELETE: 튜플을 하나씩 삭제 (DELETE FROM 테이블명)
TRUNCATE: 모든 튜플을 DELETE하고 COMMIT(TRUNCATE TABLE 테이블명)
DROP: 모든 데이터를 DELETE하고 COMMIT(DROP TABLE 테이블명)
20년 3회 9번
SELECT 과목이름, MIN(점수) AS 최소점수, MAX(점수) AS 최대점수
FROM 성적
GROUP BY 과목이름 HAVING AVG(점수) >= 90;
20년 3회 20번
ALTER TABLE 학생
ADD COLUMN 주소 varchar(20);
DDL 종류와 사용법
CREATE TABLE 테이블명 (구성요소);
CREATE VIEW 뷰명 AS 조건식;
CREATE INDEX 인덱스명 ON 테이블명(칼럼명);
ALTER TABLE 테이블명 ADD COLUMN속성명 자료형;
ALTER TABLE 테이블명 MODIFY COLUMN 속성명 변경자료형;
ALTER TABLE 테이블명 CHANGE COLUMN 속성명 변경속성명 변경자료형;
ALTER TABLE 테이블명 DROP COLUMN 속성명;
ALTER TABLE 테이블명 RENAME 변경테이블명;
DROP TABLE 테이블명;
TRUNCATE TABLE 테이블명;
20년 4회 9번
SELECT 학과, COUNT(*) AS 학과별튜플수
FROM 학생
GROUP BY 학과;
21년 1회 6번
AND, OR 중 AND의 우선순위가 높다. AND먼저 처리하고 OR 한다는 뜻
21년 1회 14번
21년 2회 5번
UPDATE 학과번호 SET 학과번호 = 999 WHERE 입학생수 >= 300;
DML 종류와 사용법
SELECT 튜플 FROM 테이블명
INSERT INTO 테이블명 VALUES(문자는 '')
UPDATE SET
DELETE FROM 테이블명 WHERE
21년 2회 6번
SELECT a.코드, 이름, 동아리명 FROM 사원 a
LEFT 동아리 b ON a.코드 = b.코드;
JOIN ~ ON ~
21년 2회 10번
SELECT * FROM 회원
WHERE 이름 LIKE '이%' ORDER BY 가입일 DESC;
ORDER BY는 ASC가 디폴트
21년 3회 10번
CROSS JOIN -> 일단 곱함, 이후 WHERE절 처리
22년 1회 4번
SELECT name as 이름, score as 점수
FROM 성적
ORDER BY score DESC;
22년 2회 3번
SELECT * FROM 상품
WHERE ALL(SELECT 단가 FROM 상품 WHERE 제조사 = 'H');
집계함수는 주로 GROUP BY랑 씀
22년 2회 4번
COUNT(컬럼명): NULL 제외
COUNT(*): NULL 포함
22년 2회 12번
SQL 관계대수
셀렉션(σ): 원하는 정보가 담긴 튜플 수평 도출, σ(조건)R
프로젝션(π): 원하는 속성 리스트 수직 도출, π(속성리스트)R
합, 교, 차집합: 차수가 같아야 함
22년 3회 7번
데이터 삭제 제약조건
NO ACTION: 디폴트값, 자식row 삭제 후 부모row 삭제해야 함
ON DELETE CASCADE: 부모테이블 데이터 삭제시 자식테이블 자동삭제
ON DELETE SET NULL: 부모테이블 데이터 삭제시 자식테이블 데이터 NULL로 업데이트
23년 2회 4번
INSERT INTO 학생 values (9830287, '한국산', 3, '경영학개론', '010-1234-6781');
23년 2회 17번