오늘보다 더 나은 내일의 나에게_
비전공자의 IoT 국비 교육 수강일지 Day_04 본문
DB
DESC TABLE명 - 특정 테이블에 어떤 칼럼이 있는지 구조가 무엇인지 조회
테이블 조회
SELECTION - 모든 컬럼을 볼 때
PROJECTION - 특정 컬럼을 볼 때
*JOIN - 여러 개의 테이블에서 데이터를 동시에 검색할 때
SELECT (컬럼의 이름을 명시) => LIST절 __ 명시된 컬럼의 데이터를 결과로 출력, 출력과 관련된 절
FROM (테이블 이름을 명시)
SELECT 조회 후 나오는 최상단은 컬럼명, 열 머리글이 나온다
테이블에서 데이터는 행단 위로 관리!
SELECTLIST에 명시가 된 컬럼의 순서대로 출력!
SELECT COLUMN명 FROM TABLE명
모든 컬럼을 조회할 때는 * 을 사용하고 보고 싶은 컬럼명을 조회할 때는 보고 싶은 컬럼명만 작성하면 된다.
기존 DEPARTMENT_NAME 컬럼 길이가 매우 길어서 가독성이 좋지 않았으나
COLUMN 컬럼명 FORMAT ___ 명령어를 통해 컬럼 길이를 조정할 수 있다. (SQLPLUS 편집 명령어)
컬럼 길이를 취소하는 명령어는 COLUMN 컬럼명 CLEAR이다
SQL 문 작성
-SQL문은 대소문자를 구분하지 않지만 구분하는 게 좋다.
-SQL 문은 하나 이상의 줄에 입력할 수 있다.
-키워드는 약어로 쓰거나 여러 줄에 나눠 쓸 수 없다.
-절은 일반적으로 서로 다른 줄에 쓴다.
-들여 쓰기를 사용하면 SQL문을 좀 더 읽기 쉽게 작성 가능하다.
출력되는 컬럼은 무조건 대문자로 출력된다.
EX)
1. 우리 회사에 다니는 사원의 이름과 그 사원이 받는 월급여와 근무하는 부서를 출력
EX)
2. 우리 회사에 다니는 사원의 이름과 그 사원이 받는 연봉을 출력
산술 연산
-숫자 데이터 가능
-문자와 날짜 데이터 불가능
-하지만 날짜 데이터의 일수 +,- 연산이 가능!
(COL + 상수, COL + COL)
EX) DATE 날짜 연산
EX) NULL연산
NVL(NULL VALUE LANGUAGE) 함수
사용법 -> NVL(COL, 대체 값)
- NULL값 대체 연산 가능함
열 별칭(ALIAS)
-열 머리글의 이름을 변경
-계산식에 대한 열 머리글을 지정할 때 유용
-일반적으로 대문자로 출력!
-열 이름 바로 뒤에 사용, 열 이름과 별칭 사이에 선택적으로 AS키워드 사용
-공백 또는 특수 문자가 있거나 대소문자를 구분할 경우 큰 따옴표 사용
-1개의 별칭만 사용 가능!!
-쌍따옴표 사용 시 AS키워드는 사용 안 하는 게 좋다!
AS, 공백 -> 단일 문장, 대문자
" " -> 복수 문장 쓰인 형식 그대로(대소문자 구분)
=> AS를 사용하는 게 좋다! (속도가 빠르다, 가독성이 좋다.)
연결 연산자(||)
-SQLPLUS를 사용해서 보고서를 만들 때 사용(현업에서는 거의 사용되지 않는다고 한다)
리터럴 문자열
-SQL문에 포함되어있지 않은 문자, 숫자 또는 날짜(즉 명시되어있지 않은 값)
-문자, 날짜 리터럴 값은 작은따옴표로 무조건 사용!
중복 행 제거 (DISTINCT)
사용방법 => SELECT DISTINCT 컬럼명 FROM 테이블명
-전체 문장에서 한 번만 사용!
-뒤에 나열된 모든 컬럼의 중복을 제거한다!
-되도록이면 사용하지 않는 게 좋다.
EX) 회사에 근무하는 사원의 이름과 연봉을 구하시오.
단 이름은 NAME으로 연봉은 AnnSal로 출력하시오.
WHERE
(조건식 컬럼 연산자 값)
-행을 제한하는 조건절
-반드시 조건식을 명시(컬럼 연산자 값)
-문자/날짜 값 사용 시=> ' ' 작은따옴표 사용
-값을 사용할 때 반드시 table에 저장된 형식을 그대로 사용(대소문자 구분)
****WHERE절에서 AS를 사용할 수 없다(실행 순서가 FROM -> WHERE -> SELECT이기 때문에)
단일 비교 연산자
연산자 | 의미 |
= | 같음 |
> | 보다큼 |
>= | 크거나 같음 |
< | 보다 작음 |
<= | 작거나 같음 |
<>, != (권장되는사용법) | 같지않음 |
실행 우선순위
SELECT -----------3
FROM -------------1
WHERE -----------2
EX) 90번 부서에 근무하는 사원의 이름과 급여를 출력하시오
EX) 연봉이 150000 이상인 사원의 이름과 연봉을 구하시오
가변저항
-굵기에 따라 저항이 변한다. 값을 읽어올 수 있다.
-연속적인 데이터 아날로그 값을 가져올 수 있다.
-모듈 중 제일 불안정한다
가변저항 => 들어오는 값 0 ~1023
LED => 출력 값 0~255
map
사용방법 => map(변환 값, 변환 전 최소 범위, 변환 전 최대 범위, 변환 후 최소, 변환 후 최대)
RGB LED
가변저항을 이용해 RGB LED 색상을 조절할 수 있다.
3개의 가변저항에 각각의 색이 들어올 수 있도록 배선 후 출력하여 확인한다.
map을 이용해 변수에 값을 저장한다!
DC MOTOR/SERVO MOTOR
아두이노 스케치에서는 import를 수동으로 작성해야 한다. 그래서 상단에 #include <> 작성해야 한다.
그리고 myservo 객체를 만들어준다. 후에 setup에 attach 함수에 8핀을 컨트롤하도록 연결해준다.
반복문을 이용해서 motor가 서서히 돌아갈 수 있도록 작성해준다.
가변저항과 Servo Motor를 연결해 가변저항을 조절하면 motor가 움직이게 된다.
초음파 센서
거리 = 속력 x 시간
T에서 초음파를 쏘고 R에서 초음파를 측정
VCC | Trig | Echo | Gnd |
5V + | OUTPUT | INPUT | - |
시리얼 모니터의 출력 값을 확인하다 보면 마이너스 값과 같은 이상한 값이 나오는 것을 방지하기 위해 조건문을 사용하면 처리할 수 있다.
EX) 자동차 후방감지 센서 만들기
거리가 일정 이하가 되면
Piezo Buzzer를 울리게 한다.
tone(핀 번호, 진동수, 지속시간);
tone(8, 330, 100); -> 330Hz(미) 1초
LED 전구 또한 깜빡이게 한다
오늘 크게 배운 것 들
-SQL 산술 연산, NVL함수, 중복행 제거
-SELECT문 실행 시 우선순위
-가변저항과 map함수
'비전공자의 코딩일지' 카테고리의 다른 글
비전공자의 IoT 국비 교육 수강일지 Day_06 (0) | 2021.12.27 |
---|---|
비전공자의 IoT 국비 교육 수강일지 Day_05 (0) | 2021.12.24 |
비전공자의 IoT 국비 교육 수강일지 Day_03 (0) | 2021.12.22 |
비전공자의 IoT 국비 교육 수강일지 Day_02 (0) | 2021.12.21 |
비전공자의 IoT 국비 교육 수강일지 Day_01 (0) | 2021.12.20 |