22.01.12 DB - SELECT / IoT 디지털신호

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

SQL 문

-SELECT : 데이터 검색, 분석 테이블에서 데이터를 검색해 가공하기위해 검색함
-DML 데이터조작어 DB운영
- DDL 데이터정의어 테이블 구조
-DCL 데이터 제어어 조작어보안, 권한
※테이블 열(컬럼) 이름은 직관적으로
-셀렉션 : 테이블을 구성하는 모든컬럼을 볼때
-프로젝션 : (조건) 특정 컬럼만 추출.
-조인 : 여러개의 테이블에서 데이터 검색


  • SELECT

SELECT 열이름 <--SELECT LIST 이 절에 열(리스트에 적은 그대로 결과 열머리글 표시됨)의 데이터가 결과로 출력
FROM TABLE_NAME

desc 테이블 : 테이블구조확인해라 라는 뜻

-/ : sql 부퍼에 저장된 마지막에 실행시켰던 명령어가 나옴
-출력결과를 편집해서 보기쉽게 sql plus만의 편집명령어가 있음.
--> ex) column format a19 : 출력된 컬럼 결과를 편집해라 _ 라는 포맷 으로. 를 19개로/ a=문자와 날짜 데이터 표시할때 9=숫자데이터 자릿수 표시
-clear 잘못출력된 컬럼을 초기화시킴
-테이블의 컬럼을 행단위로 데이터처리
-데이터가 테이블간 foreign key로 참조하기 때문에 연관지어 확인해야됨
-선택된 열이름은 열머리글(default 대문자로!!)이 출력된다 첫번째 열은 신중히 결정. 쓰여진 순서대로 출력됨

sql문 실행하는 작업
1.검증 2.실행계획 수립 : 테이블로부터 데이터가져오는방법 3.실행

D.D(데이터 사전: 메타데이터 검색, parse결과도 여기에 결과저장됨) 검색 작업 - 파싱 작업 - 출력

파싱결과도 저장이 되기때문에 SQL문 실행시 사전에서 파싱결과를 검색하게됨 - 같은 것이 검색되면 파싱작업이 안되기 때문에 속도가 빨라짐 - 대소문자는 상관없지만, 자기만의 규칙으로 대소문자 구분시켜 놓는게 좋다. 가독성이 좋고 코드도 짧을수록 좋다!

산술연산 컬럼과 상수, 컬럼 간의 가능.

-산술연산 숫자 가능, 날짜는 일수에 대해 덧셈 뺄셈만 가능. 문자는x ---avg(값)+1000 도 가능
-null값은 산술연산x null is null / nvl(컬럼, 대체값)함수 --->> 컬럼에 null이 존재한다면 대체값, null값이 아니면 컬럼의 값 출력.

열머리글(default 대문자) 변경하는 법 alias

-as : 단일 문장, 변경하고자하는 열 뒤에 붙음 1개씩만 가능
-생략하고 공백 : 단일 문장, but 성능 저하됨 (공백 뒤에 문장을 열로 인식을 먼저하기땜에). 단일문장 대문자로 출력됨
-" " : 복수 문장, 대문자 소문자 함께 나오게 가능, 형식그대로 ""와 as 같이 쓰는건 안좋음.

리스트에 있는 문자와 날짜는 결과값으로 출력하려면 '' 붙여줘야됨. 테이블명과 열이름이 아닌 숫자는 그대로 인식이 되기 땜에.

distinct 중복행제거, 셀렉문에 하나만!
-결과에 null값이 있어도 행 수를 셈
-멀티플 중복제거: 첫 열 기준으로 그룹화를 진행 - 두번째 열에서 중복 제거됨. 열 순서대로 그룹화 후 중복이 제거됨 // 결과적으로 행단위로 중복이 제거 그룹화 때문에 성능에 악영향

행제한 조건절 where

select 절 보다 먼저 실행이 됨. 실행순서는 1.from절 2.where절 3.select절 처리 ~~


아두이노

코딩할때 대소문자 구별!!
번호는 제어하는 것. 저항있는쪽에 배선하기.

//변수 : 데이터 저장할수있는 임시적 공간
//변수생성 방법 : 자료형 변수명 대입연산자 값 ;으로 마무리. 
// ex ) 정수를 저장할 수 있는 num

int pushButton = 2;


void setup() { 
//시리얼 모니터를 통해 값을 보고 싶다면 먼저 해줘야하는 설정
  Serial.begin(9600); //통신속도, 1초에 9600
  pinMode(pushButton, INPUT); //해당 핀 번호를 입력이나 출력 용도로 설정하는 코드 입출력 구분은 우노보드 기준으로 생각해야함
}

void loop() {
  
  int buttonState = digitalRead(pushButton); //해당 핀번호로부터 디지털신호를 읽어들이는 코드
  Serial.println(buttonState); //시리얼모니터에 출력을 할때 사용되는 코드
  //버튼의 값은 버튼스테이트에저장되어있음.(int 로 digitalRead 변수를 선언했기때문에ㅔ)
  analogWrite(핀번호, 숫자-희미해지는 숫자~255까지)//아날로그센서 
  
}

int rled=8, bled=9 cled=10; //이런식으로 한번에 선언가능


//조도센서, 가변저항도 비슷 아날로그 값은 핀모드 안써도됨. INPUT 씀. 입력받는걸로 입력되어있다.
핀번호에 물결이 있으면 아날로그쓸수있다..!

RGB led는 제일 긴 선이 - 로 배선
버튼은 배선할때 마주보는 다리로 같은라인에 걸쳐 놓기
다리방향은 플마 상관없다.
핀번호와 연결되는 배선에 저항 넣고, 나머지 다리는 플러스

void loop() {

  for(int i = 0; i<= 255; i++) {
  analogWrite(10, i);
  delay(10);
  }  //반복문으로 아날로그방식 제어할수있음. 변수 i를 0부터 255까지 1씩증가시켜 255이하까지 반복시킴 

 for(int i = 255; i>=0; i--){
  analogWrite(10, i);
  delay(10);
 }
 
}```

post-custom-banner

0개의 댓글