본문 바로가기

전체 글90

[데이터베이스설계] 3-15 DB 변경연산 - update updateupdate 테이블명 set 변경식         (수정할 컬럼명 (비교연산자) 계산부분)                                   (수정할 컬럼명 (비교연산자) SFW 서브쿼리)Q) give a 5% salary raise to all instructors=> update instructor     set salary = salary * 1.05 Q) give a 5% salary raise to those instructors who earn less than 70000=> update instructor    set salary = salary * 1.05    where salary            //where 뒤에 조건문… Q) give a 5% salary .. 2025. 2. 15.
[데이터베이스설계] 3-14 DB 변경연산 - insertion insertioninsert into 테이블이름 values (‘넣을 값들’, ‘넣을 값들’, 넣을 숫자) ;             //순서 맞춰야 함 insert into 테이블이름 (컬럼1, 컬럼2, 컬럼 3) values (‘넣을값’, ‘넣을값’, 넣을숫자) ; //순서 맞출필요X insert into 테이블이름 values (‘넣을값’, ‘넣을값’, null )     // null값 넣을 수 있음. 미정 또는 모를떄 한번에 여러 투플을 넣고 싶다면 insert문에 SFW 서브쿼리 쓰기. 그 result set의 투플들을 넣는다. SFW 문은 relation에 결과가 삽입되기 전에 다 완료된다. 서브쿼리를 먼저 실행해 투플 확보 후 그 투플들을 삽입하게 됨 Q) make each student i.. 2025. 2. 15.
[데이터베이스설계] 3-13 DB 변경연산 - deletion deletiondelete from 테이블이름 : 모든 투플값들을 삭제한다. 테이블은 남아있음    //drop table 테이블이름 delete from 테이블이름where 조건 delete from 테이블이름where 컬럼이름 in ( SFW )         //중첩질의문 가능, 즉 참/거짓으로 판정될 수 있는 형태의 조건  Q) delete all tuples in the instructor relation for those instructors associating with a department located in the Watson Building=> delete from instructor     where dept_name in ( select dept_name               .. 2025. 2. 15.
[데이터베이스설계] 3-12 Scalar 서브쿼리 - 서브쿼리의 값을 테이블이 아닌, 값으로 간주하게 됨.- 단일값 예상할 때 사용함. 테이블이 아니라.Scalar 서브쿼리-      select, where 절에서 사용 가능    //원래 select절에는 컬럼을 열거… -      그러나 투플 수가 복수개가 나오면 런타임 에러가 나옴 -      select절에서 컬럼 열거하다가 이거 포함될 수 있음.-      원래 SFW 결과는 테이블이지만, SELECT절에 사용될 때에는 그냥 scalar 값으로 간주한다.-      select 컬럼명1, (SFW) as 컬럼명2-      from, where로 거른 뒤, select절이 요구하는 형태로 result set을 만들게 된다.-      투플 하나씩 계산한 결과를 가지고 결과 set에 넣기 직전,.. 2025. 2. 15.
[데이터베이스설계] 3-11 with 절 ( with 테이블명(컬럼명) as (투플 instance 정의) ) - 임시 relation을 만든다.with 절 - DB에 남지 않음, 해당 SFW 실행할때만 존재한다. 임시테이블 Q) find all departments with the maximum budget (= 단독 1위일수도 있고, 공동1위일수도 있음)=> with max_budget ( value ) as                 테이블명 = max_budget, 컬럼명 value. 컬럼1개            ( select max(budget)                        dept테이블의 budget의 최고값. 레코드도 1개임.              from department  )                         //학과이름은 모름. 최고값만 온다     select de.. 2025. 2. 15.