SQL(structured Query Language)
- DBMS에게 질의를 위한 명령어
DDL(Data Definition Language) - create/alter/drop
DML(Data Manipulation Language) - select/insert/update/delete
DCL(Data Control Language) - grant/ revoke
https://www.oracle.com/database/technologies/xe-downloads.html
Oracle Database Express Edition (XE) Downloads
Support Oracle Database Express Edition (XE) is a community supported edition of the Oracle Database family. Please go to the Oracle Database XE Community Support Forum for help, feedback, and enhancement requests. Note: Oracle Support Services only provid
www.oracle.com
https://www.oracle.com/database/sqldeveloper/
SQL Developer
Oracle SQL Developer is a free, development environment that simplifies the management of Oracle Database in both traditional and Cloud deployments. It offers development of your PL/SQL applications, query tools, a DBA console, a reports interface, and mor
www.oracle.com
DML 항목들은 달달 외우도록 연습한다.
오라클에서는 싱글 따옴표 (') 를 사용하고, 더블 따옴표(")는 다른 의미를 가진다.
VARCHAR2(size[BYTE | CHAR]) - 가변길이의 데이터 형식
NCHAR[(size)] - National character 다국어를 사용할 수 있는 방법.
CONTENT CLOB
예약어, 명령어를 이름으로 쓰고싶으면 [" "]을 사용하면 된다.
C - Create : insert
R - Retrieve : select
U - Update : update
D - Delete : delete
로드 - 연결 - 문장 - 결과집합
String url="jdbc:oracle:thin:@데이터베이스 서버 주소/xepdb1";
String sql="SELECT * FROM MEMBER";
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection con = DriverManager.getConnection(url, "ID","PASSWORD");
Statement st = con.createStatement();
ResultSet rs = st.executeQuery(sql);
int index = 1;
while (rs.next()) {
int id = rs.getInt("ID");
int age = rs.getInt("AGE");
String name = rs.getString("name");
String pwd = rs.getString("pwd");
String phone = rs.getString("PHONE");
//테이터 분석 : 집계(평균, 중앙값....),정렬, 필터링, 맵핑.....
//나이가 200살 안되는 회원으로만 선택적으로 출력을 하시오.
//SELECT * FROM MEMBER
if (age <= 200 && age != 0) {
System.out.println("ID : " + id);
System.out.println("Name : " + name);
System.out.println("Pwd : " + pwd);
System.out.println("AGE : " + age);
System.out.println("PHONE : " + phone + "\n");
index++;
}
rs.close();
st.close();
con.close();
https://www.oracle.com/database/technologies/appdev/jdbc-downloads.html
연산을 통한 데이터 조회
SELECT age+100 age from member;
SELECT age+'100' age from member;
//오라클에서는 +연산자는 숫자로 연산한다.
문자열 더하기 연산자
SELECT NAME ||'('||ID||')' NAME FROM MEMBER ORDER BY ID;
SELECT *FROM [테이블명] WHERE BETWEEN [숫자] AND [숫자]
%를 사용하면 *와 같음.
010-2345-246[0123456789] //뒤에 0~9까지 숫자잇것을 찾음
010-2345-246[0-9] //위랑 같은 식
010-2345-[0-9][0-9][0-9][0-9] //간단하게 표현한 식
010-2345-\d\d\d\d
010-2345-\d{4}
010-\d{4}-\d{4}
010-\d{3, 4}-\d{4} //중간에 3자리 또는 4자리를 찾음
01[016789]-\d{3, 4}-\d{4} //예전 번호 양식으로 정규식을 만듦
^\d{1,3}(?:,\d{3})*원$
regular +expression -mdn
(?<=\+)\w+
SELECT M.* FROM (SELECT ROWNUM NUM,MEMBER. * FROM MEMBER) M WHERE NUM BETWEEN 6 AND 10 ;--SUB 쿼리
SELECT ROWNUM, MEMBER.* FROM MEMBER WHERE ROWNUM BETWEEN 1 AND 5 ;
--SELECT ROWNUM, MEMBER.* FROM MEMBER WHERE ROWNUM BETWEEN 6 AND 10 ;
SELECT * FROM (SELECT ROWNUM NUM,MEMBER. * FROM MEMBER) WHERE NUM BETWEEN 6 AND 10 ;
SELECT * FROM ( SELECT ROWNUM NUM, M.* FROM (SELECT * FROM MEMBER ORDER BY ID DESC) M )WHERE NUM BETWEEN 6 AND 10;
SELECT M.* FROM (SELECT ROWNUM NUM,MEMBER. * FROM MEMBER) M WHERE NUM BETWEEN 6 AND 10 ;--SUB 쿼리
SELECT DISTINCT AGE FROM MEMBER;--중복값 제거
SELECT LENGTH(NAME) FROM MEMBER;
SELECT * FROM MEMBER WHERE LENGTH(NAME)=3;
SELECT * FROM MEMBER ORDER BY NAME DESC;
SELECT * FROM MEMBER ORDER BY NAME DESC,ID ASC;
UPDATE MEMBER SET NAME='리유진' where ID=15;
오름차순 - 낮은수부터
내림차순 - 큰수부터
--문법 작성시 이 순서대로 써야한다.
SELECT, FROM, WHERE, GROUP BY, HAVING, ORDER BY
중복을 제거한 이유 -> 무결성 때문에
레코드를 확장할 때 쓰는놈임.
'IT > SQL' 카테고리의 다른 글
[MS-SQL] 트랜잭션 로그 삭제 쿼리 (0) | 2025.01.23 |
---|---|
Oracle SQL (0) | 2023.08.30 |