728x90
--------------------------ORACLE SQL DEVELOPER--------------------------------
--1. SQL developer를 이용하여 Oracle XE DB에 scott계정으로 접속하여 아래 table 을 생성하시오.
CREATE TABLE EXAM_TABLE(
ID VARCHAR(50) PRIMARY KEY,
PASS VARCHAR(30) NOT NULL,
NAME VARCHAR(25) NOT NULL,
SCORE NUMBER(3)
);
INSERT INTO EXAM_TABLE VALUES('1001', '1234','Kim',90);
INSERT INTO EXAM_TABLE VALUES('1002', '3456','Lee',100);
INSERT INTO EXAM_TABLE VALUES('1003', '5678','Park',85);
INSERT INTO EXAM_TABLE VALUES('1004', '7890','Choi',75);
SELECT * FROM EXAM_TABLE;
COMMIT;
------------------------------RSTUDIO-----------------------------------
# 2. Oracle XE DB에 접근하기 위한 설정(driver 설정,
# import package 또는 package loading, DB연결 등)을 하시오.
#import package
library(DBI)
library(rJava)
library(RJDBC)
#자바 환경변수 설정
Sys.setenv(JAVA_HOME = "C:\\Program Files\\Java\\jdk1.8.0_202")
# Driver 설정
drv <- JDBC("oracle.jdbc.driver.OracleDriver", "C:/OracleTest/ojdbc6.jar")
# 데이터베이스 연결
conn <- dbConnect(drv,"jdbc:oracle:thin:@//127.0.0.1:1521/xe", "scott", "tiger")
# 3.exam_table 내 모든 데이터를 조회하시오.
query = "SELECT * FROM EXAM_TABLE"
dbGetQuery(conn, query)
# ID PASS NAME SCORE
# 1 1001 1234 Kim 90
# 2 1002 3456 Lee 100
# 3 1003 5678 Park 85
# 4 1004 7890 Choi 75
# 4. 아래 레코드 추가하시오.
query = "INSERT INTO EXAM_TABLE VALUES('1005','2345','Jung',95)"
dbSendUpdate(conn,query)
query = "INSERT INTO EXAM_TABLE VALUES('1006','4567','Kang',80)"
dbSendUpdate(conn,query)
# 5. 추가된 레코드를 포함하여 exam_table 내 모든 데이터를 조회하시오.
query = "SELECT * FROM EXAM_TABLE"
dbGetQuery(conn, query)
# ID PASS NAME SCORE
# 1 1001 1234 Kim 90
# 2 1002 3456 Lee 100
# 3 1003 5678 Park 85
# 4 1004 7890 Choi 75
# 5 1005 2345 Jung 95
# 6 1006 4567 Kang 80
# 6. 성적(score) 기준으로 내림차순 정렬하시오.
query = "SELECT * FROM EXAM_TABLE ORDER BY SCORE DESC"
dbGetQuery(conn, query)
# ID PASS NAME SCORE
# 1 1002 3456 Lee 100
# 2 1005 2345 Jung 95
# 3 1001 1234 Kim 90
# 4 1003 5678 Park 85
# 5 1006 4567 Kang 80
# 6 1004 7890 Choi 75
# 7. name 이 ‘Choi’인 학생의 성적을 80점으로 수정하시오.
query = "UPDATE EXAM_TABLE SET SCORE = 80 WHERE NAME = 'Choi'"
dbSendUpdate(conn, query)
# ID PASS NAME SCORE
# 1 1001 1234 Kim 90
# 2 1002 3456 Lee 100
# 3 1003 5678 Park 85
# 4 1004 7890 Choi 80
# 5 1005 2345 Jung 95
# 6 1006 4567 Kang 80
# 8. 성적(score)이 80점 초과인 레코드만 조회하시오.
query = "SELECT * FROM EXAM_TABLE WHERE SCORE > 80"
dbGetQuery(conn, query)
# ID PASS NAME SCORE
# 1 1001 1234 Kim 90
# 2 1002 3456 Lee 100
# 3 1003 5678 Park 85
# 4 1005 2345 Jung 95
# 9. name이 ‘Kang’인 학생의 레코드를 삭제하시오.
query = "DELETE FROM EXAM_TABLE WHERE NAME = 'Kang'"
dbSendUpdate(conn, query)
# 10. 전체 레코드를 조회하시오.
query = "SELECT * FROM EXAM_TABLE"
dbGetQuery(conn, query)
# ID PASS NAME SCORE
# 1 1001 1234 Kim 90
# 2 1002 3456 Lee 100
# 3 1003 5678 Park 85
# 4 1004 7890 Choi 80
# 5 1005 2345 Jung 95
'SQL' 카테고리의 다른 글
SQL Oracle DB XE 11g환경 구축 (1) | 2022.12.14 |
---|---|
SQL 서브쿼리 연습문제 (2) | 2022.12.14 |
PL/SQL 프로시저 IN, OUT, IN OUT 차이 (1) | 2022.12.14 |
R-SQL 연동(csv,DataFrame) (0) | 2022.12.14 |
SQL(Oracle)-R 연동 환경 구축 (0) | 2022.12.14 |