IT/Database

데이터 입력, 수정, 삭제

iamhyeon 2024. 10. 7. 12:35

< 입력 INSERT >

INSERT INTO 테이블이름 VALUES (값, 값, ..., 값);

- 값을 나열할 때는 테이블 구조에서 정의하고 있는 컬럼의 순서에 맞게 명시해야 한다
- DESC 테이블이름;  으로 테이블 정의 확인 가능

INSERT INTO 테이블이름 (컬럼, 컬럼, ..., 컬럼) VALUES (값, 값, ..., 값);

- 나열되는 컬럼의 이름이 테이블 구조에서 정의하고 있는 컬럼순서와 일치할 필요 없다

insert into student (
    studno, name, userid, grade, idnum, birthdate, tel, height, weight, deptno, profno
) values (
    10111, '둘리', 'dolly', 2, '8202021234765', '2011-10-01 11:42:30', '02)-123-2345', 170, 70, 101, 9903
);

 

 

< 입력 INSERT - NULL >

mysql> DESC DEPARTMENT;
+--------+--------------+------+-----+---------+----------------+
| Field  | Type         | Null | Key | Default | Extra          |
+--------+--------------+------+-----+---------+----------------+
| deptno | int          | NO   | PRI | NULL    | auto_increment |
| dname  | varchar(100) | NO   |     | NULL    |                |
| loc    | varchar(100) | YES  |     | NULL    |                |
+--------+--------------+------+-----+---------+----------------+

▲ 

Null  :  YES Null 값 허용 미필수 입력 항목
Null  :  NO Null 값 허용X 필수 입력 항목


- 암묵적인 방법 : 해당 컬럼의 이름과 값 생략
- 명시적인 방법 : 컬럼값에 NULL 사용

 

 

< 입력 INSERT - 날짜 데이터 >

 

- 'YYYY-MM-DD HH:MI:SS'   or   'YYYY-MM-DD' 형식

 

- now()  :  현재 날짜 

 

 

< 입력 INSERT- 중복 데이터 방지 >

 

- 각 데이터는 중복되지 않기 위한 최소한의 제약 요구

- 기본키(Primary Key)   :  테이블의 각 행을 고유하게 식별하는 값을 가진 열(또는 열 조합)
- 테이블의 컬럼에 기본키(PK) 옵션을 지정해 중복 데이터 입력을 방지할 수 있다
- 기본키로 설정된 컬럼은 고유한 값만 저장해야 하기 때문에 다른 행과 중복된 값을 저장할 수 없도록 제약된다
AUTO_INCREMENT 옵션 사용해 시스템에서 자동으로 일련번호 생성하도록 할 수 있다
- primary key 속성이 설정된 컬럼에 저장되는 값이 중복될 경우 에러 발생
- 기본키 제약조건 [ 무결성 제약조건 ] [ 개체무결성 제약조건 ]  :  특정 컬럼을 Primary Key로 설정하면 중복 데이터 저장에 대한 제약이 설정된다
- 데이터 무결성  :  데이터가 중복지 않는다는 특성

 

- 해당 컬럼 명시하지 않아도 자동으로 기존의 값들 중 가장 큰 값보다 1 큰값이 저장되어, 데이터 교유성을 유지하게 된다


< 수정 UPDATE>

UPDATE 테이블이름 SET 컬럼=값, 컬럼=값, ... WHERE 검색조건;

 

update professor 
set position = '조교수', sal = 200  
where profno = 9903;

- where절 사용하지 않는 update
=> 모든 데이터가 같은 값으로 수정된다


< 삭제 DELETE >

DELETE FROM 테이블이름 WHERE 검색조건;
delete from student where studno = 20103;

- where절 사용하지 않는 delete 구문
=> 모든 데이터가 삭제된다


< 함수 사용 >

 

ex )
20101 학번 학생의 생년월일을 현재 시각으로 변경

update student set birthdate = now() where studno = 20101;

 

반응형

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

MySQL Database 구축하기  (1) 2024.11.18
MySQL 데이터베이스 관리  (3) 2024.11.13
트랜잭션 Transaction  (1) 2024.10.08
SubQuery  (0) 2024.10.07
Database  (0) 2024.10.02