데이터 조작
데이터 삽입
1. 완전한 행 삽입
이 방법은 코딩을 짧게 해도 된다는 장점이 있는 반면 데이터를 삽입하는 값의 순서가 변경될 경우 테이블이 망가질 수 있다는 위험이 있다
INSERT INTO 테이블명
VALUES (값1, 값2, 값3);
2. 열 이름과 함께 완전한 행 삽입
INSERT INTO 테이블명(열 이름1, 열 이름2, 열 이름3)
VALUES (값1, 값2, 값3);
3. 부분 행 삽입
INSERT INTO 테이블명(열 이름1, 열 이름3)
VALUES(값1, 값3);
4. SQL 문장 결과를 삽입
INSERT INTO 테이블명1(열 이름1, 열 이름2, 열 이름3)
SELECT 열 이름1, 열 이름2, 열 이름3 FROM 테이블명2 WHERE 조건절;
1. CUST_PARTY 테이블에 다음 값들을 삽입하려면?
SSN : 5508151111222
PARTY_NM : MJ YOO
CUST_ID : 8828
TEL_NO : 02-312-1111
MOBILE_NO : 010-1122-1111
INSERT INTO CUST_PARTY (SSN, PARTY_NM, CUST_ID, TEL_NO, MOBILE_NO)
VALUES('5508151111222', 'MJ YOO', '8828', '02-312-1111', '010-1122-1111');
열 이름을 지정했을 때 삽입하는 열의 순서가 바뀌어도 열 이름과 입력된 값이 대응하면 결과에 영향이 없다
데이터 삭제
1. 테이블의 모든 행 삭제
DELETE절을 사용할 때 WHERE 조건절을 사용하지 않으면 데이터 전체가 삭제될 수 있기 때문에 단독으로 DELETE절을 사용할 때는 주의해야 한다
DELETE FROM 테이블명;
2. 테이블의 부분 행 삭제
DELETE FROM 테이블명
WHERE 조건절;
1. CUST_PARTY 테이블에서 다음 값들을 삭제하려면?
SSN : 8911293333222
PARTY_NM : JH JUN
CUST_ID : 6989
TEL_NO : 031-224-2222
MOBILE_NO : 010-8888-9999
DELETE FROM CUST_PARTY
WHERE SSN IN ('8911293333222');
SQL에서는 실행한 내용을 취소할 수 있는 기능이 없다
=> DELETE문을 사용할 때 항상 주의를 기울여야함!
데이터 수정
1. 모든 행의 데이터 수정
UPDATE 테이블명
SET 열 이름=변경할 값;
2. 특정한 행의 데이터 수정
UPDATE 테이블명
SET 열 이름=변경할 값
WHERE 조건절
1. CUST_PARTY 테이블에서 주민등록번호가 9011034444111인 고객의 전화번호를 010-9988-5555로 수정하려면?
UPDATE CUST_PARTY
SET MOBILE_NO = '010-9988-5555'
WHERE SSN = '9011034444111';
테이블 조작
1. 일반적으로 테이블 생성하는 방법
DBMS에 따라 CREATE TABLE문이 다르기 때문에 각자 사용하는 DBMS 설명서를 참고하면 됨!
CREATE TABLE 생성할 테이블명
(
열 이름 데이터 형식 (크기) NOT NULL,
열 이름 CHAR (10) PRIMARY KEY,
열 이름 CHAR (10) NOT NULL,
REFERENCES 테이블1 (테이블1 고유키),
열 이름 INTEGER NOT NULL DEFAULT 1,
열 이름 VARCHAR (100) NULL,
);
DEFAULT 1은 만약 해당 열에 값을 지정하지 않는다면 자동으로 1이라고 저장됨
PRIMARY KEY 옵션은 기본 키를 설정할 때 사용됨
=> 기본 키는 테이블의 각 행을 고유하게 식별하기 위해 사용되는 것으로, 데이터 제어에 상당히 중요한 역할을 함
(기본 키는 테이블을 만들 때 지정하며 NULL값일 수 없고 고유해야 하며, 변경하거나 업데이트될 수 X)
REFERENCE 키워드는 해당 열 이름을 외래키로 저장하겠다는 의미이고 이 열 이름은 테이블1에 기본 키로 지정되어 있는 값을 나타낸다
ex. CUST_ID CHAR(4) NOT NULL REFERENCES CUSTOMERS(CUST_ID)
=> 현재 생성할 테이블의 CUST_ID는 반드시 CUSTOMERS 테이블에 있는 값이어야 함을 의미함
2. 하위 쿼리에 의해 검색된 테이블과 동일한 구조로 테이블 생성
만약 테이블 전체를 복사하고 싶다면 SELECT절 뒤에 와일드카드(*)를 사용하면 됨
CREATE TABLE 생성할 테이블명 AS
SELECT 열 이름1, 열 이름2 FROM 복사할 테이블명;
CHAR 타입과 VARCHAR 타입의 차이는
CHAR (5) 와 VARCHAR (5) 로 'ABC'를 생성했을 경우
CHAR는 A + B + C + ' ' + ' ' 로 5칸은 고정되고 ABC를 채워넣는 방식이고
VARCHAR 은 A + B + C 로 들어오는 데이터의 크기에 맞춰짐
테이블 변경 및 삭제
1. 테이블 변경 (열을 추가할 때)
ex. ALTER TABLE CUSTOMERS ADD HOBBY CHAR(20)
ALTER TABLE 수정할 테이블명
ADD (추가할 열 이름데이터 형식(크기));
2. 테이블 변경 (데이터 구조를 변경할 때)
ALTER TABLE 수정할 테이블명
MODIFY (변경할 열 이름 변경할 데이터 형식(크기));
3. 테이블명 변경
RENAME 변경 전 테이블명 TO 변경 후 테이블명;
4. 테이블 삭제
DROP TABLE 삭제할 테이블명;
1. 데이터가 포함된 테이블의 구조는 변경하지 않는 것이 좋음
=> 테이블을 만들 때 충분한 검토를 했고 그 안에 이미 데이터가 축적되어 있기 때문에 데이터 형식이 변경되면
기존 데이터에 영향을 미쳐 데이터 손실로 이어질 수 있기 때문
2. ALTER TABLE문과 DROP TABLE문과 같이 데이터 자체에 큰 충격을 가할 수 있는 문장은 사용할 때 주의를 기울여야 하며 중요한 데이터는 모두 백업한 후에 실행하는 것이 좋음
'Database > SQL' 카테고리의 다른 글
하위 쿼리 (2) | 2024.02.29 |
---|---|
테이블 합치기 (1) | 2024.02.29 |
데이터의 그룹화, 필터링 (1) | 2024.02.27 |
SQL 함수 활용하기 (0) | 2024.02.26 |
SQL 기본 함수 배우기 (2) | 2024.02.26 |