본문 바로가기
KOSTA교육/수업

[3/100] 240412

by 이원혁 2024. 4. 12.
반응형

오라클 기본 문법(쿼리문) 추가 공부 필요.

 

127.0.0.1 = localhost

 

db에서는 null에 값을 집어넣어도 null이라는데 C#이랑 다른건지 이거는 확인이 필요할듯 C#에서도 내가 이해를 잘못하고 있던거일수도 있음

 

오라클 환경설정 내역

 

널값 배경 색 변경(데이터베이스-고급탭)

데이터베이스 nls탭 날짜 YYYY/MM/DD 시간 YYYY/MM/DD HH24:MI:SS 시간tz YYYY/MM/DD HH24:MI:SS

글꼴변경 코드편집기에서 변경

 

오라클에서 alter 권한변경

 

primary key = 고유인식 not null, unique

fk = pk빌려다가 쓰는 다른건데 공부정리필요 참조무결성

references ?

 

constraint = 제약조건

타입을 date로 하는 경우는 날짜의 계산이 가능함

 

ANSI SQL이란 ANSI에서 정한 규격등을 통과하여 DB라고 인정받은거

 

무결성 제약 조건이란?

데이터 무결성제약조건(Data Intergrity Constraint Rule)

테이블에 부적절한 자료가 입력되는 것을 방지하기 위해 테이블 생성 시 각 컬럼에 적응하는 여러가지 규칙 

은어 : 깨졌다 = 무결성 위배되었다

 

 

 

정규화와 역 정규화

 

관계형 DB에서 수정할때 트래픽이 너무 몰리는 DB일경우에 일부러 관계에서 떼놓고 계속 참조되지 않도록 성능 업

 

 

 

 

 

pk는 없을수도 있지만 그 경우에는 잘못된 설계이거나 그럴 이유가 있거나 한다. 있어야 편하다.

게시판들 보면 글번호같은게 계속 오르는게 자동증가번호로 pk로써 이용

중요할수록 자동증가를 안쓰고 복잡하게 만드는 케이스.

 

 

pk fk는 한방에 묶기

 

트리처럼 멀리 있더라도 간접적으로 거쳐서 연결만 되어있으면 접근이 가능한데 이제 직접 연결과 속도차이가 얼마나 나는가

 

 

여러개 테이블 관계맺기 - 조인하다

 

서브쿼리 개념

 

별칭 적어주는 알리어스 스킬

오라클(sql)에서의 주석은 //가 아닌 -- 마이너스 두개입니다

단축키는 컨트롤 + 슬러시(우측쉬프트왼쪽키)

C#에서 쓰던것도 일단 먹힘 // , /* */

오라클에서는 sysdate를 쓰면 오늘날짜

table명으로 듀얼dual을쓰면 딱 하나만 나와서 쓸수있음 temp성 임시성

 

select * from dual;

select sysdate from dual;

 

여기서는 &&나 ||가 아니고 and와 or을 이용한다.

그외에 비교하는 부호는 거의같은데 !=를 <>로 쓰기도 한다(!=써도됨)

 

 

막줄에서 원본데이터의 변형을 금지하기 때문에 해서는 안된다. 금하는 이유는 full scan으로 메모리에 전부 데이터를 올려서 하나씩 뒤져보기 때문에 느립니다 그리고 옵티마이저가 똑똑해서 그위에 단순비교도 형변환을 알아서 해주고 알아먹어준거지 실제로 비교할때는 원본데이터는 냅두고 뒤에 조건식을 형 변환(casting)을 스마트하게 해야한다.

 

원본데이터 변형을 주지 않고 형 변환을 이용하여 비교하는 방법

-- where절에서 LIKE 쓰지마라

이유는 모두 메모리에 올려서 하나씩 비교하므로 복잡도가 o(n)인가?

null이 아닌것은 is not null로 출력한다.

반응형

'KOSTA교육 > 수업' 카테고리의 다른 글

[6/100] 240417  (0) 2024.04.17
[5/100]240416  (0) 2024.04.16
[4/100] 240415  (0) 2024.04.15
[2/100] 240411  (1) 2024.04.11
[1/100] 240409  (0) 2024.04.09