본문 바로가기

DataBase(SQL)/DAY 27 _ 23.09.25

DML

-- DML(CRUD) : Insert, Select, Update, Delete

 

** Sequence

DROP SEQUENCE Student_seq;
CREATE SEQUENCE Student_seq;

 

--> 일반적으로 table과 함께 생성되며, table name과 같은 명을 가짐.
--> 일련 번호를 생성하는 데 사용.
--> 일련 번호는 주로 고유한 식별자를 생성하거나 데이터베이스 내에서 순차적으로 증가하는 값을 생성하는 데 유용.

 

* 각 구문 요소의 역할 :
sequence_name: 생성하려는 시퀀스의 이름을 지정합니다.
START WITH : 시퀀스가 시작할 값입니다. 기본적으로 1로 설정됩니다.
INCREMENT BY : 시퀀스의 증가값을 지정합니다. 기본적으로 1로 설정됩니다.
MINVALUE : 시퀀스에서 허용되는 최소값을 지정합니다.
MAXVALUE : 시퀀스에서 허용되는 최대값을 지정합니다.
CYCLE | NO CYCLE : 시퀀스가 최대값에 도달하면 다시 시작할 것인지 여부를 지정합니다.
CACHE : 시퀀스 값의 캐시 크기를 지정합니다. 

 

 


DROP TABLE STUDENT;
CREATE TABLE STUDENT(
	id NUMBER,
	name varchar2(20),
	age NUMBER,
	score NUMBER,
	register DATE
);

 

** 1. Insert --> 생성자 선언처럼 할 수 있음.

INSERT INTO STUDENT(id, name, age, score, register) VALUES (1, '한조', 30, 90, sysdate);
INSERT INTO STUDENT(id, name, age) VALUES (1, '한조', 30); --> 알아서 null
INSERT INTO STUDENT VALUES (1, '한조', 30, 90, null); --> 직접 null

* .NEXTVAL : 1씩 증가시키는 API 
--> id를 일일이 적어줄 필요가없겠지.

SELECT student_seq.nextval FROM dual;
INSERT INTO STUDENT VALUES (student_seq.nextval, '한조', 30, 90, null); --> 직접 null

**2. Delete --> 조건필요!!! primary key로 삭제하는게 일반적이겠지.

SELECT * FROM STUDENT;

DELETE FROM STUDENT; --> 이런식이면 테이블 전체가 날아간다구... 초기화는 DROP으로~

DELETE FROM STUDENT WHERE id = 10;

**3. Update --> 조건필요!!! primary key로 수정하는게 일반적이겠지.

SELECT * FROM STUDENT;

UPDATE STUDENT SET name = '안녕', age = 25; --> table전체가 안녕, 25로 바뀐다구...

UPDATE STUDENT SET name = '반가워', age = 75 WHERE id in (6, 7); 
--> 가능은하나, 위처럼 정확한 값을 업데이트하는게 일반적

UPDATE STUDENT SET name = '하이', age = 50 WHERE id = 6;

'DataBase(SQL) > DAY 27 _ 23.09.25' 카테고리의 다른 글

View  (0) 2023.09.25
DDL  (0) 2023.09.25