[10월 14일] 오라클 자료형, SQL, SELECT문, 산술표현식, 별칭, DISTINCT, 검색, WHERE, ORDER BY 절 , 그룹함수 , GROUP BY , INNER JOIN

테이블과 테이블 사이, 즉 테이블과 테이블 사이의 관계가 잘 된다고 잘못이 없는 회원 테이블:회원이 작성한 테이블 회원자 게시판 탁자:회원이 작성한 테이블이 보이는 게시판 회원 테이블(부모)회원자 게시판 탁자(아이)이 관계가 연결되는 ex)회원 테이블의 무언가를 삭제하면 게시판 탁자와 관계가 있으므로 삭제되지 않는[ 맺어야만, 하나의 데이터를 삭제하면 다른 데이터에서 하자가 생긴다.오라클의 같은 소프트웨어를 릴레이 셔널 데이터 베이스 관리 시스템(RDDMS)라고 부른다.릴레이 셔널·데이터베이스·관리·시스템(RDDMS)의 특징:테이블을 생성하고 테이블과 테이블의 관계를 만든다.데이터를 표에서 관리하지만, 행은 레코드라고 부른다.줄은 칼럼이라고 부른다.(※)컬럼을 대표하는 이름을 칼럼 이름으로 알려졌다.오라클은 숫자를 저장할 때 NumberType에 저장하는 상수는 무조건 최대 3자릿수 오라클 자료형

 

 

SQL SQL

 

 

SELECT 문 SELECT 문

-데이터를 조회하고자 할 때 사용하는 DML문*[SELECT문]형식의 암기**기본 형식)SELECT칼럼 명, 컬럼 이름… FROM테이블 이름[WHERE을 찾아 조건][GROUP BY결과 데이터 그룹회][HAVING그룹에서 찾아 조건][ORDER BY데이터 정렬 표현]DLR동적 라이브러리 실행 파일(오라클 명령은(세미 콜론)을 넣지 않아도 된다(SQL은 넣어야 합니다.)*스커드 계정에서 hr계정으로 전환하고 싶으면 conn(connect)*모든 데이터를 가져올 때:SQL>SELECT*

SQL > タブ에서 * 선택, SQL > タブ에서 * 선택;

(SQL 언어를 위해서; 필수) EMP 테이블의 구조 (틈새) (SQL 언어를 위해서; 필수) EMP 테이블의 구조 (틈새)

SQL> set linesize 1000SQL> SELECT * FROM タブ;TNAME タブ タイプのクラスタ ID です———————————————————— ————– ———-BIN$5lpNQu+aTdaHo+SgXw7xhw==$0 TAB ですLEBIN$7iGgd82GRx+itvOqOis9Mw==$0 TABですLEBIN$BuTvhQb7Qy+Nzwy2yD6E5w == $0 TABですLEBONUS TABLE DEP TABLE EMP TABLE SALGRADE TABLE 7行が選択されました。 SQL> set linesize 1000SQL> SELECT * FROM タブ;TNAME タブ タイプのクラスタ ID です———————————————————— ————– ———-BIN$5lpNQu+aTdaHo+SgXw7xhw==$0 TAB ですLEBIN$7iGgd82GRx+itvOqOis9Mw==$0 TABですLEBIN$BuTvhQb7Qy+Nzwy2yD6E5w == $0 TABですLEBONUS TABLE DEP TABLE EMP TABLE SALGRADE TABLE 7行が選択されました。

 

SQL> set linesize 200SQL> descemp 名前がヌルですか? タイプします —————————————————————————————————————– ——– —————————————————————————-ENPNO NOT NULL NUMBER(4)ENAME VARCHAR2(10) ですJOB VARCHAR2(9)MGR NUMBER(4)HIRED DATESAL NUMBER(7,2)COMM NUMBER(7,2)DEPTNO NUMBER(2)です SQL> set linesize 200SQL> descemp 名前がヌルですか? タイプします —————————————————————————————————————– ——– —————————————————————————-ENPNO NOT NULL NUMBER(4)ENAME VARCHAR2(10) ですJOB VARCHAR2(9)MGR NUMBER(4)HIRED DATESAL NUMBER(7,2)COMM NUMBER(7,2)DEPTNO NUMBER(2)です

SQL> emp 3에서 선택 * 2;*:모든 칼럼 SQL> emp 3에서 선택 * 2;*:모든 칼럼

 

 

 

산술표현식 산술표현식

데이터가 출력되는 방식을 수정하거나 계산을 수행하고자 할 때 산술 표현식을 사용한다. 산술 표현식은 열명, 숫자 상수, 문자 상수, 산술 연산자를 포함할 수 있으며 연산자는 +, -, *, /를 사용하는 SQL > SELECT ename, job, sal-100 , hiredate2 FROM emp; 데이터가 출력되는 방식을 수정하거나 계산을 수행하고자 할 때 산술 표현식을 사용한다. 산술 표현식은 열명, 숫자 상수, 문자 상수, 산술 연산자를 포함할 수 있으며 연산자는 +, -, *, /를 사용하는 SQL > SELECT ename, job, sal-100 , hiredate2 FROM emp;

SQL>이름, 잡, sal-100, hiredate2 FROMemp를 선택합니다; NAME JOBSAL-100 채용일입니다 ——————– —————— ———- ——– 스미스 클라크 700/12/17 이구요 앨런 영업사원 150081/02/20 이구요 115081/02/22 이구요 존스 매니저 287581/04/02 마틴 세일즈맨 115081/09/28 입니다 BLAKE MANAGER 275081/05/01 Clark Manager 235081/06/09 입니다 4900 대통령입니다 81/11/17 터너 세일즈맨 140081/08/08 입니다 제임스 클라크 850 81/12/03 입니다 포드 애널리스트 290081/03/12 입니다 NAME JOBSAL-100 채용일입니다 ——————– —————— ———- ——– 미러클락 1200 82/01/23 12행이 선택되었습니다. SQL>이름, 잡, sal-100, hiredate2 FROMemp를 선택합니다; NAME JOBSAL-100 채용일입니다 ——————– —————— ———- ——– 스미스 클라크 700/12/17 이구요 앨런 영업사원 150081/02/20 이구요 115081/02/22 이구요 존스 매니저 287581/04/02 마틴 세일즈맨 115081/09/28 입니다 BLAKE MANAGER 275081/05/01 Clark Manager 235081/06/09 입니다 4900 대통령입니다 81/11/17 터너 세일즈맨 140081/08/08 입니다 제임스 클라크 850 81/12/03 입니다 포드 애널리스트 290081/03/12 입니다 NAME JOBSAL-100 채용일입니다 ——————– —————— ———- ——– 미러클락 1200 82/01/23 12행이 선택되었습니다.

SQL>이름, 작업, sal*2, hiredate2 FROMemp을 선택합니다; SQL>이름, 작업, sal*2, hiredate2 FROMemp을 선택합니다;

NAME JOB SAL*2채용 날입니다————————– ———————— ——– ——–스미스 점원160080/12/17입니다 폴 영업 사원 3200 81/02/20입니다 WARD SALMPANY 2500 81/02/22입니다 JONES MANAGER 5950 81/04/02 MARTIN SALMPANE 2500 81/09/28입니다 BLAKE MANAGER 5700 81/05/01 Clark Manager 4900 81/06/09입니다 10,000대통령입니다81/11/17터너 세일즈 맨 3000 81/08/08제임스·클라크1900 81/12/03입니다 포드·분석가 6000 81/12/03입니다 NAME JOB SAL*2채용 날입니다————————– ———————— ——– ——–밀러 크라ー크 2600 82/01/2312개가 선택되었습니다. SQL>

 

 

열에 별칭 부여 열에 별칭 부여

쿼리 결과 출력 시 사용자가 이해하기 쉽도록 열에 이름을 부여할 수 있다. -열 이름[AS] “별칭” – 열 이름의 별칭에 공백을 주거나, “를 주고 싶을 때는 무조건”으로 포장하세요 쿼리 결과 출력 시 사용자가 이해하기 쉽도록 열에 이름을 부여할 수 있다. -열 이름[AS] “별칭” – 열 이름의 별칭에 공백을 주거나, “를 주고 싶을 때는 무조건”으로 포장하세요

SQL>名前を 이름、job 직책、sal-100、hiredate 2 from emp;이름 직책 SAL-100 hiredate として選択します——————– —————— ———- ——–スミス·クラーク 700/12/17ですアレン営業マン 1500 81/02/20です1150 81/02/22 ですジョーンズ·マネージャー 2875 81/04/02 マーティン·セールスマン 1150 81/09/28 ですBLAKE MANAGER 2750 81/05/01 Clark Manager 2350 81/06/09 です4900 大統領です 81/11/17ターナーのセールスマン 1400 81/08/08ですジェームズ·クラーク 850 81/12/03ですフォードアナリスト 2900 81/03/12 이름 직책 SAL-100 採用日です——————– —————— ———- ——–ミラークラーク 1200 82/01/23 12行が選択されました。 SQL>名前を 이름、job 직책、sal-100、hiredate 2 from emp;이름 직책 SAL-100 hiredate として選択します——————– —————— ———- ——–スミス·クラーク 700/12/17ですアレン営業マン 1500 81/02/20です1150 81/02/22 ですジョーンズ·マネージャー 2875 81/04/02 マーティン·セールスマン 1150 81/09/28 ですBLAKE MANAGER 2750 81/05/01 Clark Manager 2350 81/06/09 です4900 大統領です 81/11/17ターナーのセールスマン 1400 81/08/08ですジェームズ·クラーク 850 81/12/03ですフォードアナリスト 2900 81/03/12 이름 직책 SAL-100 採用日です——————– —————— ———- ——–ミラークラーク 1200 82/01/23 12行が選択されました。

괄호가 있으면 무조건 생략 가능 (적어도 안적어도 됩니다) 괄호가 있으면 무조건 생략 가능 (적어도 안적어도 됩니다)

SQL> 名前、ジョブ、sal*2 AS 100% 인상한 연봉、2 from emp;SELECT ename, job, sal*2 AS 100% 인상한 연봉, hiredate ERROR (行 1):ORA-00923:FROM キーワードが予期した場所に見つからない SQL> 名前、ジョブ、sal*2 AS 100% 인상한 연봉、2 from emp;SELECT ename, job, sal*2 AS 100% 인상한 연봉, hiredate ERROR (行 1):ORA-00923:FROM キーワードが予期した場所に見つからない

=>If there is a space in the alias, a structural error will occur. =>If there is a space in the alias, a structural error will occur.

SQL> [이름]、[job 직책]、[sal*22022’연봉]、[hiredate 2 from] Select a name for the tab; name 이름, job 직책,sal*22022’연봉’,Select as hidden*ERROR on line 1:ORA-00923: FROM keyword not found at expected location SQL> [이름]、[job 직책]、[sal*22022’연봉]、[hiredate 2 from] Select a name for the tab; name 이름, job 직책,sal*22022’연봉’,Select as hidden*ERROR on line 1:ORA-00923: FROM keyword not found at expected location

=You can wrap it in >”. “If you want to use “” as another name, you can use “”.” =You can wrap it in >”. “If you want to use “” as another name, you can use “”.”

 

Remove duplicate lines Remove duplicate lines

To eliminate duplicate rows in the results, write distinct immediately after the SELECT keyword. -The DISTINCT keyword is always immediately after SELECT. -All columns that appear after DISTINCT are affected by DISTINCT. -Rows that appear when multiple columns are written after DISTINCT are not duplicated. * The overlapping lines are erased and only unique lines remain. You can see how many kinds of responsibilities there are in our company at once. Since it is difficult to do it manually, only non-overlapping lines are shown through a combination of keyword columns that remove overlapping lines. SQL> SELECT DISTINCT job FROM emp; To eliminate duplicate rows in the results, write distinct immediately after the SELECT keyword. -The DISTINCT keyword is always immediately after SELECT. -All columns that appear after DISTINCT are affected by DISTINCT. -Rows that appear when multiple columns are written after DISTINCT are not duplicated. * The overlapping lines are erased and only unique lines remain. You can see how many kinds of responsibilities there are in our company at once. Since it is difficult to do it manually, only non-overlapping lines are shown through a combination of keyword columns that remove overlapping lines. SQL> SELECT DISTINCT job FROM emp;

Select another job from SQL>emp;job —————— Senior Sales Representative/President/Analyzer Select another job from SQL>emp;job —————— Senior Sales Representative/President/Analyzer

Select SQL>DISTINCT Job (deptno FROM emp; Select SQL>DISTINCT Job (deptno FROM emp;

Select SQL>DISTINCT Job (deptno FROM emp; Job Details) —————— ———- Manager 20 President 10 Clark 10 Salesman 30 Analysts 20 Managers 30 Clark 30 209 lines were selected. Select SQL>DISTINCT Job (deptno FROM emp; Job Details) —————— ———- Manager 20 President 10 Clark 10 Salesman 30 Analysts 20 Managers 30 Clark 30 209 lines were selected.

(AND COMBINATION) The rows that appear when you write more than one column after DISTINCT are displayed so that the column combination (AND COMBINATION) does not overlap. * 9 Reasons: 9 rows selected.CLERK, 20 CLERK, 10 ASALESMAN 30 SALESMAN 30 SALESMAN 30 SALESMAN 30 SALESMAN 30 SALESMAN 30 SALESMAN 30 SALESMAN 30 SALE SAME CHILDREN 10PRESIDENT 10CLERK30 ANALYST 20AND. Remove duplicate AND combinations. So we have nine left (AND COMBINATION) The rows that appear when you write more than one column after DISTINCT are displayed so that the column combination (AND COMBINATION) does not overlap. * 9 Reasons: 9 rows selected.CLERK, 20 CLERK, 10 ASALESMAN 30 SALESMAN 30 SALESMAN 30 SALESMAN 30 SALESMAN 30 SALESMAN 30 SALESMAN 30 SALESMAN 30 SALE SAME CHILDREN 10PRESIDENT 10CLERK30 ANALYST 20AND. Remove duplicate AND combinations. So we have nine left

Search for specific lines Search for specific lines

In general, all materials in the table are not required to be queried, and when a user queriesces the desired materials, they are queried using the WHERE clause – the WHERE clause can be used to limit the line – the WHERE clause is written after the FROM clause. -The terms and conditions shall consist of the following. Comparison operators such as COLUMN names, expressions, constants, characters, comparison operators, SQL operators, logical operators, etc. include =, >= and <= and <= and <>(!=), which are not two but one of = like *java. SQL operators include BETWEEN a ANDb, IN, LIKE, IS NULL (IS NOT NULL), | (when concatenating strings), and *SQL-only operator logic operators include AND, OR, NOT. * Logical operators &||!* BETWEEN a AND b, IN, LIKE, IS NOT NULL, || (when concatenating strings) and so on: shorten the cord In general, all materials in the table are not required to be queried, and when a user queriesces the desired materials, they are queried using the WHERE clause – the WHERE clause can be used to limit the line – the WHERE clause is written after the FROM clause. -The terms and conditions shall consist of the following. Comparison operators such as COLUMN names, expressions, constants, characters, comparison operators, SQL operators, logical operators, etc. include =, >= and <= and <= and <>(!=), which are not two but one of = like *java. SQL operators include BETWEEN a ANDb, IN, LIKE, IS NULL (IS NOT NULL), | (when concatenating strings), and *SQL-only operator logic operators include AND, OR, NOT. * Logical operators &||!* BETWEEN a AND b, IN, LIKE, IS NOT NULL, || (when concatenating strings) and so on: shorten the cord

where and where

If only children with an annual salary of more than 2000 want to know, I only want to know their names, responsibilities, and annual salaries. If only children with an annual salary of more than 2000 want to know, I only want to know their names, responsibilities, and annual salaries.

SQL> emp Choose a name, job, and sal 2 from 3. sal >= 2000; ename job sal ——————– —————— ———- JONES MANAGER 2975 BLAKE MANAGER 2850 Clock Manager 2450 King President 5000 Ford Analysts 3000 SQL>emp Choose a name, job, and sal 2 from 3. sal >= 2000; ename job sal ——————– —————— ———- JONES MANAGER 2975 BLAKE MANAGER 2850 Clock Manager 2450 King President 5000 Ford Analysts 3000

sal >= 2000 or job = ‘CLERK’; sal >= 2000 or job = ‘CLERK’;

SQL> emp Choose a name, job, and sal 2 from 3. sal >= 2000 or job = ‘CLERK’; job Name the sale ——————– —————— ———- Smith Clark 800 Jones Manager 2975 Break Manager 2850 Clock Manager 2450 King President 5000JAMES SCRAIKIN 950FORDANLYER 3000MILLER SCRAIKIN 13008 column selected. SQL> emp Choose a name, job, and sal 2 from 3. sal >= 2000 or job = ‘CLERK’; job Name the sale ——————– —————— ———- Smith Clark 800 Jones Manager 2975 Break Manager 2850 Clock Manager 2450 King President 5000JAMES SCRAIKIN 950FORDANLYER 3000MILLER SCRAIKIN 13008 column selected.

Same as BETWEEN to ANDB* and operation. Same as BETWEEN to ANDB* and operation.

SQL> emp Choose *2 from 3 from 2000 to 2000 Sell in 3000 range; SQL> emp Choose *2 from 3 from 2000 to 2000 Sell in 3000 range;

The data in the sal column is between 2000 and 3000 The data in the sal column is between 2000 and 3000

SQL> emp Select *2 from 3. where sal is from 2000 to 3000 です;EMPENONAME JOB MGR HEAREDATE SAL COMM DEPTNO です ———- ——————– —————— ———- ——– ———- ———- ———- 7566 JONES MANAGER 7839 81/04/02 2975 207698 BLAKE MANAGER 7839 81/05/01 2850 307782 CLARK MANAGER 7839 81/06/09 2450 107902 FORD ANLANTERS 7566 81/12/03 3000 20 SQL> emp Select *2 from 3. where sal is from 2000 to 3000 です;EMPENONAME JOB MGR HEAREDATE SAL COMM DEPTNO です ———- ——————– —————— ———- ——– ———- ———- ———- 7566 JONES MANAGER 7839 81/04/02 2975 207698 BLAKE MANAGER 7839 81/05/01 2850 307782 CLARK MANAGER 7839 81/06/09 2450 107902 FORD ANLANTERS 7566 81/12/03 3000 20

Same as IN*OR operation Same as IN*OR operation

emp 3 WHERE job in (‘CLERK’, ‘MANAGER’) から *Select 2; emp 3 WHERE job in (‘CLERK’, ‘MANAGER’) から *Select 2;

The code above and below will have the same result. The code above and below (top: OR, bottom: IN) will have the same result. (top: OR, bottom: IN)

SQL> emp Select *2 from 3. The job is (‘CLERK’, ‘MANAGER’); SQL>emp Select *2 from 3. The job is (‘CLERK’, ‘MANAGER’);

* You can think of it as “go or go.” WHERE job IN(「CLERK」、「MANAGER」); The ones from “CLERK” and “MANAGER” in the job * Go You can think of it as or. WHERE job IN(「CLERK」、「MANAGER」); The ones from “CLERK” and “MANAGER” in the job

EMPENONAME JOB MGR HEAREDATE SAL COMM DEPTNO です ———- ——————– —————— ———- ——– ———- ———- ———- 7369 SMITH SCRAIKER 790280/12/17 800 207566 JONES MANAGER 7839 81/04/02 2975 207698 BLAKE MANAGER 7839 81/05/01 2850 307782 CLARK MANAGER 7839 81/06/09 2450 107900 JAMES SCRAIKER 7698 81 / 12月03 950 307934 Mirror Clark 778282/01/23 1300 106 line selected. EMPENONAME JOB MGR HEAREDATE SAL COMM DEPTNO です ———- ——————– —————— ———- ——– ———- ———- ———- 7369 SMITH SCRAIKER 790280/12/17 800 207566 JONES MANAGER 7839 81/04/02 2975 207698 BLAKE MANAGER 7839 81/05/01 2850 307782 CLARK MANAGER 7839 81/06/09 2450 107900 JAMES SCRAIKER 7698 81 / 12月03 950 307934 Mirror Clark 778282/01/23 1300 106 line selected.

IS NULL: 반드시 NULL 체크할 때는 NULL 을 사용해준다。 선택 *empWHERE COMM = NULL; 을 사용해준다 です。 NULL; 반드시 IS NULL: 을 사용해준다。 NULL 체크할 때는 NULL 오류가 나오기 때문에 は 선택 *empWHERE COMM = NULL; 을 사용해준다 です。 NULL; 오류가 나오기 때문에 は。

SQL > COMM이 NULL의 emp3에서 *2를 선택합니다; SQL > COMM이 NULL의 emp3에서 *2를 선택합니다;

 

EMPENONAME JOB MGR HEAREDATE SAL COMM DEPTNO です———- ——————– —————— ———- ——– ———- ———- ———-7369 SMITH CLAIKER 790280/12/17 800 207566 JONES MANAGER 7839 81/04/02 2975 207698 BLAKE MANAGER 7839 81/05/01 2850 307782 CLARK MANAGER 7839 81/06/09 2450 107839 KING President 81 /11月17日 5000 107900 JAMES SCRAIKER 769881/12/03 950 307902 FORD ANLISTER 756681/12/03 3000 207934 MILLER SCRAIKER 778282/01/23 1300 108行が選択されました。 EMPENONAME JOB MGR HEAREDATE SAL COMM DEPTNO です———- ——————– —————— ———- ——– ———- ———- ———-7369 SMITH CLAIKER 790280/12/17 800 207566 JONES MANAGER 7839 81/04/02 2975 207698 BLAKE MANAGER 7839 81/05/01 2850 307782 CLARK MANAGER 7839 81/06/09 2450 107839 KING President 81 /11月17日 5000 107900 JAMES SCRAIKER 769881/12/03 950 307902 FORD ANLISTER 756681/12/03 3000 207934 MILLER SCRAIKER 778282/01/23 1300 108行が選択されました。

LIKE 연산자 * 검색 스트링 값에 대한 와일드카드 검색을 위해 LIKE 연산자를 사용한다. % : 임의의 0개 이상의 문자열_: 임의의 한 글자 LIKE ‘A%’: 컬럼이 ‘A’로 시작하는 데이터만 검색됩니다. ABC, A123, ALIKE ‘%A’: 칼럼이 ‘A’로 끝나는 데이터만 검색됩니다. BCA, 123A, ALIKE ‘% KIM%’: 칼럼에 ‘KIM’ 문자가 있는 데이터만 검색됩니다. ABCKIM, ABCKIMDEF, KIM ABC, KIM*의 전후%로 둘러싸면 KIM이 포함된 데이터는 모두 검색한다는 뜻=>KIM으로 시작해도 나오고, KIM이 중간에 있어도 나오고, KIM이 마지막에 있어도 나오는 LIKE ‘_A%’: 칼럼에 ‘A’자가 두 번째에 위치한 데이터만 검색됩니다 DA(O), DDDA(X), A(X)* 두 번째 글자가 A인 데이터를 검색한다는 의미 칼럼명 LIKE로 검색 * LIKE 연산자 앞에 컬럼명이 온다. LIKE 연산자 * 검색 스트링 값에 대한 와일드카드 검색을 위해 LIKE 연산자를 사용한다. % : 임의의 0개 이상의 문자열_: 임의의 한 글자 LIKE ‘A%’: 컬럼이 ‘A’로 시작하는 데이터만 검색됩니다. ABC, A123, ALIKE ‘%A’: 칼럼이 ‘A’로 끝나는 데이터만 검색됩니다. BCA, 123A, ALIKE ‘% KIM%’: 칼럼에 ‘KIM’ 문자가 있는 데이터만 검색됩니다. ABCKIM, ABCKIMDEF, KIM ABC, KIM*의 전후%로 둘러싸면 KIM이 포함된 데이터는 모두 검색한다는 뜻=>KIM으로 시작해도 나오고, KIM이 중간에 있어도 나오고, KIM이 마지막에 있어도 나오는 LIKE ‘_A%’: 칼럼에 ‘A’자가 두 번째에 위치한 데이터만 검색됩니다 DA(O), DDDA(X), A(X)* 두 번째 글자가 A인 데이터를 검색한다는 의미 칼럼명 LIKE로 검색 * LIKE 연산자 앞에 컬럼명이 온다.

 

 

SELECT ename || || ‘의 연수입은’, sal|’입니다’ SELECT ename| || ‘의 연수입은’, sal|’입니다

* Java 로 계산하면 + 문자열 연결과 같다. 컬럼 하나로 출력한 것 * Java 로 계산하면 + 문자열 연결과 같다. 컬럼 하나로 출력한 것

SELECT ename | ‘의 연봉은’, sal | ‘입니다’의 연봉정보 FROMemp; SELECT ename | ‘의 연봉은’, sal | ‘입니다’의 연봉정보 FROMemp;

칼럼이 하나로 연봉 정보로 별칭한 것이다. (sal)을 SELECT ename | ‘ 의 연수입은 ‘, sal | ‘입니다'(as) 의 연수입 정보’ 입니다 ‘ 와 연수입 정보 사이에 as가 생략되어 있다 칼럼이 하나로 연봉 정보로 별칭한 것이다. (sal)을 SELECT ename | ‘ 의 연수입은 ‘, sal | ‘입니다'(as) 의 연수입 정보’ 입니다 ‘ 와 연수입 정보 사이에 as가 생략되어 있다

 

bow

The order of rows returned in the query results is not defined. The ORDER BY clause is used to sort rows. If ORDER BY clause is used, it shall be described at the end of the SELECT statement. Order BY Column or Expression [ASC|DESC] * *ASC:ascending ascending (default value) *DESC: Desceady – The default alignment is ascending. -To sort in descending order, the DESC keyword must be specified after the column name in the ORDER BY clause. -Query results can be rearranged in one or more columns. (i.e., can be sorted by one or more columns) *Column 1DESC, Column 2ASC:Sort by Column 1DESC, then by Column 2ASC. -Columns are specified in the -ORDER BY clause, which is only possible up to the number of columns in a given table, and column names are separated by commas (,). ORDER BY clause – When you include several columns: The order of the rows returned in the usage query results is not defined. The ORDER BY clause is used to sort rows. If ORDER BY clause is used, it shall be described at the end of the SELECT statement. Order BY Column or Expression [ASC|DESC] * *ASC:ascending ascending (default value) *DESC: Desceady – The default alignment is ascending. -To sort in descending order, the DESC keyword must be specified after the column name in the ORDER BY clause. -Query results can be rearranged in one or more columns. (i.e., can be sorted by one or more columns) *Column 1DESC, Column 2ASC:Sort by Column 1DESC, then by Column 2ASC. -Columns are specified in the -ORDER BY clause, which is only possible up to the number of columns in a given table, and column names are separated by commas (,). ORDER BY SECTION – When inserting several columns:, use

*작업별 주문서에서 선택, ASC 없음; 작업별 주문서에서 선택, ASC 없음;

* job DESC에서 먼저 정렬 후 deptno ASC에서 정렬 * job DESC에서 먼저 정렬 후 deptno ASC에서 정렬

그룹 함수 그룹 함수

* 집합 함수라고도 부른다. COUNT(*): 테이블의 전체 레코드 수를 불러온다. 예) SELECT COUNT(*) FROM 테이블명 * COUNT(칼럼명) : NULL 이 들어간 컬럼을 제외하고 불러온다. AVG(가람명): 해당 컬럼의 전체 평균값을 구한다. 예) SELECT AVG(가람명) FROM 테이블명 MAX(가람명): 해당 컬럼의 최대값을 구한다. 예) SELECT MAX(가람명) FROM 테이블명 MIN(컬럼명): 해당 컬럼의 가장 작은 값을 구하는 예) SELECT MIN(컬럼명) FROM 테이블명 SELECT SUM(컬러명) FROM 테이블명:=>합계 입수*그룹 함수는 SELECT 절에서 단독으로 쓸 수 있지만, 다른 컬럼 정보를 함께 출력할 수는 없다. * 집합 함수라고도 부른다. COUNT(*): 테이블의 전체 레코드 수를 불러온다. 예) SELECT COUNT(*) FROM 테이블명 * COUNT(칼럼명) : NULL 이 들어간 컬럼을 제외하고 불러온다. AVG(가람명): 해당 컬럼의 전체 평균값을 구한다. 예) SELECT AVG(가람명) FROM 테이블명 MAX(가람명): 해당 컬럼의 최대값을 구한다. 예) SELECT MAX(가람명) FROM 테이블명 MIN(컬럼명): 해당 컬럼의 가장 작은 값을 구하는 예) SELECT MIN(컬럼명) FROM 테이블명 SELECT SUM(컬러명) FROM 테이블명:=>합계 입수*그룹 함수는 SELECT 절에서 단독으로 쓸 수 있지만, 다른 컬럼 정보를 함께 출력할 수는 없다.

emp에서 이름, MAX(sal)를 선택합니다; emp에서 이름, MAX(sal)를 선택합니다;

error가 나오는 ORA-00937: not a single-group group function 00937.00000 – “not a single-group group function”: 싱글 그룹이 아님* 원래는 결과가 표 형태로 나오는데 ename 12개, MAX(sal) 1개가 나오므로 표 형식이 아니기 때문에 오류가 난다. => 해결법: MAX(sal)를 Grouping해야 하는 GROUP BY ename으로 Grouping하는 것은 의미가 없다. 이름 하나에 sal 하나씩만 나오니까 *deptno는 의미가 있어. 30회 최대 연봉은과 부속코드(deptno)로 그룹핑을 하면 최대치가 나오기 때문이다. error가 나오는 ORA-00937: not a single-group group function 00937.00000 – “not a single-group group function”: 싱글 그룹이 아님* 원래는 결과가 표 형태로 나오는데 ename 12개, MAX(sal) 1개가 나오므로 표 형식이 아니기 때문에 오류가 난다. => 해결법: MAX(sal)를 Grouping해야 하는 GROUP BY ename으로 Grouping하는 것은 의미가 없다. 이름 하나에 sal 하나씩만 나오니까 *deptno는 의미가 있어. 30회 최대 연봉은과 부속코드(deptno)로 그룹핑을 하면 최대치가 나오기 때문이다.

선택 항목 없음 、 MAX(sal) 、 항목 없음 による 항목 없음 からのジョブ 항목 없음 、 항목 없음 MAX(sal) 、 항목 없음 からのジョブ 항목 없음;

* 오류가 납니다. deptno와 sal은 6개씩 나오지만 job은 혼자 12개나 나오기 때문에 job도 grouping을 해야 합니다. * 오류가 납니다. deptno와 sal은 6개씩 나오지만 job은 혼자 12개나 나오기 때문에 job도 grouping을 해야 합니다.

empgroup에서 depno 、 Max(sal), job에서 depno, job에서 depno 、 Max(sal), job에서 depno, job을 선택합니다;

 

* 함수를 쓸 때는 무조건 Grouping을 해야 한다. – GROUP BY는 ORDER BY 앞에 기술해야 한다. -그룹에 대한 조건은 HAVING 절에서 기술해야 한다. – WHERE 조건과 함께 사용하면 WHERE 조건절에서 먼저 필터링 한 후 그룹화한다. Group by 구문 : GROUP BY 행을 그룹화하기 위한 기준이 되는 Column 기술 [HAVING 그룹에 대한 조건] ** 절차를 기억하는 ** 쿼리(SQL) 실행 절차: FROM-> WHERE-> GROUP BY-> HAVING-> SELECT-> ORDER BY * 별칭일 때 매우 중요하다(where에서 조건에 남는 아이만 남기고-> grouping) * 함수를 쓸 때는 무조건 Grouping을 해야 한다. – GROUP BY는 ORDER BY 앞에 기술해야 한다. -그룹에 대한 조건은 HAVING 절에서 기술해야 한다. – WHERE 조건과 함께 사용하면 WHERE 조건절에서 먼저 필터링 한 후 그룹화한다. Group by 구문 : GROUP BY 행을 그룹화하기 위한 기준이 되는 Column 기술 [HAVING 그룹에 대한 조건] ** 절차를 기억하는 ** 쿼리(SQL) 실행 절차: FROM-> WHERE-> GROUP BY-> HAVING-> SELECT-> ORDER BY * 별칭일 때 매우 중요하다(where에서 조건에 남는 아이만 남기고-> grouping)

depno 、MAX(sal), emp에서 작업 선택, sal<= 2500GROUP by depno, jobMAX(sal) >= 3000; salpno 、MAX(sal), emp에서 작업 선택, sal<= 2500GROUP by depno, jobMAX(sal) > = 3000;

emp 테이블에서 데이터를 불러오는 FROM 데이터를 올리는 salary가 2500 이하인 레코드만 남는다. WHERE 나머지 레코드에서 GROUPING 한다. GROUP BY 직업이면서 부서 코드인 ‘아이끼리’의 정리 최대치가 최대 3000 이상(MAX(sal))인 레코드 HAVING*HAVING은 그룹에 대한 조건을 부여해야 한다. *SELECT에 넣은 조건을 HAVING 절에 넣어준다. *그룹화를 해주지 않는 조건을 넣으면 error가 나온다. 그룹화한 레코드를 읽을 수 없기 때문이다. emp 테이블에서 데이터를 불러오는 FROM 데이터를 올리는 salary가 2500 이하인 레코드만 남는다. WHERE 나머지 레코드에서 GROUPING 한다. GROUP BY 직업이면서 부서 코드인 ‘아이끼리’의 정리 최대치가 최대 3000 이상(MAX(sal))인 레코드 HAVING*HAVING은 그룹에 대한 조건을 부여해야 한다. *SELECT에 넣은 조건을 HAVING 절에 넣어준다. *그룹화를 해주지 않는 조건을 넣으면 error가 나온다. 그룹화한 레코드를 읽을 수 없기 때문이다.

depno 、MAX(sal), epno sal<= 2500GROUP by depno, job= ‘マネージャー’, epno 、MAX(sal), epno sal<= 2500GROUP by depno, job= ‘マネージャー’;

이 HAVING 절은 가능합니다. 왜냐하면 job을 그룹화했기 때문입니다. 그래서 deptno도 가능합니다 이 HAVING 절은 가능합니다. 왜냐하면 job을 그룹화했기 때문입니다. 그래서 deptno도 가능합니다

depno 、MAX(sal), emp에서 작업 선택(select), sal<= 2500GROUP by depno, 작업(jobdepno= 10), sal<= 2500GROUP by depno, 작업(jobdepno= 10);

 

 

쿼리(SQL) 실행 순서: FROM -> WHERE -> GROUP BY -> HAWING -> SELECT -> ORDER BY です 쿼리(SQL) 실행 순서: FROM -> WHERE -> GROUP BY -> HAWING -> SELECT -> ORDER BY です

MAX(급여), department_idFROM 직원을 선택합니다. GROUP BY department_idORDER BY Max(급여)입니다; MAX(급여), department_idFROM 직원을 선택합니다. GROUP BY department_idORDER BY Max(급여)입니다;

 

MAX(급여) S, department_idFROM 사원을 선택합니다 department_idORDER를 SDESC에 의해 그룹화합니다; MAX(급여) S, department_idFROM 사원을 선택합니다 department_idORDER를 SDESC에 의해 그룹화합니다;

*별칭을 S로 정해 ORDER BY절에 사용할 수 있습니다. 왜냐하면 SELECT절이 ORDER BY절보다 먼저 실행되기 때문입니다. *별칭을 S로 정해 ORDER BY절에 사용할 수 있습니다. 왜냐하면 SELECT절이 ORDER BY절보다 먼저 실행되기 때문입니다.

SELECT MAX(급여) S, department_idFROM 직원 부문별 그룹화_idS> = 10000오더by SDESC; SELECT MAX(급여) S, department_idFROM 직원 부문별 그룹화_idS> = 10000오더by SDESC;

HAVING이 SELECT보다 빠르게 실행되기 때문에 HAVING 절에 별칭을 사용하면 오류가 발생합니다. 그래서 순서를 외우는 것이 중요합니다. HAVING이 SELECT보다 빠르게 실행되기 때문에 HAVING 절에 별칭을 사용하면 오류가 발생합니다. 그래서 순서를 외우는 것이 중요합니다.

* SQL Developer는 java에서 만든 것이다. * SQL Developer는 java에서 만든 것이다.

 

タブ에서 * 선택, タブ에서 * 선택;

모든 테이블을 볼 수 있습니다. emp 테이블] 모든 테이블을 볼 수 있습니다. emp 테이블]

 

DEPT테이블 입니다 DEPT테이블 입니다

SQL>부문; 부문명 LOC에서 * 을 선택 ———- —————————- ————————– 10 회계 뉴욕 20 리서치 Dallas30 세일즈 시카고 40 오퍼레이션즈 보스턴 SQL>부문; 부문명 LOC에서 * 을 선택 ———- —————————- ————————– 10 회계 뉴욕 20 리서치 Dallas30 세일즈 시카고 40 오퍼레이션즈 보스턴

테이블 안의 DEPT를 보면 부서명이 있다. DEPTNO DNAME LOG30 SALES CHICAGO···=>emp의 DEPTNO와 DEPT의 DEPTNO가 관계가 연결되어 있다. 관계가 맺어지면 삭제할 수 없어 데이터의 무결점을 막아준다. DEPT 데이터가 먼저 생겼다. (부모) emp는 자녀(부모가 있으면 자녀도 생기므로) 관계가 설정되어 있지 않으면 삭제되지만, 관계가 설정되어 있으면 오라클이 막기 때문에 삭제되지 않는다. DEPT의 dept no 30을 삭제하고자 하면 emp에 30이 있기 때문에 50으로 수정할 수 없다. emp의 30을 10으로 바꿀 수 있다. 왜냐하면 부서 이동을 하기 때문에 가능하다. emp의 30을 50으로 바꿀 수 없다. 왜냐하면 DEPT에 50번 부서가 없기 때문이다. 관계를 맺어주면 데이터가 엉키지 않는다. 만약 묶어주지 않는다면 예시로 구매하지 않은 금액이 내가 산 것으로 되어 있을지도 모른다. 그렇기 때문에 관계를 맺는 것은 중요하다. emp와 dept를 join하여 조건을 만족시키는 행을 꺼내올 것이다. 조인문 테이블 안의 DEPT를 보면 부서명이 있다. DEPTNO DNAME LOG30 SALES CHICAGO···=>emp의 DEPTNO와 DEPT의 DEPTNO가 관계가 연결되어 있다. 관계가 맺어지면 삭제할 수 없어 데이터의 무결점을 막아준다. DEPT 데이터가 먼저 생겼다. (부모) emp는 자녀(부모가 있으면 자녀도 생기므로) 관계가 설정되어 있지 않으면 삭제되지만, 관계가 설정되어 있으면 오라클이 막기 때문에 삭제되지 않는다. DEPT의 dept no 30을 삭제하고자 하면 emp에 30이 있기 때문에 50으로 수정할 수 없다. emp의 30을 10으로 바꿀 수 있다. 왜냐하면 부서 이동을 하기 때문에 가능하다. emp의 30을 50으로 바꿀 수 없다. 왜냐하면 DEPT에 50번 부서가 없기 때문이다. 관계를 맺어주면 데이터가 엉키지 않는다. 만약 묶어주지 않는다면 예시로 구매하지 않은 금액이 내가 산 것으로 되어 있을지도 모른다. 그렇기 때문에 관계를 맺는 것은 중요하다. emp와 dept를 join해서 조건에 맞는 줄을 꺼내올 것이다.조문

1]INNER JOIN – 두 개 이상의 테이블에서 자료를 검색하기 위해 join을 사용한다. 일반적으로 primary key와 foreign key를 사용하여 join하는 경우가 대부분 *primary key(부모) 절대값이 중복되지 않아야 한다. not null deflicate 값이 반드시 있어야 하며 중복되지 않아야 한다. ex) 1]INNER JOIN – 두 개 이상의 테이블에서 자료를 검색하기 위해 join을 사용한다. 일반적으로 primary key와 foreign key를 사용하여 join하는 경우가 대부분 *primary key(부모) 절대값이 중복되지 않아야 한다. not null deflicate 값이 반드시 있어야 하며 중복되지 않아야 한다.ex)

뎁노드 이름 위치 ———- —————————- ————————– 10 회계 뉴욕 20 리서치 Dallas30 세일즈 시카고 40 오퍼레이션즈 보스턴 데프 노드 이름의 장소 ———- —————————- ————————– 10 회계 뉴욕 20 리서치 Dallas30 세일즈 시카고 40 오퍼레이션즈 보스턴

부서 코드는 없어지지 않으며 중복되어서는 안 된다. 부서명은 중복될 가능성이 있다. 왜냐하면 같은 부서이지만 NEW YORK 지점일 수도 있고 DALLAS.. 지점일 수도 있기 때문에 DEPTNO를 prinmary key로 설정한 것이다. * 테이블 하나에는 반드시 prinmary key가 하나씩 있어야 한다. 부서 코드는 없어지지 않으며 중복되어서는 안 된다. 부서명은 중복될 가능성이 있다. 왜냐하면 같은 부서이지만 NEW YORK 지점일 수도 있고 DALLAS.. 지점일 수도 있기 때문에 DEPTNO를 prinmary key로 설정한 것이다. * 테이블 하나에는 반드시 prinmary key가 하나씩 있어야 한다.

EMPENONAME JOB MGR HEAREDATE SAL COMM DEPTNO です ———- ——————– —————— ———- ——– ———- ———- ———- 7369 SMITH SCRAIKER 790280/12/17 800 207499 앨런 세일즈맨 769881/02/20 1600 300 307521 WARD SAMPOR 769881/02/22 1250 500 307566 JONES MANAGER 783981/04/02 2975 207654 MARTIN SAMPSAMPOR 769881 /09월 28일입니다 1250 1400 307698 BLAKE MANAGER 7839 81/05/01 2850 307782 CLARK MANAGER 7839 81/06/09 2450 107839 KING President 81/11/17 5000 107844 TURNER SALE 7698 81/09/08 1500 07900 JAMES SALE SALE 7698 88 81 /12 /03 950 307902 FOR AN ONAME JOB MAGES SALE MENNAME JOB GREES SALE REAREAREA ———- ——————– —————— ———- ——– ———- ———- ———- 7934 미러 클라크 778282/01/23 130010 입니다 EMPENONAME JOB MGR HEAREDATE SAL COMM DEPTNO です ———- ——————– —————— ———- ——– ———- ———- ———- 7369 SMITH SCRAIKER 790280/12/17 800 207499 앨런 세일즈맨 769881/02/20 1600 300 307521 WARD SAMPOR 769881/02/22 1250 500 307566 JONES MANAGER 783981/04/02 2975 207654 MARTIN SAMPSAMPOR 769881 /09월 28일입니다 1250 1400 307698 BLAKE MANAGER 7839 81/05/01 2850 307782 CLARK MANAGER 7839 81/06/09 2450 107839 KING President 81/11/17 5000 107844 TURNER SALE 7698 81/09/08 1500 07900 JAMES SALE SALE 7698 88 81 /12 /03 950 307902 FOR AN ONAME JOB MAGES SALE MENNAME JOB GREES SALE REAREAREA ———- ——————– —————— ———- ——– ———- ———- ———- 7934 미러 클라크 778282/01/23 130010 입니다

*foreign key(아이)의 직업처럼 생각될 수도 있고 입사일입니다… 같을 수도 있지만, DEPTNO는 같지 않기 때문에, 프라이머리 키입니다. DEPT의 dept no는 primary key입니다. emp의 dept no는 foreign 키입니다. -가장 많이 사용되는 조인문으로 테이블 간의 연결 조건을 모두 충족하는 행을 검색하는 데 사용합니다. 검색시 검색되는 컬럼이 조인하는 테이블 모두에 존재하는 경우 반드시 컬럼명에 테이블명을 “테이블명, 컬러명” 형태로 기술해야 합니다. -이너조인은 자 테이블(FK가 있는 테이블)을 기준으로 모든 데이터를 가져옵니다. 예를 들면, 자 테이블에 전체 레코드가 10개가 있으면, 이너조인한 결과의 레코드 수는 10개입니다. 사용구문: [두 테이블의 조합] – 표준 SQL식 INNER JOIN*ms SQL(My SQL)에서도 사용할 수 있습니다. SELECT 칼럼명.. From 테이블명1 [INNER] JOIN 테이블명2 ON 테이블명1.PK 컬럼명 = 테이블명2.FK 컬럼명* 하나의 join문까지가 FROM절입니다. 그래서 ON 다음에 WHERE를 씁니다. *[INNER]는 생략 가능 * 테이블 1과 테이블 2와 join한다는 의미 * ON 조건이 표시됩니다. * 테이블명 1. PK 컬럼명: 테이블명 1은 부모입니다. 왜냐하면 테이블명 1 안에 PK 컬럼명이 있기 때문에 혹은 (오라클식 INNER JOIN) *오라클에서만 사용할 수 있습니다. 이 쿼리문은 ms SQL, SQL에서는 사용할 수 없습니다. (문법이 틀리면 오류가 납니다) SELECT 컬럼명.. From 테이블명1, 테이블명2 WHERE 테이블명1. PK 컬럼명 = 테이블명 2. FK 컬럼명 SELECT deptno 양쪽 테이블의 동일한 이름의 컬럼이 2개 있습니다. 그래서 어디서 가져와야 할지 모르기 때문에 오류가 납니다. 그렇기 때문에 테이블 이름을 써야 해요. ex)dept.deptno인데 한 테이블에 있는 컬럼 이름이면 생략 가능합니다. * 테이블명도 별칭을 지어줍니다. INNER JOIN ~ ON을 사용하는 경우, WHERE절을 사용하는 경우, WHERE절은 ON후에 기술해야 합니다. 또한 대조 시 WHERE 절에 요구하는 조건을 기술해도 되지만 대조 시 ON 절에 요구하는 조건을 AND로 추가하여 대조 시부터 필터링할 수 있습니다. ※ 테이블에 별칭 부여 – 테이블에 별칭을 부여하여 긴 테이블 이름을 쉽게 사용합니다. -테이블 이름 대신 에일리어스를 사용합니다. -SQL 코드를 적게 사용하면 코딩 시간이 절약되고 메모리를 더 적게 사용합니다. -테이블 별칭은 30자까지 사용 가능하지만 짧을수록 좋습니다. 테이블명 별칭[o] 테이블명 as 별칭 [x] : as는 사용 불가 별칭일 때 as를 사용하면 안 됩니다. *foreign key(아이)의 직업처럼 생각될 수도 있고 입사일입니다… 같을 수도 있지만, DEPTNO는 같지 않기 때문에, 프라이머리 키입니다. DEPT의 dept no는 primary key입니다. emp의 dept no는 foreign 키입니다. -가장 많이 사용되는 조인문으로 테이블 간의 연결 조건을 모두 충족하는 행을 검색하는 데 사용합니다. 검색시 검색되는 컬럼이 조인하는 테이블 모두에 존재하는 경우 반드시 컬럼명에 테이블명을 “테이블명, 컬러명” 형태로 기술해야 합니다. -이너조인은 자 테이블(FK가 있는 테이블)을 기준으로 모든 데이터를 가져옵니다. 예를 들면, 자 테이블에 전체 레코드가 10개가 있으면, 이너조인한 결과의 레코드 수는 10개입니다. 사용구문: [두 테이블의 조합] – 표준 SQL식 INNER JOIN*ms SQL(My SQL)에서도 사용할 수 있습니다. SELECT 칼럼명.. From 테이블명1 [INNER] JOIN 테이블명2 ON 테이블명1.PK 컬럼명 = 테이블명2.FK 컬럼명* 하나의 join문까지가 FROM절입니다. 그래서 ON 다음에 WHERE를 씁니다. *[INNER]는 생략 가능 * 테이블 1과 테이블 2와 join한다는 의미 * ON 조건이 표시됩니다. * 테이블명 1. PK 컬럼명: 테이블명 1은 부모입니다. 왜냐하면 테이블명 1 안에 PK 컬럼명이 있기 때문에 혹은 (오라클식 INNER JOIN) *오라클에서만 사용할 수 있습니다. 이 쿼리문은 ms SQL, SQL에서는 사용할 수 없습니다. (문법이 틀리면 오류가 납니다) SELECT 컬럼명.. From 테이블명1, 테이블명2 WHERE 테이블명1. PK 컬럼명 = 테이블명 2. FK 컬럼명 SELECT deptno 양쪽 테이블의 동일한 이름의 컬럼이 2개 있습니다. 그래서 어디서 가져와야 할지 모르기 때문에 오류가 납니다. 그렇기 때문에 테이블 이름을 써야 해요. ex)dept.deptno인데 한 테이블에 있는 컬럼 이름이면 생략 가능합니다. * 테이블명도 별칭을 지어줍니다. INNER JOIN ~ ON을 사용하는 경우, WHERE절을 사용하는 경우, WHERE절은 ON후에 기술해야 합니다. 또한 대조 시 WHERE 절에 요구하는 조건을 기술해도 되지만 대조 시 ON 절에 요구하는 조건을 AND로 추가하여 대조 시부터 필터링할 수 있습니다. ※ 테이블에 별칭 부여 – 테이블에 별칭을 부여하여 긴 테이블 이름을 쉽게 사용합니다. -테이블 이름 대신 에일리어스를 사용합니다. -SQL 코드를 적게 사용하면 코딩 시간이 절약되고 메모리를 더 적게 사용합니다. -테이블 별칭은 30자까지 사용 가능하지만 짧을수록 좋습니다. 테이블명 별칭[o] 테이블명 as 별칭 [x] : as는 사용 불가 별칭일 때 as를 사용하면 안 됩니다.

Memberid(pkey)nameKIM 김길동 HONG 홍길동 PARK 박길동 Memberid(pkey)nameKIM 김길동 HONG 홍길동 PARK 박길동

 

BBSNO(p key)TITLEid1제 1KIM2제 2HONG3제 3PARK4제 4KIM BBSNO(p key)TITLEid1제 1KIM2제 2HONG3제 3PARK4제 4KIM

이너조인 때는 어디서 가져오든 상관없어요. 일치하는 것만 취득합니다. 이너조인 때는 어디서 가져오든 상관없어요. 일치하는 것만 취득합니다.

멤버 m JOIN BBS BONM에서 m.id , name, no, title을 선택합니다. ID=B.ID 멤버 m JOIN BBS BONM에서 m.id , name, no, title을 선택합니다. ID=B.ID

 

 

IDNAMENOTITLEKIM 김길동1 제1KIM 김길동3 제3KIM 김길동4 제4 HONG홍길동2 제2 IDNAMENOTITLEKIM 김길동1 제1KIM 김길동3 제3KIM 김길동4 제4 HONG홍길동2 제2

자의 레코드수 4개 INNER JOIN 한자수 4*자의 레코드수와 INNER JOIN 한자수와 같다. * 주로 부모의 pkey와 자식의 fkey와 JOIN한다. 자의 레코드수 4개 INNER JOIN 한자수 4*자의 레코드수와 INNER JOIN 한자수와 같다. * 주로 부모의 pkey와 자식의 fkey와 JOIN한다.

 

 

error: Content is protected !!