문제 설명 ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냅니다. NAMETYPENULLABLE ANIMAL_ID VARCHAR(N) FALSE ANIMAL_TYPE VARCHAR(N) FALSE DATETIME DATETIME FALSE INTAKE_CONDITION VARCHAR(N) FALSE NAME VARCHAR(N) TRUE SEX_UPON_INTAKE VARCHAR(N) F..
테이블은 저마다 장단점이 있다. 읽기 좋은 테이블(쓰기 불편) 쓰기 좋은 테이블(읽기 불편) 결합(JOIN): 쓰기 좋은 테이블을 읽기 좋게 만들 수 있다. (릴레이션 데이터베이스의 최고의 장점) SELECT * FROM topic LEFT JOIN author ON topic.author_id = author.id; -> topic에다가 topic의 author_id랑 author.id가 같은 값을 author의 왼쪽을 붙인다. 정리: 테이블은 장점과 단점이 공존한다. 읽기 좋은 테이블은 쓰기가 불편하고, 쓰기 좋은 테이블은 읽기가 불편하다. 관계형 데이터 베이스는 이 불편함을 해소시켜주는 엄청난 방법인 조립(JOIN)이라는 방법이 있다. 먼저 쓰기 좋은 테이블을 만들어 놓고 내가 필요한 정보가 있을 ..
SEQUENCE : 순차적으로 증가하는 칼럼을 쉽게 만들기 위해 사용 값이 중복되지 않게 데이터를 추가해야 할 때 자동으로 빈 값에 데이터를 추가할 수 있도록 도와준다. PRIMARY KEY와 같이 사용되어야 제대로 효과를 볼 수있다. 시퀀스 생성 CREATE SEQUENCE SEQ_TOPIC; -> SEQ_TOP라는 시퀀스를 생성 시퀀스 사용 INSERT INTO topic (id,title,description,created) VALUES (SEQ_TOPIC.NEXTVAL,'ORACLE','ORACLE is...',SYSDATE); -> id의 값으로 SEQ_TOP.NEXVAL을 준다면, 1부터 순차적으로 칼럼에 입력 행을 추가할 때마다 id가 자동으로 1, 2로 생성됨을 확인 시퀀스 확인 SELEC..
DROP TABLE DROP TABLE topic; -> topic TABLE 삭제. commit; 명령어 필요 없음. topic TABLE 삭제 기본키: 주키 - 식별자(중복 불가) PRIMARY KEY CREATE TABLE topic( id NUMBER NOT NULL, title VARCHAR2(50) NOT NULL, description VARCHAR2(4000), created DATE NOT NULL, CONSTRAINT PK_TOPIC PRIMARY KEY(id) ); -> CONSTRAINT PK_TOPIC PRIMARY KEY(id) CONSTRAINT(제약조건) PK_TOPIC(프라이머리 키의 고유 이름, 사용자가 정하면 됨) PRIMARY KEY(id)(제약조건은 프라이머리 키고 ..
행 수정: 바꾼다 UPDATE SET UPDATE topic SET title = 'MSSQL', description = 'MSSSQL is...' WHERE id = 3; -> topic의 id가 3인 행의 title을 MSSQL로 description을 MSSQL is... 로 수정한다. 주의! UPDATE 또는 DELETE에서 WHERE이 없다면 다시한번 확인해야한다. 전체 테이블 행이 다 날아갈 수있다. 주의! 수정이나 삭제 이후에는 꼭 commit을 통해서 실제로 적용 되도록 해야한다.
정렬: 순서대로 나열 SELECT * FROM topic ORDER BY id DESC; -> topic의 모든 *값을 id를 기준으로 정렬해서(큰숫자부터) 가져온다. ORDER BY __ DESC 큰 숫자(문자열순)부터 ORDER BY __ ASC 작은 숫자(문자열순)부터 페이징: 원하는 행만 가져오는 기술 OFFSET __ ROWS : 어디부터 가져올 것이냐 (행은 0부터 시작됨)(몇번째 페이지인가?) SELECT * FROM topic OFFSET 1 ROWS; -> OFFSET1 이라는 것은 1번째 부터 행들만 가져온다.(0행 이후부터 가져온다) FETCH NEXT __ ROWS ONLY : 다음에 __개 행만 가져온다. (하나의 페이지가 몇개의 행을 가질까?) SELECT * FROM topic..
행 읽기: 데이터를 가져오는 방법 SELECT문 - 어떤 데이터를 가져올지 선택하는 것이 핵심 SELECT *FROM topic; -> Topic의 *(모든 행과 모든 열)을 가져온다. 읽는 방법 : 빨간 네모는 TABLE, 파란 네모는 DATA 행을 제한 SELECT id, title, created FROM topic; -> topic에서 id, title, created만 가져온다. 선택된 행만 SELECT * FROM topic WHERE id = 1; -> topic의 id가 1인 모든 행을 가져온다. SELECT * FROM topic WHERE id > 1; -> topic의 id가 1이상인 모든 행을 가져온다. SELECT id, title, created FROM topic WHERE i..