목차
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
|
m을 n으로 나눈 나머지를 계산한다.
MOD(m, n) |
SQRT
|
제곱근을 검색한다.
|
MOD(10, 4) → 2
|
SQRT(9) → 3
|
||
POWER
|
m의 n승을 계산한다.
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_DATE나 TO_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>
'일일 정리' 카테고리의 다른 글
NFS, 그룹 함수와 HAVING (0) | 2025.03.05 |
---|---|
APACHE - 가상 호스트, 단일 행 함수 날짜 함수, 단일 행 함수 변환 함수, 그룹 함수와 GROUP BY (0) | 2025.03.04 |
APACHE - httpd.conf, 다중 행/열 서브 쿼리, 집합 연산자, 단일 행 함수와 문자 함수 (2) | 2025.02.27 |
APACHE, 자기 참조 조인과 외부 조인, 단일 행 서브 쿼리 (0) | 2025.02.26 |
JOIN - 등가 조인과 비등가 조인, 조인문 작성 요령 (0) | 2025.02.25 |