728x90
반응형

STUDENT 테이블

 

EMP 테이블

 

 

 

 

1. STUDENT 테이블에서 기계과 이면서 키가 170 이상인 학생 조회

▶ 코드

SELECT STU_NAME
FROM STUDENT
WHERE STU_DEPT IN ('기계') AND STU_HEIGHT >= 170;

 

▶ 출력 결과

 

 

 

2. STUDENT 테이블에서 반(STU_CLASS)가 A이거나 B인 학생 구하기

▶ 코드

SELECT STU_NAME
FROM STUDENT
WHERE STU_CLASS IN ('A','B');

 

▶ 출력 결과

 

 

 

3. STUDENT 테이블에서 몸무게가 60~70 사이인 학생 구하기(BETWEEN 사용)

▶ 코드

SELECT STU_NAME
FROM STUDENT
WHERE STU_WEIGHT BETWEEN 60 AND 70;

 

▶ 출력 결과

 

 

 

4. STUDENT 테이블에서 키가 170이상인 학생의 수 구하기

▶ 코드

SELECT COUNT(STU_NAME) AS 학생수
FROM STUDENT
WHERE STU_HEIGHT >= 170;

 

▶ 출력 결과

 

 

 

5. EMP 테이블에서 급여가 4000 이상인 레코드 삭제

▶ 코드

DELETE
FROM EMP
WHERE SAL >= 4000;

 

▶ 출력 결과

SAL이 4000이 넘는 행이 삭제되었다.

 

 

6. EMP 테이블에서 부서번호(DEPTNO)가 20인 레코드 삭제

▶ 코드

DELETE
FROM EMP
WHERE DEPTNO IN (20);

 

▶ 출력 결과

  • DEPTNO가 20인 행이 삭제되었다.

 

 

 

7. STUDENT 테이블에서 키가 180이상인 학생의 몸무게 1씩 증가

▶ 코드

UPDATE STUDENT
SET STU_WEIGHT = STU_WEIGHT+1
WHERE STU_HEIGHT >= 180;

 

▶ 출력 결과

  • 몸무게가 90에서 1이 증가된 91으로 변경되었다.

 

 

 

8. STUDENT 테이블에서 기계과 이면서 3학년인 학생의 반(STU_CLASS)를 B로 변경

▶ 코드

UPDATE STUDENT
SET STU_CLASS = 'B'
WHERE STU_DEPT = '기계' AND STU_GRADE = 3;

 

▶ 출력 결과

  • A 값이 B로 출력되었다.

 

728x90
반응형

'HRD_훈련 > 실습' 카테고리의 다른 글

[SQL] JOIN 실습 1 (20일차)  (0) 2023.06.13
[SQL] SQL 함수 실습 (19일차)  (0) 2023.06.12
[SQL] UPDATE 실습 (19일차)  (0) 2023.06.12
[SQL] DELETE 실습 (19일차)  (0) 2023.06.12
[SQL] SELECT 실습 (19일차)  (0) 2023.06.12
728x90
반응형

1. STUDENT 테이블 조회

▶ 코드

SELECT *
FROM STUDENT;

 

▶ 출력 결과

 

 

 

2. STUDENT 테이블 레코드 개수 구하기 - 별칭 CNT

▶ 코드

SELECT COUNT(*) AS CNT
FROM STUDENT;

 

▶ 출력 결과

 

 

 

3. STUDENT 테이블에서 학번 이름 학과 컬럼 조회

▶ 코드

SELECT STU_NO, STU_NAME, STU_DEPT
FROM STUDENT;

 

▶ 출력 결과

 

 

 

4. STUDENT 테이블에서 기계과 학생만 조회

▶ 코드

SELECT *
FROM STUDENT
WHERE STU_DEPT = '기계';

 

▶ 위 코드는 IN 을 이용해 표현할 수 있다. 조건이 여러 개일 때 유용하게 쓰인다.

SELECT *
FROM STUDENT
WHERE STU_DEPT IN('기계');

 

▶ 출력 결과

 

 

 

5. STUDENT 테이블에서 남자 학생만 조회

▶ 코드

SELECT *
FROM STUDENT
WHERE STU_GENDER = 'M';

 

▶ 출력 결과

 

 

 

6. STUDENT 테이블에서 남자인 사람과 기계인 사람만 조회

▶ 코드

SELECT *
FROM STUDENT
WHERE STU_GENDER = 'M' AND STU_DEPT = '기계';

 

▶ 출력 결과

 

 

 

7. STUDENT 테이블에서 키가 170 이상인 학생 조회

▶ 코드

SELECT *
FROM STUDENT
WHERE STU_HEIGHT >= 170;

 

▶ 출력 결과

 

 

 

8. STUDENT 테이블에서 키가 175 이상이거나 몸무게가 60 이상인 학생 조회

▶ 코드

SELECT *
FROM STUDENT
WHERE STU_HEIGHT >= 175 OR STR_WEIGHT >= 60;

 

▶ 출력 결과

 

 

 

9. STUDENT 테이블에서 키가 170~180 사이의 학생 조회

▶ 코드

SELECT *
FROM STUDENT
WHERE STU_HEIGHT >= 170 AND STU_HEIGHT <= 180;

 

▶ 위 코드는 BETWEEN 을 이용해 표현할 수 있다. (위 코드보다 더 빠르며, 추천하는 방식이다)

SELECT *
FROM STUDENT
WHERE STU_HEIGHT BETWEEN 170 AND 180;

 

▶ 출력 결과

 

 

 

10. STUDENT 테이블에서 키가 NULL인 학생 조회

▶ 코드

SELECT *
FROM STUDENT
WHERE STU_HEIGHT IS NULL;

 

▶널이 아닌 값 : IS NOT NULL

SELECT *
FROM STUDENT
WHERE STU_HEIGHT IS NOT NULL;

 

▶ 출력 결과

 

 

 

11. STUDENT 테이블에서 기계과이거나 전지전자과인 학생을 조회

▶ 코드

SELECT *
FROM STUDENT
WHERE STU_DEPT IN('기계','전기전자');

 

▶ 위 WHERE문은 AND을 이용해도 나타낼 수 있지만, 코드가 길고 복잡한 특징이 있다.

WHERE STU_DEPT = '기계' OR STU_DEPT = '전기전자';

 

▶ 출력 결과

 

 

 

12. STUDENT 테이블에서 남학생의 숫자 조회

▶ 코드

SELECT COUNT(*) AS 남학생수
FROM STUDENT
WHERE STU_GENDER = 'M';

 

▶ 출력 결과

 

 

728x90
반응형

'HRD_훈련 > 실습' 카테고리의 다른 글

[SQL] UPDATE 실습 (19일차)  (0) 2023.06.12
[SQL] DELETE 실습 (19일차)  (0) 2023.06.12
[JAVA] 시간 게임  (0) 2023.06.10
[JAVA] Calendar 문제 (18일차)  (0) 2023.06.09
[JAVA] Collections 클래스 문제 (18일차)  (0) 2023.06.09
728x90
반응형

<오늘의 학습-데이터 관리>

1. 오라클 데이터베이스 설치

2. CREATE TABLE

3. INSERT

4. SELECT

5. UPDATE

6. DELETE

7. COMMIT과 ROLLBACK

8. 조건 연산자

9. 함수

 

 

1. 오라클 데이터베이스 설치

★ 비밀번호를 잘 기억할 것

▶ 오라클 홈페이지 로그인 : https://www.oracle.com/kr/

▶ 다운로드

 

 

 

2. CREATE TABLE

▶ 테이블을 생성한다.

CREATE TABLE 테이블명(
	속성명 데이터타입


);
  • PRIMARY KEY : 테이블의 기본키로 사용할 속성. 중복 없이 하나만 가지고 있는 값. NOT NULL, UNIQUE 제약
    • ex) EMPNO (사번)
  • UNIQUE : 대체키로 사용할 속성. 테이블 내에서 얻은 유일한 값. 중복되면 안 되는 항목을 지정한다.
  • FOREIGN KEY ~ REFERENCES ~ : 외래키로 사용할 속성 지정
    • ON DELETE 옵션 : 튜플이 삭제되었을 때 기본 테이블에 취할 사항을 지정한다.
    • ON UPDATE 옵션 : 참조 속성 값이 변경되었을 때 기본 테이블에 취할 사항을 지정한다.
  • CONSTRAINT : 제약 조건의 이름을 지정한다.
  • CHECK : 속성 값에 대한 제약 조건을 정의한다.

 


▷ '이름', '학번', '전공'으로 구성된 학생 테이블 생성

CREATE TABLE 학생
	(이름 VARCHAR(15) NOT NULL
	학번 CHAR(8)
	전공 CHAR(5)
	);

 

 

 

3. INSERT

▶ 테이블에 새로운 튜플을 삽입한다.

INSERT INTO 테이블명(속성명1, 속성명2, ...)
VALUES(데이터1, 데이터2, ...);
  • 속성과 데이터는 개수와 데이터 유형이 일치해야한다.
  • 모든 속성을 입력한다면 속성명을 생략하고 전체(*)로 나타낼 수 있다. 컬럼을 지정해주지 않는다면 전부 다 입력해야 한다.
  • 하나의 데이터 값이라도 입력하지 않으면 삽입할 수 없다.
  • SELECT문을 사용하여 다른 테이블의 검색 결과를 삽입할 수 있다.

 

 

INSERT INTO STUDENT(STU_NO, STU_NAME, STU_DEPT)
VALUES(20230612,'홍길동','컴퓨터정보');
  • 컬럼명과 값을 매치해야한다.

 

 


▷ 값을 삽입해 보자.

INSERT INTO STUDENT(STRU_NO, STU_NAME, STU_DEPT, STU_GRADE, STU_GENDER)
VALUES(20231234, '홍길동', '기계', 1, NULL, 'F', NULL, NULL);

 

INSERT INTO STUDENT
VALUES(20231234, '홍길동', '기계', 1, NULL, 'F', NULL, NULL);

 

▶ 출력 결과

 

 


▷ <사원> 테이블에 있는 편집부서의 모든 튜플을 편집부원(이름,생일,주소) 테이블에 삽입하는 코드를 작성하시오.

INSERT INTO 편집부원(이름, 생일, 주소)
SELECT 이름, 생일, 주소
FROM 사원
WHERE 부서 = '편집';

 

 

 

 

4. SELECT

▶ 테이블에서 튜플을 검색한다. 테이블에 영향을 주지 않는다.

SELECT [DISTINCT] 속성명1, 속성명2, ... [AS 별칭]
FROM 테이블명, ...
WHERE 조건
GROUP BY 속성명1, 속성명2, ...
HAVING 그룹 조건
ORDER BY 속성명 [ASC | DESC]
  • DISTINCT : 중복된 튜플이 있으면 그 중 첫 번째 하나만 검색한다.
  • AS : 속성이나 연산의 이름을 다른 이름으로 표시하기 위해서 사용한다.
  • FROM 절 : 검색할 데이터가 들어있는 테이블의 이름을 기술한다.
  • WHERE절 : 검색할 조건을 기술한다.
  • GROUP BY 절 : 특정 속성을 기준으로 그룹화하여 검색할 때 사용한다.
  • HAVING 절  : GROUP BY 와 함께 사용되며, 그룹에 대한 조건을 지정한다.
  • ORDER BY 절 : 데이터를 정렬하여 검색할 때 사용한다. 정렬의 기준이 되는 속성명을 기술한다.
    • ASC : 오름차순 (1~10). 생략시 오름차순을 뜻한다.
    • DESC : 내림차순 (10~1)

 

 


▶ 실습 내용

 

[SQL] SELECT 실습 (19일차)

1. STUDENT 테이블 조회 ▶ 코드 SELECT * FROM STUDENT; ▶ 출력 결과 2. STUDENT 테이블 레코드 개수 구하기 - 별칭 CNT ▶ 코드 SELECT COUNT(*) AS CNT FROM STUDENT; ▶ 출력 결과 3. STUDENT 테이블에서 학번 이름 학과

deliciouscode.tistory.com

 

 

 

 

5. UPDATE

▶ 테이블에서 튜플의 내용을 변경한다.

UPDATE 테이블명
SET 속성명 = 데이터, ...
[WHERE 조건];

 

 

▷ <사원> 테이블에  '홍길동'의 주소를 '수색동'으로 변경하라.

UPDATE 사원
SET 주소 = '수색동'
WHERE 이름 = '홍길동';

 

 


▶ 실습 내용

 

[SQL] UPDATE 실습 (19일차)

1. STUDENT 테이블에서 옥성우의 학과를 기계과로 변경 ▶ 코드 UPDATE STUDENT SET STU_DEPT = '기계' WHERE STU_NAME = '옥성우'; ▶ 출력 결과 2. STUDENT 테이블에서 키가 NULL인 레코드의 키 값을 175로 변경 ▶ 코

deliciouscode.tistory.com

 

 

6. DELETE

▶ 튜플을 삭제한다. 

DELETE
FROM 테이블명
WHERE 조건;
  • 모든 레코드를 삭제해도 테이블 구조는 남는다.
  • 모든 레코드를 삭제할 때는 WHERE 절을 생략한다.

 

 


▶ 실습 내용

 

[SQL] DELETE 실습 (19일차)

※ DELETE를 작성할 때 조건을 먼저 작성하고, 마지막에 FROM 테이블을 작성하는 것을 습관화하면 좋다. (사고 방지) 1. EMP 테이블에서 이름이 SMITH인 테이블 삭제 ▶ 코드 DELETE FROM EMP WHERE ENAME = 'SMITH

deliciouscode.tistory.com

 

 

 

 

7. COMMIT 과 ROLLBACK

  1. COMMIT : 데이터베이스에 현재 상태를 저장한다. COMMIT 이후에는 ROLLBACK 할 수 없다.
    • 트랜잭션이 수행한 내용을 데이터베이스에 반영하는 명령어이다. 
    • COMMIT을 하지 않아도 성공적으로 완료가 된다면 자동으로 COMMIT이 되고, 실패하면 자동으로 ROLLBACK 되도록 Auto Commit 기능을 설정할 수 있다.
  2. ROLLBACK : 변경되었으나 아직 COMMIT 되지 않은 내용들을 취소하고 데이터베이스를 이전 상태로 되돌리는 명령어이다. 마지막으로 COMMIT 된 데이터베이스 상태로 되돌린다.

 

 

 

8. 조건 연산자

▶ 테이블에서 튜플의 내용을 변경한다.

1) 비교 연산자

= <> > < >= <=
같다 같지 않다 크다 작다 크거나 같다 작거나 같다

 

2) 논리 연산자 :  NOT, AND, OR

 

3) NULL

  • IS NULL : NULL 값이다.
  • IS NOT NULL : NULL 값이 아니다.

 

4) LIKE 연산자 : 대표 문자를 이용해 지정된 속성의 값이 문자 패턴과 일치하는 튜플을 검색한다.

% _ #
모든 문자를 대표한다. 문자 하나를 대표한다. 숫자 하나를 대표한다.

 

5) BETWEEN A AND B : A에서 B 사이의 값을 검색한다.

WHERE 생일 BETWEEN #01/01/69# AND #12/12/12#;

 

6) IN(조건1, 조건2, ..) : 조건1이거나 조건2인 값을 검색한다.

VALUES IN('남','여');

 

 

 

 

실습

▷ 예제) DEPT 테이블을 만들고 값을 넣어 출력

CREATE TABLE DEPT (
  DEPTNO NUMBER(2),
  DNAME VARCHAR2(14),
  LOC VARCHAR2(13) 
);

INSERT INTO DEPT VALUES (10, 'ACCOUNTING', 'NEW YORK');
INSERT INTO DEPT VALUES (20, 'RESEARCH',   'DALLAS');
INSERT INTO DEPT VALUES (30, 'SALES',      'CHICAGO');
INSERT INTO DEPT VALUES (40, 'OPERATIONS', 'BOSTON');

 

 

▷ DEPT 테이블의 전체 내용을 출력한 결과

SELECT *
FROM DEPT;

 

▷ DEPT 테이블의 DEPTNO, DNAME 만 출력

SELECT DEPTNO, DNAME
FROM DEPT;

 

 

 

심화 문제 풀이

 

[SQL] 심화 문제 (19일차)

1. STUDENT 테이블에서 기계과 이면서 키가 170 이상인 학생 조회 ▶ 코드 SELECT STU_NAME FROM STUDENT WHERE STU_DEPT IN ('기계') AND STU_HEIGHT >= 170; ▶ 출력 결과 2. STUDENT 테이블에서 반(STU_CLASS)가 A이거나 B인 학

deliciouscode.tistory.com

 

 

 

 

다음 학습

 

[SQL] SQL 함수(1/2) (19일차)

 

deliciouscode.tistory.com

 

728x90
반응형

'HRD_훈련 > ORACLE SQL' 카테고리의 다른 글

[SQL] 시간 함수 (21일차)  (0) 2023.06.14
[SQL] SELF, OUTER JOIN (21일차)  (0) 2023.06.14
[SQL] INNER JOIN (20일차)  (0) 2023.06.13
[SQL] SQL 함수 (2/2) (19일차)  (0) 2023.06.12
[SQL] SQL 함수(1/2) (19일차)  (0) 2023.06.12

+ Recent posts