IP 주소는 출력에는



localhost / 127.0.0.1  / ::1  이렇게 3가지 방법이 있다 다 같은 것 



TEST4.aspx

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="test4.aspx.cs" Inherits="FrmText.test4" %>
 
<!DOCTYPE html>
 
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        IP 주소 얻기 <br / />
        <asp:Label ID="Lable1" runat="server"></asp:Label> <br />
        <asp:Label ID="Label2" runat="server"></asp:Label> <br />
        <asp:Label ID="Label3" runat="server"></asp:Label> <br />
    </div>
    </form>
</body>
</html>
 
cs



TEST4.aspx.cs


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
 
namespace FrmText
{
    public partial class test4 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            this.Lable1.Text = Request.UserHostAddress;
 
            this.Label2.Text = Request.ServerVariables["REMOTE_HOST"];
 
            this.Label3.Text = Request.ServerVariables["REMOTE_ADDR"];
        }
    }
}
cs




1. Count 함수


COUNT(*) 은 NULL을 포함한 모든 데이터의 수


COUNT(commission_pct) 는 NULL을 제외한 데이터의 수


1
SELECT COUNT(*) ,COUNT(commission_pct*salary) FROM EMPLOYEES;
cs



2.  SUM 함수  합계

    AVG 함수   평균

    MAX 함수   최대

    MIN 함수   최소

    


1
2
3
4
5
6
7
SELECT 
       SUM(salary),
       AVG(salary),
       MAX(salary),
       MIN(salary)
FROM   
        EMPLOYEES ;
cs





3.  GROUP BY 함수  
 특정 조건으로 세부적인 결과 출력하기

*******where절에는 사용할수 없음!!!!*******

1
2
3
4
5
SELECT department_id,
       COUNT(*),
       SUM(salary)
FROM EMPLOYEES       
GROUP BY department_id ; 
cs




3.  HAVING 절  
 
1
2
3
4
5
6
SELECT department_id,
       COUNT(*),
       SUM(salary)
FROM EMPLOYEES
WHERE SUM(salary) > 10000       
GROUP BY department_id ; 
cs

-이렇게 하면 오류를 발생시킨다.  WHERE 절에는  GROUP BY 를 사용할 수 없다.
그렇기때문에 HAVING 절을 사용해야한다. 

1
2
3
4
5
6
SELECT department_id,
       COUNT(*),
       SUM(salary)
FROM EMPLOYEES
HAVING SUM(salary) > 10000       
GROUP BY department_id ; 
cs



test3.aspx


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="test3.aspx.cs" Inherits="FrmText.test3" %>
 
<!DOCTYPE html>
 
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        아이디:
        <asp:TextBox ID="UserID" runat="server"></asp:TextBox><br />
        암호:
        <asp:TextBox ID="Password" runat="server"></asp:TextBox><br />
        이름:
        <asp:TextBox ID="Name" runat="server"></asp:TextBox><br />
        나이:
        <asp:TextBox ID="Age" runat="server"></asp:TextBox><br />
        <asp:Button ID="btnSubmit1" runat="server" Text="전송" OnClick="btnSubmit" />
    </div>
    </form>
</body>
</html>
 
cs



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
 
namespace FrmText
{
    public partial class test3 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            string userid = "";
            string password = String.Empty;
            string name = "";
            string age = String.Empty;
 
            // Request 객체의 QueryString
            userid = Request.QueryString["UserID"];
            // Request 객체의 Params
            password = Request.Params["Passwod"];
            // Request 객체의 Form
            name = Request.Form["Name"];
            // Request 객체로 받기
            age = Request["Age"];
 
            string msg = String.Format(
                    "입력하신 아이디는 {0}이고 <br />"
                    + "암호는 {1} 입니다. <br />"
                    + "이름은 {2} 입니다. <br />"
                    + "나이는 {3} 입니다. <br />",
                    userid , password , name , age
                );
            Response.Write(msg);
        }
        protected void btnSubmit(object sender, EventArgs e)
        {
            string name = Name.Text;
            int age = Convert.ToInt16(Age.Text);
        }
    }
}
cs



입력해보면 아이디는 get이라고 출력이 안됩니다.  이유는 get방식이라 주소에 querystring 으로 날려줘야 합니다~




Response.Write()

- 페이지의 문자열을 출력하거나 , 자바스크립트도 실행 할 수 있습니다.


Response.Redirect()

- 지정된 페이지로 이동합니다. 


test2.aspx



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="test2.aspx.cs" Inherits="FrmText.test2" %>
 
<!DOCTYPE html>
 
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
        <div>
        </div>
        <p>
            <asp:Button ID="Button1" runat="server" Text="버튼1" OnClick="btn1" />
            <%="버튼1을 클릭하세요<br />" %>
        </p>
        <p>
            <asp:Button ID="Button2" runat="server" Text="버튼2" OnClick="btn2" />
            <%="버튼2을 입력하세요<br />" %>
        </p>
        <p>
            <asp:Button ID="Button3" runat="server" Text="버튼3" OnClick="btn3" />
            <%="링크로 이동하겠습니다.<br />" %>
        </p>
    </form>
</body>
</html>
 
cs



test2.aspx.cs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
 
namespace FrmText
{
    public partial class test2 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            Response.Write("<h1>안녕하세요 내장객체 예제 입니다.<h1/>");
        }
        protected void btn1(object sender,EventArgs e)
        {
            Response.Write("<p style='color:skyblue;'>버튼 1이 클릭되었습니다.</p><br />");
        }
        protected void btn2(object sender,EventArgs e)
        {
            string str = @"
            <script>
                alert('alert 이벤트');
            </script>
        ";
            Response.Write(str);
        }
        protected void btn3(object sender,EventArgs e)
        {
            string Url = "http://kingchobocoding.tistory.com/";
            Response.Redirect(Url);
        }
 
    }
}
cs


화면


버튼 1을 눌렀을 때 CSS를 적용하여 텍스트가 출력 되었습니다.



버튼 2을 눌렀을 때 스크립트가 실행합니다 (alert 이벤트)

3번 버튼을 클릭하시면 네이버로 이동하는걸 볼 수 있습니다. 



웹 프로젝트 만들기


파일 - 새로만들기 - 프로젝트



새 프로젝트 만들기


웹  -  ASP.NET 응용 프로그램 하단에 자신의 프로젝트 이름을 설정한 후  확인을 누르세요



자신의 프로젝트에 마우스 오른쪽을 누르고 추가 - 새 항목 



웨 - 웹폼 - 이름을 설정 후 추가를 누르세요 



저는 test1 이라는 웹폼을 만들었습니다. 그럼 test1.aspx 파일이 만들어지고 작성을 해보겠습니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="test1.aspx.cs" Inherits="FrmText.test1" %>
 
<!DOCTYPE html>
 
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:TextBox ID ="text1" runat="server" Text="버튼을 클릭해주세요"></asp:TextBox>
        <asp:Button ID="btn1" runat="server" Text="버튼1" OnClick="btn_1" />
    </div>
    </form>
</body>
</html>
 
cs


text1 이라는 텍스트 박스와 , btn1이라는 버튼을 반들었습니다.


test1.aspx.cs 를 작성해봅니다. onclick 이벤트가 발생했을 때 텍스트박스에 출력을 하겠습니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
 
namespace FrmText
{
    public partial class test1 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
 
        }
        protected void btn_1(object sender, EventArgs e)
        {
            text1.Text = "버튼 1이 클릭 되었습니다.";
        }
    }
}
cs



저장 후 브라우져에서 마우스 오른쪽 누르고 브라우져에서 실행 또는 Ctrl+ F5 를 눌러서 확인해보겠습니다.



1. 치환 함수 

NVL(컬럼, 숫자)   숫자로 치환

NVL(컬럼, '문자')  문자로 치환

NVL2 NULL이 아닐경우 ㅇㅇ으로 치환


우선 전체 데이터를 확인해보겠습니다.



클릭 위치를 보면 Kimbeerely씨의 DEPARTMENT_ID가    NULL 값이 들어가있습니다.


null값을 80으로 치환하여 출력합니다. (활용의 예: 금액에 NULL일경우 0으로 )


1
SELECT NVL(DEPARTMENT_ID,80FROM EMPLOYEES;
cs



2. DECODE 함수


DECODE ( A , B , 1)    

A가 B라면 1을 출력  (A=B 라면 1을 출력)  A!=B 나머지는 NULL을 출력합니다

1
SELECT FIRST_NAME, DECODE(DEPARTMENT_ID,110,1FROM EMPLOYEES;
cs


DECODE ( A , B , 1, 2) 

A가 B라면 1을 출력 아니라면 2을 출력 


1
SELECT FIRST_NAME, DECODE(DEPARTMENT_ID,110,1,2FROM EMPLOYEES;
cs

DECODE ( A , B , 1, 2) 

A가 B라면 1을 출력 아니라면 2을 출력 



DECODE ( A , B , 1, C, 2, 3) 

A가 B라면 1을 출력하고 A가 C라면 2를 출력하고 아무것도 아니라면 3을 출력

1
SELECT FIRST_NAME, DECODE(DEPARTMENT_ID,110,1,100,2,3FROM EMPLOYEES;
cs


DECODE ( A , B , DECODE( C, D, 3)) 

A가 B일 경우중 C = D 라면 3을 출력


 

3. CASE 함수

#문법#


CASE 조건 WHEN 결과1 THEN 출력1

  WHEN 결과2 THEN 결과2

             ELSE 출력 3

END "컬럼명"


1
2
3
4
5
6
7
8
SELECT FIRST_NAME,DEPARTMENT_ID,
       CASE DEPARTMENT_ID WHEN 10 THEN 'TEAM-1'
                          WHEN 20 THEN 'TEAM-2'
                          WHEN 30 THEN 'TEAM-3'
                          ELSE 'N/A'
       END "TEAM"
FROM EMPLOYEES
WHERE DEPARTMENT_ID <50
cs



1. TO_CHAR

숫자 or 날짜→ 문자


1
2
3
SELECT first_name, TO_CHAR(salary*12,'$999,999,999') AS SAL,
TO_CHAR(HIRE_DATE,'yyyy~mm~dd') AS HIRE_DATE
FROM EMPLOYEES;
cs







2. TO_NUMBER

'숫자 같은 문자' → 숫자


1
SELECT TO_NUMBER('01012341234'FROM DUAL;
cs

* 문자에서 숫자로 형 변환이 이뤄지면서 

.숫자는 맨앞에 0을 출력하지 않으므로  맨앞에 "0" 이 사라졌습니다.



3. TO_DATE

'날짜 같은 문자' → 날짜 타입


1
SELECT TO_DATE('1988/04/19'FROM DUAL;
cs



3. 자동 형 변환

1
SELECT 2 + TO_NUMBER('10'FROM DUAL;
cs



자동 형 변환 후 합계를 구합니다.











8



  



1. SYSDATE 함수

   OS(리눅스 윈도우 등)에서 시간을 가져옵니다.


1
2
  
SELECT SYSDATE FROM DUAL;
cs



2. SYSDATE 함수 (FORMAT 변경하기)

  

1
ALTER SESSION SET NLS_DATE_FORMAT= 'YYYY-MM-DD:HH24:MI:SS';
cs


3. MONTHS_BETWEEN함수

두 날짜 사이의 개월 수를 출력하는 함수

SYSDATE - HIRE_DATE 


1
2
SELECT SYSDATE, MONTHS_BETWEEN(SYSDATE,hire_date)
FROM EMPLOYEES;
cs





4. ADD_MONTHS함수

기준일에 + 개월 수


1
2
SELECT HIRE_DATE, ADD_MONTHS(hire_date,5)
FROM EMPLOYEES;
cs





4. NEXT_DAY 함수

지정된 요일 가장 빠른 날짜


1
SELECT SYSDATE, NEXT_DAY(SYSDATE,'월'FROM DUAL;
cs





5. LAST_DAY 함수

지정된 날짜가 속한 달의 마지막 날 출력


1
SELECT SYSDATE, LAST_DAY(SYSDATE) FROM DUAL;
cs





 




 en  






숫자관련 함수들은 금융권 등에서 많이 사용되며 자리수 또는 올림, 반올림 , 버림 등 주의하셔야합니다.



1. ROUND함수

주어진 숫자에서 반올림


1
2
3
4
select ROUND(123.456,2) AS ROUND1,
       ROUND(123.456,0) AS ROUND2,
       ROUND(123.456,-1) AS ROUND3
from dual;
cs



2. TRUNC함수

주어진 숫자에서 버림


1
2
3
4
select TRUNC(123.456,2) AS ROUND1,
       TRUNC(123.456,0) AS ROUND2,
       TRUNC(123.456,-1) AS ROUND3
from dual;
cs




3. MOD (나머지 값을 구하는 함수)

   CEIL (주어진 숫자에서 가장 가까운 정수)

   FLOOR (주어진 숫자에서 가장 가까운 작은 정수)


1
2
3
4
SELECT MOD(11,4"Modulus",
      CEIL(0.3333"Ceil",
      FLOOR(1.3333"Floor"
  FROM DUAL
cs







1. INITCAP (첫 글자만 대문자로 출력하고 나머지는 소문자)


1
select first_name , initcap(first_name)from EMPLOYEES;
cs



2. lOWER / UPPER (모두 소문자 / 모두 대문자)


1
select first_name , LOWER(first_name), UPPER(first_name) from EMPLOYEES;
cs



3. LENGTH / LENGTHB (문자열길이 / 바이트수)

영어일땐 바이트수가 보통 1byte라 동일하지만 한글일 땐 보통 할글자수에 2byte이기 때문에 곱절로 나옴


1
select first_name , LENGTH(first_name), LENGTHB(first_name),LENGTH('오라클'),LENGTHB('오라클')  from EMPLOYEES;
cs



4. SUBSTR / SUBSTRB  (특정 부분 골라내기 ) ex : 주민등록번호 성별 골라내기 등.


1
2
3
4
select first_name , SUBSTR(first_name,1,3)from EMPLOYEES;
 
select SUBSTR('001212-1000000',-7,1from dual;
 
cs



---------------------------------------------------------------------------------------


5. INSTR (특정 글자의 위치 찾기)

INSTR(컬럼 or 문자열 ,'찾는 글자', '시작',' 몇 번째인지 ')

1
select hire_date, INSTR(hire_date,'/',1,2from EMPLOYEES;
cs






6.   LPAD     /   RPAD(문자로 채우기)
       왼쪽    /  오른쪽
1
select first_name , LPAD(first_name,10,'*'), RPAD(first_name,10,'*'),LPAD('오라클',10,'*'),RPAD('오라클',10,'*')  from EMPLOYEES;
cs



7.   LTRIM    /   RTIRM( 문자 지우기)

        왼쪽    /  오른쪽


1
select first_name , LTRIM(first_name,'E'), RTRIM(first_name,'e'),LTRIM('오라클','오'), RTRIM('오라클','클')from EMPLOYEES;
cs



7.   REPLACE 문자 바꿔주기


1
select REPLACE('901212-1000000',SUBSTR('901212-1000000',-6,7),'******'from dual;
cs




'데이터베이스 > Oracle' 카테고리의 다른 글

5. 오라클 기초 (날짜 관련 함수)  (0) 2018.02.20
4. 오라클 (숫자관련 함수)  (0) 2018.02.20
2. 오라클 기초 익히기 (WHERE)  (0) 2018.02.18
1. 오라클 기초 익히기  (0) 2018.02.18
2. 가상 컬럼 만들기  (0) 2018.02.16

+ Recent posts