■ 서브 쿼리를 이용해 테이블을 생성하는 방법을 보여준다. ▶ 예제 코드 (SQL)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
CREATE TABLE COMPUTER_STUDENT ( DEPT_ID ,YEAR ,STUDENT_ID ,NAME ,ID_NUMBER ,EMAIL ) AS SELECT DEPT_ID ,YEAR ,STUDENT_ID ,NAME ,ID_NUMBER ,EMAIL FROM STUDENT WHERE DEPT_ID = '컴공'; |
■ NOT EXISTS 연산자를 사용해 상호 관련 부속 질의어를 만드는 방법을 보여준다. ▶ 예제 코드 (SQL)
|
SELECT NAME ,POSITION ,DEPT_ID FROM PROFESSOR P WHERE NOT EXISTS ( SELECT * FROM COURSE C WHERE C.PROFESSOR_ID = P.PROFESSOR_ID ); |
※ NOT EXISTS 연산자는 EXISTS의
더 읽기
■ EXISTS 연산자를 사용해 상호 관련 부속 질의어를 만드는 방법을 보여준다. ▶ 예제 코드 (SQL)
|
SELECT NAME ,POSITION ,DEPT_ID FROM PROFESSOR P WHERE EXISTS ( SELECT * FROM COURSE C WHERE C.PROFESSOR_ID = P.PROFESSOR_ID ); |
※ 메인 쿼리의 EXISTS 연산자는 서브
더 읽기
■ ALL 연산자를 사용해 다중 행 서브 쿼리를 만드는 방법을 보여준다. ▶ 예제 코드 (SQL)
|
SELECT STUDENT_ID ,COURSE_ID ,SCORE ,SCORE_ASSIGNED FROM TBL_SCORE WHERE SCORE >= ALL ( SELECT SCORE FROM TBL_SCORE WHERE COURSE_ID = 'L1031' ) AND COURSE_ID = 'L1031'; |
※ ALL 연산자는 메인 쿼리의 비교
더 읽기
■ ANY 연산자를 사용해 다중 행 서브 쿼리를 만드는 방법을 보여준다. ▶ 예제 코드 (SQL)
|
SELECT STUDENT_ID ,COURSE_ID ,SCORE ,SCORE_ASSIGNED FROM TBL_SCORE WHERE SCORE > ANY ( SELECT SCORE FROM TBL_SCORE WHERE COURSE_ID = 'L1031' ) AND COURSE_ID = 'L1031'; |
※ ANY, SOME 연산자는 메인 쿼리의
더 읽기
■ IN 연산자를 사용해 다중 행 서브 쿼리를 만드는 방법을 보여준다. ▶ 예제 코드 (SQL)
|
SELECT STUDENT_ID ,COURSE_ID ,SCORE ,SCORE_ASSIGNED FROM TBL_SCORE WHERE (SCORE_ASSIGNED, SCORE) IN ( SELECT SCORE_ASSIGNED ,MAX(SCORE) FROM TBL_SCORE GROUP BY SCORE_ASSIGNED ); |
※ IN 연산자는 메인 쿼리의 비교
더 읽기
■ 단일 행 서브 쿼리를 만드는 방법을 보여준다. ▶ 예제 코드 (SQL)
|
SELECT * FROM TBL_SCORE WHERE COURSE_ID = 'L1031' AND SCORE >= ( SELECT AVG(SCORE) FROM TBL_SCORE WHERE COURSE_ID = 'L1031' ); |
■ Oracle 연결 문자열을 구하는 방법을 보여준다. ▶ Oracle 연결 문자열 구하기 (C#)
|
string connectionString = GetOracleConnectionString("127.0.0.1", "1521", "orcl", "SYSTEM", "1234"); |
▶ Oracle 연결 문자열 구하기 (C#)
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
|
#region Oracle 연결 문자열 구하기 - GetOracleConnectionString(host, port, serviceName, userID, password) /// <summary> /// Oracle 연결 문자열 구하기 /// </summary> /// <param name="host">호스트</param> /// <param name="port">포트</param> /// <param name="serviceName">서비스명</param> /// <param name="userID">사용자 ID</param> /// <param name="password">패스워드</param> /// <returns>Oracle 연결 문자열</returns> public string GetOracleConnectionString(string host, string port, string serviceName, string userID, string password) { string dataSourceFormat = @" (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = {0})(PORT = {1})) ) (CONNECT_DATA = (SERVICE_NAME = {2}) ) )"; string dataSource = string.Format(dataSourceFormat, host, port, serviceName); string connectionString = string.Format("Data Source={0};User ID={1};Password={2}", dataSource, userID, password); return connectionString; } #endregion |
■ Oracle 데이터베이스를 사용하는 방법을 보여준다. ▶ 예제 코드 (C#)
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
|
using System; using System.Data; using Oracle.DataAccess.Client; string serviceName = @" (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = orcl) ) )"; string sql = "SELECT SYSDATE FROM DUAL"; DataSet set = new DataSet(); OracleConnection connection = new OracleConnection("Data Source=" + serviceName + ";User ID=SYSTEM;Password=1234"); connection.Open(); OracleDataAdapter OrcleAd = new OracleDataAdapter(sql, connection); connection.Close(); OrcleAd.Fill(set); Console.WriteLine(set.Tables[0].Rows[0][0].ToString()); |
※ 첨부 파일을 참조한다. Oracle.DataAccess.zip
■ 자동으로 합계/소계를 만드는 방법을 보여준다. ▶ 예제 코드 (SQL)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
SELECT COURSE_ID ,STUDENT_ID ,SUM(SCORE) FROM TBL_SCORE WHERE COURSE_ID = 'L0011' GROUP BY COURSE_ID ,STUDENT_ID; /* COURSE_ID STUDENT_ID SUM(SCORE) --------- ---------- ---------- L0011 C0801 68 L0011 C0802 98 */ |