2023 3회차 정보처리기사 실기 대비

토리·2023년 10월 3일
0

20-23년 기출문제

Python

dictionary

dict1.add('베트남')
dict1.update(['한국', '태국'])

비트연산자

>> : 오른쪽으로 비트 이동. >>1 연산 시, /2와 같은 결과
<< : 왼쪽 비트 이동. <<1 연산 시, *2와 같은 결과

True, False

문자열 바로 대입

a = "R AND %s" % "STR"

이면 %s 자리에 STR 넣기
a = "R AND STR"

map 함수, lambda 함수

TestList = [1, 2, 3, 4, 5]
TestList = list(map(lambda num:num+100, TestList))

TestList = [101, 102, 103, 104, 105]

C언어

switch, case문

break가 없다면 이후 순서대로 전부 실행함

산술연산자 a++, ++a

a++: a를 인자로 넘겨주고 a에 1 증가
++a: a에 1 증가 후 a를 인자로 넘겨줌

int a = 0;
printf("%d %d %d %d", ++a, ++a, ++a, ++a);

4 3 2 1
printf 실행 시 우측부터 실행됨
가장 우측에 있는 항의 a는 1 증가 후 출력 → 1

포인터

char *s1 = "Hello";

포인터(*s1)에 문자열의 주소 저장

포인터 배열

포인터 배열 : 배열 안의 값이 주소값

int *arr[3];

&a: a의 주소값
*arr[1]: arr[1]의 값 (예. 20번지의 값)
**arr: arr의 값의 값 (예. 100번지의 값의 값)

continue

continue 만나면 다음을 실행하지 않음

같은 주소 계속 리턴

char n[30];

char *getname() {
	gets(n);
    return n;
}

char *n1 = getname();
char *n2 = getname();
char *n3 = getname();

printf(n1, n2, n3);

return 0;

마지막에 입력된 애가 전부 출력
n[30]이 전역변수로 선언되어 입력 받을 때마다 새로운 값을 가르키게 됨

SQL

인덱스

인덱스 생성

CREATE INDEX idx_name ON student(name);

인덱스 선언 시 중복도 낮은, 카디널리티 높은 칼럼부터 우선순위로 둬야 함
중복도가 낮으면 카디널리티 상대적으로 높고, 중복도 높으면 카디널리티가 상대적으로 낮음

HAVING

HAVING: 집계함수를 이용한 필터링이 가능. 그룹을 나타내는 결과집합에 적용

SQL 쿼리 실행 순서

FROM/JOIN → WHERE → GROUP BY → HAVING → SELECT → ORDER BY → LIMIT

테이블 속성 수정

ALTER TABLE 학생 ADD 주소 VARCHAR(20);
ALTER TABLE 학생 DROP COLUMN 주소;
ALTER TABLE 학생 RENAME 주소 TO 도로명주소;
ALTER TABLE 학생 (MODIFY/ALTER COLUMN/MODIFY COLUMN) 주소 VARCHAR(30);

레코드 값 수정

UPDATE 학생 SET 이름="길동" WHERE 학번=1;

카디널리티와 디그리

카디널리티: 튜플의 수, 행의 수
디그리: 열의 수

다중 행 연산자 ANY, ALL

ANY: 조건을 만족하는 값이 하나라도 있으면 결과를 리턴한다
ALL: 모든 조건을 만족하는 결과를 리턴한다

COUNT

COUNT(col2)를 반환할 때 col2 값에 NULL이 있으면 포함 안 됨

SELECT, PROJECT

SELECT: sigma 조건식(릴레이션)
PROJECT: π 속성리스트 (릴레이션)

ON DELETE CASCADE

row 삭제 시 연결된 테이블의 자식 row도 함께 삭제함

REFERENCES 직원(부서코드) ON DELETE CASCADE

VIEW

CREATE VIEW 뷰이름 AS SELECT 컬럼1, 컬럼2 FROM 테이블이름 WHERE 조건;
CREATE OR REPLACE VIEW 뷰이름 AS SELECT 컬럼1, 컬럼2 FROM 테이블이름 WHERE 조건;
DROP VIEW 뷰이름;

DROP VIEW 로 뷰를 삭제할 때 CASCADE 옵션을 넣어 해당 뷰와 의존성 관계가 있는 뷰도 함께 삭제

0개의 댓글