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+

x

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' 카테고리의 다른 글

Oracle SQL  (0) 2023.08.30

+ Recent posts