오늘보다 더 나은 내일의 나에게_

비전공자의 IoT 국비 교육 수강일지 Day_04 본문

비전공자의 코딩일지

비전공자의 IoT 국비 교육 수강일지 Day_04

chan_96 2021. 12. 23. 22:31
728x90

DB

DESC TABLE명 - 특정 테이블에 어떤 칼럼이 있는지 구조가 무엇인지 조회

 

DEPARTMENTS 테이블 구조 조회

 

 

테이블 조회

SELECTION - 모든 컬럼을 볼 때
PROJECTION - 특정 컬럼을 볼 때
*JOIN - 여러 개의 테이블에서 데이터를 동시에 검색할 때

 

SELECT (컬럼의 이름을 명시) => LIST절 __ 명시된 컬럼의 데이터를 결과로 출력, 출력과 관련된 절
FROM     (테이블 이름을 명시)

SELECT 조회 후 나오는 최상단은 컬럼명, 열 머리글이 나온다
테이블에서 데이터는 행단 위로 관리!
SELECTLIST에 명시가 된 컬럼의 순서대로 출력!

 

 

 

SELECT COLUMN명 FROM TABLE명

모든 컬럼을 조회할 때는 * 을 사용하고 보고 싶은 컬럼명을 조회할 때는 보고 싶은 컬럼명만 작성하면 된다.

SELECT * FROM DEPARTMENTS;(모든 컬럼 조회)

 

 

기존 DEPARTMENT_NAME 컬럼 길이가 매우 길어서 가독성이 좋지 않았으나 

COLUMN 컬럼명 FORMAT ___ 명령어를 통해 컬럼 길이를 조정할 수 있다. (SQLPLUS 편집 명령어)

컬럼 길이를 취소하는 명령어는 COLUMN 컬럼명 CLEAR이다

DEPARTMENT_NAME 컬럼 길이 수정 후

 


SQL 문 작성

-SQL문은 대소문자를 구분하지 않지만 구분하는 게 좋다.
-SQL 문은 하나 이상의 줄에 입력할 수 있다.
-키워드는 약어로 쓰거나 여러 줄에 나눠 쓸 수 없다.
-절은 일반적으로 서로 다른 줄에 쓴다.
-들여 쓰기를 사용하면 SQL문을 좀 더 읽기 쉽게 작성 가능하다.

출력되는 컬럼은 무조건 대문자로 출력된다.

 

EX)

1. 우리 회사에 다니는 사원의 이름과 그 사원이 받는 월급여와 근무하는 부서를 출력

 

 

 

EX)

2. 우리 회사에 다니는 사원의 이름과 그 사원이 받는 연봉을 출력

 

 

 

산술 연산

-숫자 데이터 가능 
-문자와 날짜 데이터 불가능
-하지만 날짜 데이터의 일수 +,- 연산이 가능!

(COL + 상수, COL + COL)

산술연산자 사용 예제

 

 

EX) DATE 날짜 연산

DATE 날짜연산시 DAY는 연산 가능

 

 

EX) NULL연산

컬럼 연산시 NULL 값이 있으면 출력X

 


NVL(NULL VALUE LANGUAGE) 함수
사용법 -> NVL(COL, 대체 값)
- NULL값 대체 연산 가능함

 

 

 

열 별칭(ALIAS)
-열 머리글의 이름을 변경
-계산식에 대한 열 머리글을 지정할 때 유용
-일반적으로 대문자로 출력!
-열 이름 바로 뒤에 사용, 열 이름과 별칭 사이에 선택적으로 AS키워드 사용
-공백 또는 특수 문자가 있거나 대소문자를 구분할 경우 큰 따옴표 사용
-1개의 별칭만 사용 가능!!
-쌍따옴표 사용 시 AS키워드는 사용 안 하는 게 좋다!

AS, 공백 -> 단일 문장, 대문자

" " -> 복수 문장 쓰인 형식 그대로(대소문자 구분)

=> AS를 사용하는 게 좋다! (속도가 빠르다, 가독성이 좋다.)

 

 

컬럼 AS 사용

 

AS사용과 AS생략 사용

 

AS사용시 쌍따옴표 사용

 

 

연결 연산자(||)
-SQLPLUS를 사용해서 보고서를 만들 때 사용(현업에서는 거의 사용되지 않는다고 한다)

리터럴 문자열
-SQL문에 포함되어있지 않은 문자, 숫자 또는 날짜(즉 명시되어있지 않은 값)
-문자, 날짜 리터럴 값은 작은따옴표로 무조건 사용!

 

 

중복 행 제거 (DISTINCT)
사용방법 => SELECT DISTINCT 컬럼명 FROM 테이블명
-전체 문장에서 한 번만 사용!
-뒤에 나열된 모든 컬럼의 중복을 제거한다!

-되도록이면 사용하지 않는 게 좋다.

중복행 제거

 


 

EX) 회사에 근무하는 사원의 이름과 연봉을 구하시오.
     단 이름은 NAME으로 연봉은 AnnSal로 출력하시오.

AS "AnnSal" 에서 AS는 생략하는게 좋다!

 

WHERE

(조건식 컬럼 연산자 값)

-행을 제한하는 조건절

-반드시 조건식을 명시(컬럼 연산자 값)

-문자/날짜  값 사용 시=> ' ' 작은따옴표 사용

-값을 사용할 때 반드시 table에 저장된 형식을 그대로 사용(대소문자 구분)

 

****WHERE절에서 AS를 사용할 수 없다(실행 순서가 FROM -> WHERE -> SELECT이기 때문에)

 

WHERE절에서 작은따옴표 사용

 

단일 비교 연산자

연산자 의미
= 같음
> 보다큼
>= 크거나 같음
< 보다 작음
<= 작거나 같음
<>, != (권장되는사용법) 같지않음

 

 

실행 우선순위

SELECT  -----------3
FROM -------------1
WHERE -----------2

 

 

EX) 90번 부서에 근무하는 사원의 이름과 급여를 출력하시오

WHERE 사용

 

EX) 연봉이 150000 이상인 사원의 이름과 연봉을 구하시오

WHERE절 사용

 

 


가변저항

-굵기에 따라 저항이 변한다. 값을 읽어올 수 있다.

-연속적인 데이터 아날로그 값을 가져올 수 있다.

-모듈 중 제일 불안정한다

 

가변저항 연결 후 값 출력 모습

 

 

가변저항 => 들어오는 값 0 ~1023

LED       => 출력 값 0~255

 

가변저항을 이용한 LED 밝기 조절

 

가변저항 LED 연결모습

 

 

map

사용방법 => map(변환 값, 변환 전 최소 범위, 변환 전 최대 범위, 변환 후 최소, 변환 후 최대)

map 함수 사용

 


RGB LED

 

RGB배선

 

가변저항을 이용해 RGB LED 색상을 조절할 수 있다.

3개의 가변저항에 각각의 색이 들어올 수 있도록 배선 후 출력하여 확인한다.

map을 이용해 변수에 값을 저장한다!

 

 

가변저항 3개와 RGB LED 연결

 

 

연결모습

 

 


DC MOTOR/SERVO MOTOR

아두이노 스케치에서는 import를 수동으로 작성해야 한다. 그래서 상단에 #include <> 작성해야 한다.

그리고 myservo 객체를 만들어준다. 후에 setup에 attach 함수에 8핀을 컨트롤하도록 연결해준다.

반복문을 이용해서 motor가 서서히 돌아갈 수 있도록 작성해준다.

 

 

반복문을 이용한 코드

 

 

가변저항과 Servo Motor를 연결해 가변저항을 조절하면 motor가 움직이게 된다.

가변저항과 ServoMotor 연결

 

motor와 가변저항 연결모습

 

 


초음파 센서

 

거리 = 속력 x 시간

T에서 초음파를 쏘고 R에서 초음파를 측정

 

VCC  Trig  Echo  Gnd 
5V + OUTPUT  INPUT 

 

 

초음파센서를 통한 거리측정

 

 

초음파 센서 연결 모습

 

 

 

시리얼 모니터의 출력 값을 확인하다 보면 마이너스 값과 같은 이상한 값이 나오는 것을 방지하기 위해 조건문을 사용하면 처리할 수 있다.

 

 

거리가 5cm이상 300cm 이하 출력

 

 

EX) 자동차 후방감지 센서 만들기

 

거리가 일정 이하가 되면

Piezo Buzzer를 울리게 한다.

tone(핀 번호, 진동수, 지속시간);

tone(8, 330, 100); -> 330Hz(미) 1초

LED 전구 또한 깜빡이게 한다

 

거리가 15cm이하이면 LED가 0.1초동안 깜빡이고 buzzer가 0.1초 동안 울림

 

오늘 크게 배운 것 들

-SQL 산술 연산, NVL함수, 중복행 제거

-SELECT문 실행 시 우선순위

-가변저항과 map함수

 

 

728x90
Comments