개발일기

학원 수업 20일차 220916

hhana 2022. 10. 24. 09:37
  • 9-10

oracle tablespace 
https://myjamong.tistory.com/218

 

s

  • 10-11

select - from - where -order by
order by 쿼리의 제일 마지막에만 쓸 수 있음

--결과가 중복된 결과 나올 경우 하나만 표기
select distinct DEPARTMENT_ID from employees;
--distinct 중복제거
order by 1(column번호); --column번호에서 오름차순
--order by 컬럼의 출력순서

--숫자타입은 산술연산가능 (+,-,*,/) : null과 연산시 결과는 무조건 null

NVL함수
NVL(commission_pct , 0)
commission_pct가 null이면 값을 0으로 치환합니다

 

 

  • 11-12

--(where 컬럼명 = 검색어) 정확하게 일치하는 데이터 검색
--문자열 ' '
--컬럼명이나 테이블 이름은 대소문자 구분없이 사용함
--문자열 ' ' 안에 입력된 데이터 검색시에는 대소문자 구분함

--like '%ing' : 맨 뒤 글자가 ing인 단어 검색
-- like 'D%' : D로 시작하는 단어 검색
-- like '%el%' el을 포함하는 단어 검색

select * from employees
where hire_date >= '03-06-17' --이후 data
order by hire_date;
--날짜도 숫자처럼 부등호 표현식 가능

select * from employees
where MANAGER_ID is null; -- MANAGER_ID = (null) 이라고 쓰지 않습니다
select * from employees
where COMMISSION_PCT is NOT null;

select email,DEPARTMENT_ID from employees
where DEPARTMENT_ID > 20 and DEPARTMENT_ID < 50 --and or사용 / && || 쓰지않아요
order by 2;

select email,DEPARTMENT_ID from employees
where DEPARTMENT_ID between 20 and 40 --20~40포함
order by 2;

select count(*) from employees;
select count(employee_id) from employees;
select count(commission_pct) from employees; --null제외

 

 

  • 12-1

green계정.sql

pdb cdb oracle

오류 보고 -
ORA-00906: 누락된 좌괄호
00906. 00000 -  "missing left parenthesis"
*Cause:    
*Action:

create table test01(
    no number PRIMARY KEY,
    content VARCHAR2(255),
    writer VARCHAR2(255)
);
테이블 만들때 VARCHAR2옆에 크기 지정안해줘서 그럼ㅋ

<<슬랙>>
<<파이콘>>

<<오존층 보호의 날>>

 

 

  • 2-3

green계정.sql

sql Syntax
https://www.tutorialspoint.com/sql/sql-syntax.htm

--1. pk를 column에 정의하는 방법
--시스템에서 제약조건 이름을 자동으로 부여해줍니다.
--PK는 자동으로 인덱스를 만들어줍니다. : 빠른 검색을 지원합니다.
--PK : UNIQUE(중복불가) + NOT NULL
 --제약조건 이름을 지정할 수 있다. (생략가능) CONSTRAINT 제약조건 이름 : 일반적으로 테이블명_pk

--2. 컬럼 정의 방법
--컬럼명과 타입을 모두 정의한 이후 정의할 수 있다.

FK(Foreign Key)

명령의 85 행에서 시작하는 중 오류 발생 -
insert into emp_test VALUES(2201,'세번째','영업부')
오류 보고 -
ORA-00001: 무결성 제약 조건(GREEN.EMP_TEST_PK)에 위배됩니다

무결성 : 신뢰할 수 있는 서비스 제공을 위해서
의도하지 않은 요인에 의해 데이터, 소프트웨어, 시스템 등이 변경되거나 손상되지 않고
완전성, 정확성, 일관성을 유지함을 보장하는 특성.

pk는 unique인데 중복 데이터 들어가면 이와 같은 오류 생김


명령의 78 행에서 시작하는 중 오류 발생 -
insert into emp VALUES(2201,'이름1',100)
오류 보고 -
ORA-02291: 무결성 제약조건(GREEN.EMP_FK)이 위배되었습니다- 부모 키가 없습니다

create table emp(
    emp_no number,
    name VARCHAR2(20),
    dept_no NUMBER CONSTRAINT emp_fk REFERENCES dept(dept_no), --60,70
    --REFERENCES 참조_테이블명(참조PK컬럼)
    CONSTRAINT emp_pk PRIMARY KEY(emp_no)

create table dept(
    dept_no NUMBER CONSTRAINT dept_pk PRIMARY KEY,
    dept_name VARCHAR2(255)    
);
insert into dept VALUES(10,'영업부');
insert into dept VALUES(20,'관리부');
insert into dept VALUES(30,'생산부');
insert into dept VALUES(40,'마케팅');
insert into dept VALUES(50,'전산실');
select * from dept;

해결방법 : --dept테이블의 pk칼럼에 존재하는 데이터만 넣어주세요
);

<<NVIDIA>>

 

 

  • 3-4

--fk연결되어있는 테이블은 조인(join)을 통해서 조회할 수 있어요
select * from emp e, dept d
where e.dept_no=d.dept_no;

--Foreign Key 외래키 : 참조키
--다른 테이블의 pk를 참조하는 키
--키 정의시 REFERENCES 참조테이블(참조컬럼)
--추가 제약이 없는 경우 NULL 허용합니다.

--3. Unique
--중복데이터 불가합니다
--자동으로 index를 만들어줍니다
--null 허용하고 여러개 넣을 수 있어요 : not null을 지정하면 null 허용하지 않아요
--테이블 우클릭 > 제약조건 추가 > 고유항목 추가 (unique추가하기)

--constraint member5_name_nn not null(name) -- not null은 테이블 정의 불가능(컬럼 단위만 가능)

 

 

  • 4-5

https://www.tutorialspoint.com/sql/sql-operators.htm

--4. not null 제약조건
--column line에서만 정의 가능
--제약조건타입 Check입니다

--5. Check 제약조건
--컬럼의 데이터 타입의 범위 조건을 통해 허용가능한 조건으로 제한

--6. default
--컬럼데이터가 없을때 default 값이 적용

--자주 쓰는 제약 pk, fk, not null