-- 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 |