AI 시대를 향유하는 AI 노마더

자바&Springboot플랫폼 과정/MariaDB

테이블 생성과 함수의 구조

AI노마더 2023. 11. 28. 17:48

수업내용

 

 

  • SQL의 의미
    • S: 구조화된
    • Q: 쿼리 (질의문)
    • L: 언어
  • DBMS의 약자
    • DATA
    • BASE
    • MANAGEMENT
    • SYSTEM
  • 관계형 데이터베이스
    • Table + Table + Table .... => DB
    • Table = 행 (row) + 열 (column)

 

테이블 생성문 예시 (callbook)

순서/이름/번호를 관리하는 테이블 기본 구조

데이터 조회문 예시

callbook 테이블을 모두 선택해서 출력한다

데이터 수정문 예시

callbook테이블의 1번행의 이름을 'Kane'으로 변경한다.

 

데이터 삭제문 예시

1번줄만 삭제하게 된다.

 

 

 

Board table 생성을 해보자!

1. Create Table로 행의 구성요소를 설정한다. 

  (DESC 명령어로 테이블 구조 조회도 해본다.)

tbl_board 테이블 생성 기본 틀

2. INSERT INTO  ()   VALUES () 로 각 행마다 원하는 정보를 입력한다. 

 

3. SELECT * FROM * 로 출력해본다. 

 

4. 결과

 

 

Primary Key란? 

  • 테이블 내에서 정보가 같은 경우 그 행을 고유하게 식별가능하게 하는 컬럼. 
  • 고유성 (Uniqueness) 
    • Primary key로 지정된 칼럼에는 중복된 값을 가질 수 없다.
  • 무결성 (Not Null)
    •  Primary Key 필드는 'null'값을 가질 수 없다. 모든 PK필드는 반드시 데이터 값을 가져야한다. 
  • 인덱싱 (Indexing)
    • Primary Key는 자동으로 인덱스가 생성되어 검색과 다른 데이터베이스의 작업 성능을 향상 시킨다. 

 

 

함수의 형태

  • 입력부 (Input Section)
    • 선언 : 함수의 인터페이스를 정의하고 입력 매개변수의 타입과 개수, 이름을 명시한다.
    • 초기화 : 함수 호출 시 제공되는 인수에 대한 초기설정 수행한다.
    • 호출 :  함수가 실제로 사용될 때 전달된 인수를 받는다..
    • 입력처리 : 전달받은 입력 값의 유효성 검사나 사전처리를 수행.
  • 처리부 (Processing Section)
    • 연산 및 로직처리 : 주어진 입력에 대해 정의된 연산이나 로직을 수행
    • 상태 관리 : 함수 내부의 상태를 관리하고, 중간 결과를 저장
    • 부작용 (side effects) : 반환값 외에도 파일 쓰기, 데이터베이스 조작 등의 외부 상태 변경을 수행
  • 출력부 (Output Section)
    • 결과 반환 : 최종 결과를 처리후 호출한 측에 반환한다.
    • 종료 :  함수의 실행이 완료되고, 결과와 함꼐 제어를 호출한 프로그램이나 함수에게 반환한다. 

 

스택구조

  • 함수의 실행은 컴퓨터 과학에서 '호출 스택' 과 '실행 스택'이라는 구조로 관리된다.
  • 스택은 후입선출 (LIFO, Last In First Out)방식으로 작동하는 데이터구조이다.
  • 함수의 호출과 실행에 있어서 스택구조는 다음과 같은 역할을 한다. 
    • 함수 호출 
      • 프로그램에서 함수를 호출하면, 호출에 대한 정보가 '스택 프레임'이라고하는 메모리 블록에 저장이된다. 
    • 함수 실행
      • 현재 스택의 최상위에 있는 스택 프레임이 가리키는 함수가 실행된다. 
    • 함수 종료
      • 함수의 실행이 완료가 되면, 그 결과가 반환될 수 있고, 해당 스택 프레임은 스택에서 제거가 된다. 제어는 스택 프레임에 저장된 반환 주소로 돌아가, 이전 함수의 실행을 계속한다. 

 

2의 배수인지를 판별하는 함수를 만들어서 사용해보기 

Mission 
입력값이 2의 배수인지 확인 하면서, 2의 배수가 아닐때는 1을 출력하고 맞을때는 0을 출력하게 하라!

 

 

숫자를 세개를 넣으면 최대 값을 알려주는 함수 만들어보기 

Mission 
세 개의 숫자는 같지 않다. 그 중 최고값을 알려줘야 한다.
  • 체크포인트
    • 함수의 형태를 내가 얼마나 알고 있나? 
    • 매개변수의 의미를 내가 알고 있나?
    • Return 키워드의 역할을 내가 알고 있나? 
    • 조건식을 중첩해서 사용할 수 있나? 
    • 연산에 필요한 변수를 스스로 만들 수 있나? 
 #include <stdio.h>

int findMaxNum (int n1, int n2, int n3) { 
	int max;

	if (n1 > n2 && n1 > n3){
		max = n1;
	} else if(n2 > n1 && n2 > n3){
		max = n2; 
	} else {
		max = n3;
	}
	return max;
}

int main () { 
	int a, b, c; 
	
	printf("세 정수를 입력하세요 : ");
	scanf("%d %d %d", &a,&b,&c);
	
	int max = findMaxNum(a, b, c);
	
	printf("최대값은 %d입니다.", max);
	
	return 0;
	
}