
ㅇ 데이터 구축
1. 테이블 생성
2. 데이터 삽입 : 인서트
3. 데이터 저장 : 커밋
SELECT DISTINCT * 컬럼 FROM 테이블 WHERE 조건식 연산자 값 GROUP BY 셀렉트절에 그룹함수가 쓰일 때 그룹함수 사용 안한 컬럼들 (섞여있지 않으면 쓸 필요 없어!!) HAVING 그룹화한 컬럼에 대한 조건절 ORDER BY 정렬
문자와 날짜는 ' '
값에다가 써브쿼리 가능
웨어절에 그룹함수 사용하고 싶을 때 서브쿼리 이용
조건절(웨어절, 해빙절)에 서브쿼리 사용 (배운데까지는)
이름 찾을 때는 항상 중복 생각. =말고 IN사용
테이블 조인하게 되면 항상 조인조건★ 내가 자꾸 까먹는거!!
오더바이의 조건도 은근 잘 보기
알파벳 순이라고 하면 문자데이터에 해당하는 컬럼
그룹함수 사용한 결과를 해야 하는데 그 안의 컬럼만 할 때도 있었어
문제 꼼꼼히 읽기. 특히 알리아스 알아채기
~~와 '다른' 있으면 검색했던 조건의 사람 빼줘야지
행 삽입
INSERT INTO 테이블 (컬럼1, 컬럼2, 컬럼3) <- 컬럼은 선택사항 VALUES (각 컬럼에 맞는 데이터 값). 널은 NULL
- 각 컬럼에 맞는 순서, 데이터 타입, 길이
- 밸류스 대신 서브쿼리 사용 가능
행 변경
UPDATE 테이블 SET 컬럼이름 = 변경 값 WHERE 수행할 특정 행 (선택사항)
- 대상은 '행'이지만 결과적으로는 특정 '컬럼'의 데이터가 변해
행 삭제
DELETE FROM 테이블 WHERE 조건 (선택사항) 웨어절 생략되면 모든 행 삭제
테이블 생성
CREATE TABLE 테이블명 (컬럼이름 데이터타입(크기), deptno number(2), dname varchar2(14), loc varchar2(13) )테이블 생성 : 서브쿼리 이용 (통계성 자료)
CREATE TABLE dept80 AS SELECT employee_id, last_name, salary*12 annsal, hire_date FROM employees (컬럼이름 규칙 주의 : 알리아스로 해결) WHERE department_id = 80
(테이블에) 열 추가
ALTER TABLE 테이블명 ADD (추가할 컬럼이름 데이터타입(크기))
- 얘는 열 추가야. 데이터는 널 값 들어가
- 안에 데이터 추가하고 싶으면 update (insert사용하면 행 추가돼)
열 수정
ALTER TABLE 테이블이름 MODIFY (컬럼이름 바꿀데이터타입(바꿀길이))
열 삭제 (지우는데 시간 걸려)
ALTER TABLE 테이블이름 DROP COLUMN 컬럼이름상태 정보를 언유스드로 만들어서 삭제한 것 처럼 사용
ALTER TABLE 테이블이름 SET UNUSED (컬럼이름)
테이블 삭제
DROP TABLE 테이블이름테이블 절단
TRUNCATE TABLE 테이블이름
테이블 레벨에서 선언
CREATE TABLE 테이블이름 (컬럼이름 데이터타입(길이), dname varchar2(10) NOT NULL, CONSTRAINT 제약조건이름 제약조건유형(제약조건을 설치할 컬럼) (제약조건이름 = 테이블이름_컬럼이름_제약조건) CONSTRAINT dept_did_pk PRIMARY KEY(did) CONSTRAINT dept_email_uk UNIQUE(email) CONSTRAINT dept_dname_fk FOREIN KEY(dname) - 자식테이블 REFERENCE 테이블이름(참조할컬럼이름) - 부모테이블 ON DELETE CASCADE 부모테이블의 행 삭제되는 경우 자식테이블의 종속 행 삭제하겠다 ON DELETE SET NULL 〃 참조 값을 NULL로 변형 CONSTRAINT dept_salary_min CHECK(salary>0) )
- PK, UK, FK, CK는 테이블 레벨에서 선언하는 게 관례
- NOT NULL 은 컬럼 레벨에서 선언하는 게 관례
컬럼 레벨에서 선언
CREATE TABLE dept (did number(5) constraint dept_did_pk primary key, dname varchar2(10) )
DROP TABLE test cascade constraints; DROP TABLE test1 cascade constraints; CREATE TABLE test (a number(5), b number(5) not null, c number(5), CONSTRAINT test_a_pk PRIMAYR KEY(a) ); CREATE TABLE test1 (d number(5), e number(5), f number(5), a number(5), CONSTRAINT test1_d_pk PRIMAYR KEY(d), CONSTRAINT test1_e_uk UNIQUE(e), CONSTRAINT test1_f_ck CHECK(f IN(0,1)), CONSTRAINT test1_a_fk FOREIGN KEY(a) REFERENCES test(a) );