USE TASDBGS; 
-- 사용할 DB 선택
 
ALTER DATABASE TASDBGS SET RECOVERY SIMPLE; 
-- DB 복구 모델을 SIMPLE로 설정하여 파일을 비운다.
 
DBCC SHRINKDATABASE(TASDBGS);
-- DB의 필요 없는 공간을 축소
 
ALTER DATABASE TASDBGS SET RECOVERY FULL;
-- DB 복구 모델을 FULL 로 설정

'IT > SQL' 카테고리의 다른 글

[Oracle SQL]  (0) 2023.08.30
Oracle SQL  (0) 2023.08.30


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

[MS-SQL] 트랜잭션 로그 삭제 쿼리  (0) 2025.01.23
Oracle SQL  (0) 2023.08.30

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



DDL(Data Definition Language)

 

create 

 

새로운 데이터베이스 객체(테이블, 뷰, 인덱스 등)를 생성할 때 사용한다.


CREATE OBJECT_TYPE OBJECT_NAME
(
    COLUMN1 DATA_TYPE,
    COLUMN2 DATA_TYPE,
    ...
);
CREATE TABLE MEMBER
(
    ID			NUMBER,
    PWD			VARCHAR2(50),
    NAME		VARCHAR2(50),
    GENDER		VARCHAR2(50),
    AGE			NUMBER,
    BIRTHDAY		VARCHAR2(50),
    PHONE		VARCHAR2(50),
    REGDATE		DATE
)

alter

 

이미 존재하는 데이터베이스 객체를 수정할 때 사용한다. 주로 열 추가, 수정, 삭제 등의 작업에서 활용 됨.


ALTER OBJECT_TYPE OBJECT_NAME
ACTION;
ALTER TABLE MEMBER
ADD EMAIL VARCHAR2(100);

drop

 

이미 존재하는 데이터베이스 객체를 삭제할 때 사용된다. 삭제하면 데이터도 함께 삭제될 수 있다.

 

DROP OBJECT_TYPE OBJECT_NAME;
DROP TABLE MEMBER;

오라클 데이터 형식

 

오라클에서는 싱글 따옴표 (') 를 사용하고, 더블 따옴표(")는 다른 의미를 가진다.

 

Character 형식

  • CHAR : CHAR 데이터 형식은 고정 길이 문자열을 저장하는 데 사용됩니다. 정의된 길이보다 짧은 문자열을 저장하면 나머지 공간이 공백으로 채워집니다.
CREATE TABLE Person (
    ID NUMBER,
    FirstName CHAR(30),
    LastName CHAR(30)
);

 

  • VARCHAR2 : VARCHAR2 데이터 형식은 가변 길이 문자열을 저장하는 데 사용됩니다. 최대 길이를 지정할 수 있으며, 저장된 문자열은 지정된 길이 내에서 저장됩니다.
CREATE TABLE Product (
    ProductID NUMBER,
    ProductName VARCHAR2(100),
    Description VARCHAR2(255)
);

 

  • NCHAR : NCHAR 데이터 형식은 고정 길이의 유니코드 문자열을 저장하는 데 사용됩니다. 문자의 길이는 바이트가 아닌 문자 수로 계산됩니다.
CREATE TABLE InternationalOrder (
    OrderID NUMBER,
    CustomerName NCHAR(50),
    Address NCHAR(100)
);

 

  • NVARCHAR2 : NVARCHAR2 데이터 형식은 가변 길이의 유니코드 문자열을 저장하는 데 사용됩니다. 최대 길이를 지정할 수 있으며, 문자의 길이는 바이트가 아닌 문자 수로 계산됩니다.
CREATE TABLE InternationalProduct (
    ProductID NUMBER,
    ProductName NVARCHAR2(100),
    Description NVARCHAR2(255)
);

 

  • LONG : Character data of variable length up to 2 gigabytes, or 231 -1 bytes. Provided for backward compatibility
  • CLOB : 대용량 텍스트 데이터 타입 (최대 4Gbyte)
  • NCLOB : 대용량 텍스트 유니코드 데이터 타입 ( 최대 4Gbyte)

 

'IT > SQL' 카테고리의 다른 글

[MS-SQL] 트랜잭션 로그 삭제 쿼리  (0) 2025.01.23
[Oracle SQL]  (0) 2023.08.30

+ Recent posts