22.01.14 DB - JOIN / IoT

최고고·2022년 1월 14일
0
post-custom-banner

JOIN

-조인이 발생하면 시스템 내부적으로 조인대상 테이블의 행들을 하나의 행으로 조합하게됨
-조인 조건 : 하나의 행으로 조합할 때 무결성이 보장이 된 행들이 보장되어야함. (d_id=d_id)
-n(조인테이블의 개수)-1개의 조인조건을 where절에 명시.
-조인조건이 생략되거나 잘못 작성시 카티션 프로덕트 현상 발생(=가능한 모든행의 조합을 시도)
-똑같은 이름을 가진 컬럼을 명시 할때 반드시 소유주 테이블 이름을 접두어로 명시
-고유 컬럼은 굳이 안붙여도 되지만 되도록 테이블써주자.
-from 절의 alias 는 공백으로 가능 -> 쓰게되면 셀렉 리스트와 조건문에 접두어 테이블이름을 짧게 줄일 수 있다. 다만, 혼용해서 쓸 수 없다. 풀네임 썼다가 alias 안됨.

  • 오라클 전용 조인
    -등가조인 EQ : 같은 데이터. 데이터를 늘 같게하는 조건. 조건에 맞는행들만 실행. 연산자 = 를 씀. PK=FK 기본키=외래키
    조인 조건에 일반 조건을 써야할 때는 and를 써야됨. 그렇지않으면 카티션 프로덕트 발생함!
    -비등가 조인 NON EQ : 데이터가 전혀다를 때 =연산자를 쓸 수없음. ex)between a and b 이용
    -포괄조인 OUTER : 한쪽 테이블에 데이터가 더 많을 때. 데이터가 부족한 테이블 쪽에 연산자 (+)를 사용하면 널값을 갖는 행을 삽입함.
    -자체조인 : 1개의 테이블 대상, 한 테이블을 두번 검색한다.

select e.last_name, d.department_name, d.location_id, l.city
from employees e, departments d, locations l
where e.department_id=d.department_id
and d.location_id=l.location_id
and e.commission_pct is not null

아두이노

-map(센서값, 현제센서의 최소값, 현재센서의 최대값, 변화할 최소값, 변화할 최대값) : 센서의범위를 내가 원하는 범위로 조절하는 함수
-가변저항은 스피커

void loop() {
 tone(8,500,1000); // tone(핀번호, 주파수, 시간) ; 피에조부저 주파수를얼마나 길게 쓸것인가 1초
 delay(2000);  아래 코드를 지연시킴. 톤에서 실행된 시간차 주기위해 2000으로 지정.
 
 //핀모드쪽 선이 저항쪽으로 가게 
 
 if(digitalRead(3) == 1){ // 디지털신호를 읽어들이기. 3번핀이 1일때(눌릴때)
    tone(8,262,300);  //부저에 나올 소리 주파수 
  }else{
   digitalWrite(3,0); //디지털신호를 쓸때 
  }
 if(digitalRead(4) == 1){ 
    tone(8,294,300);
  }else{
   digitalWrite(4,0);
  }if(digitalRead(5) == 1){
    tone(8,330,300);
  }else{
   digitalWrite(5,0);
  }if(digitalRead(6) == 1){
    tone(8,349,300);
  }else{
   digitalWrite(6,0);
  }if(digitalRead(7) == 1){
    tone(8,392,300);
  }else{
   digitalWrite(7,0);
  }
 

-서보모터는 각도조절에 쓰임.검은선은 마이너스, 흰색 값을 읽어오는 제어선, 빨간색은 플러스선.

#include <Servo.h> //외부에서 라이브러리 불러들이기 
Servo myservo; // myservo라는 변수지정

void setup() {
myservo.attach(6); //핀번호6

  
}

void loop() {

  myservo.write(150); // 쓰기
  delay(1000);
  myservo.write(0);
  delay(1000);
  
}
post-custom-banner

0개의 댓글