일일 정리

단일 행 함수 - 숫자 함수와 날짜 연산, PHP - 2차원 배열

mysecurity 2025. 2. 28. 17:50

목차

1. 단일 행 함수 - 숫자 함수와 날짜 연산

1-1 숫자 함수

1-2 날짜 연산

 

2. PHP - 2차원 배열

2-1 2차원 배열 심화 실습

 

 

1. 단일 행 함수 - 숫자 함수와 날짜 연산

1-1 숫자 함수

함수명
기능
함수명
기능
ROUND
반올림해서 소수 이하 n자리까지 출력한다.
ROUND(m, n) 
CEL
m보다 큰 가장 작은 정수를 검색한다. (소수점 올림)
ROUND(123.4567, 3) → 123.457 
CEIL(2.34)→ 3 
TRUNC
소수 이하 n 자리미만을절삭한.
TRUNC(m, n) 
FLOOR
m보다 작은 가장 큰 정수를 검색한다. (소수점 버림)
TRUNC(123.4567, 3) → 123.456 
FLOOR(2.34)→ 2 
MOD
mn으로 나눈 나머지를 계산한다.
MOD(m, n) 
SQRT
제곱근을 검색한다. 
MOD(10, 4) → 2 
SQRT(9) → 3 
POWER
mn승을 계산한다.
POWER(m,n) 
SIGN
음수: -1, 양수: 1, 0 이면 0을검색한다. 
POWER(2, 4) → 16 
SIGN(-3) → -1 

 

 

- TRUNC에서 n을 입력하지 않으면 FLOOR과 결과가 같다.

 

ex) 다양한 숫자 함수를 이용한 검색 결과를 확인한다.

 SQL> SELECT ROUND(98.765), TRUNC(98.765),
 2           ROUND(98.765,2), TRUNC(98.765,2)
 3  FROM dual;
 
 SQL> SELECT MOD(19,3), MOD(‐19,3)
 2  FROM dual;
 
 SQL> SELECT CEIL(3.5), FLOOR(3.5)
 2  FROM dual;
 
 SQL> SELECT POWER(13,4), SQRT(16)
 2  FROM dual;

 

1-2 날짜 연산

● 날짜 데이터

‐ 문자처럼 표기하지만 숫자처럼 계산된다.

‐ 6 byte 크기로 저장된다.

‐ 년 월 일 시 분 초 (YYYY MM DD HH24 MI SS)를 저장한다.

‐ 출력은 터미널의 출력식에 따른다.

‐ 날짜 관련 검색에서는 보이지 않는 부분에 주의한다. 날짜 관련 연산은 반드시 변환 함수를 사용한다.

‐ 예약어처럼 쓰이는 sysdate 함수를 이용해서 시스템의 현재 날짜를 검색한다.

 

● 날짜 연산

연산 결과 해석
날짜 + m 날짜 m일 이후 날짜
날짜 - m 날짜 m일 이전 날짜
날짜 - 날짜 숫자 두 날짜 간 기간

- 시간 : m/24

 

ex) 현재 날짜를 다양한 포맷으로 검색한다.

 SQL> SELECT sysdate FROM dual;
 SQL> ALTER SESSION SET nls_date_format = 'YYYY/MM/DD';
 SQL> SELECT sysdate FROM dual;
 SQL> ALTER SESSION SET nls_date_format = 'YYYY/MM/DD:HH24:MI:SS';
 SQL> SELECT sysdate FROM dual;

 

‐Windows 기본 날짜 출력 형식 : 'YY/MM/DD'

‐UNIX 기본 날짜 출력 형식 : 'DD-MON-YY'

‐ nls_date_format은 설정은 현재 세션만 변경된다. glogin.sql 파일을 이용한다.

 

응용 프로그램에서 날짜 관련 검색은 반드시 TO_DATETO_CHAR를 이용한다.

ex) 오늘날짜, 입사일자, 입사일로부터 오늘까지 기간, 입사 100일째 되는 날 등을 검색하고 날짜 연산의 결과를 살펴본다.

 SQL> SELECT eno, ename, sysdate 오늘, hdate 입사일,
 2           TRUNC(sysdate)‐TRUNC(hdate)+1 근무일, hdate+99 "100일" // 입사일도 1일로 간주
 3  FROM emp;

 

- 시분초 상관없이 날짜연산할 때 반드시 TRUNC를 사용하여 시분초를 버린다.

- TRUNC(sysdate - hdate)와는 다른 값이 나올 수 있다.

- 날짜 연산은 ROUND하는 경우가 거의 없고 대부분 TRUNC한다.

 

2. PHP 배열

2-1 2차원 배열

●  저장된 배열 출력 프로그램 실습

<html>
    <head>
        <title>table01.php</title>
        <meta http-equiv="content-type" content="text/html; charset=utf-8">
    </head>
<body>

<table border = '1' align = 'center'>
<?
    $ar = array(array("a","b","c","1"), array("d","e","f","2"),array("g","h","i","3"));


    for($i = 0; $i < count($ar); $i++){         // 행
        echo("<tr align = 'center'>");
        for ($j = 0; $j < count($ar[$i]); $j++){    // 열
            echo("<td width = 100, height = 30> {$ar[$i][$j]} </td>");
        }
        echo("</tr>");
    }
?>
</table>

<hr><p>
<? show_source(__FILE__); ?>
</body>
</html>

프로그램 실행 화면

 

● 배열 생성 및 출력 프로그램 실습

					// 행 및 열 입력 후 출력 HTML //
<html>
<head>
<title>ta01.html 입력 폼파일</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
</head>

<form method="post" action="te01.php">
      행 및 열 : <input type="text" name="num"><br>

        <input type="submit" name="확인" value="확인">
        <input type="reset" name="취소" value="취소"><br>
</form>
 
<hr>
<?  show_source(__FILE__); ?>
</html>

		
					// 행 및 열 입력 후 출력 PHP //
<html>
    <head>
        <title>ta01.php</title>
        <meta http-equiv="content-type" content="text/html; charset=utf-8">
    </head>
<body>

<?
  $num = $_POST["num"];
  $k = 0;
  
  for($i = 0; $i < $num; $i++){     
     for($j = 0; $j < $num; $j++){
         $k = $k+1;
         $ar[$i][$j] = $k; 
     }
  }          // 배열 생성
  
  echo("<table border='1'>");
  for($i = 0; $i < $num; $i++){     
     echo("<tr>");
     for($j = 0; $j < $num; $j++){
         echo("<td width='84' align='center'> {$ar[$i][$j]} </td>");
     }   
     echo("</tr>");
  }
  echo("</table>");
 ?>

<hr><p>
<? show_source(__FILE__); ?>
</body>
</html>
</html>

배열의 행/열의 수 입력 화면
입력에 따른 출력 화면

 

● 배열 생성 및  삼각형 출력 프로그램 실습

					// 삼각형으로 배열 출력 HTML //
<html>
<head>
<title>ta02.html 입력 폼파일</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
</head>

<form method="post" action="te02.php">
      행 및 열 : <input type="text" name="num"><br>

        <input type="submit" name="확인" value="확인">
        <input type="reset" name="취소" value="취소"><br>
</form>
 
<hr>
<?  show_source(__FILE__); ?>
</html>


					// 삼각형으로 배열 출력 PHP //
<html>
    <head>
        <title>ta02.php</title>
        <meta http-equiv="content-type" content="text/html; charset=utf-8">
    </head>
<body>

<?
  $num = $_POST["num"];
  $k = 0;
  
  for($i = 0; $i < $num; $i++){     
     for($j = $num-$i-1; $j < $num; $j++){
         $k = $k+1;
         $ar[$i][$j] = $k; 
     }
  }          // 배열 생성
  
  echo("<table border='1'>");
  for($i = 0; $i < $num; $i++){     
     echo("<tr>");
     for($j = 0; $j < $num; $j++){
         echo("<td width='84' align='center'> {$ar[$i][$j]} </td>");
     }   
     echo("</tr>");
  }
  echo("</table>");
 ?>

<hr><p>
<? show_source(__FILE__); ?>
</body>
</html>
</html>

배열의 행/열 수 입력 화면
입력에 따른 출력 화면