#1. 입력, 수정, 삭제
1. 데이터 입력
1) INSERT
- 테이블에 데이터를 추가하기 위한 구문
INSERT INTO 테이블이름 VALUES (값1, 값2, 값n);
- 값을 명시하는 방법
- 숫자형식의 데이터는 홑따옴표를 사용하지 않는다.
- 그 밖의 형식(문자열, 날짜형식) 값은 홑따옴표로 감싼다.
- 값을 나열할 때는 테이블 구조에서 정의하고 있는 컬럼의 순서에 맞게 명시해야 한다.
- "DESC 테이블이름;"의 구문으로 테이블 정의를 확인할 수 있다.
2) 학생 테이블에 아래 정보로 새로운 데이터 추가하기
학번 | 10110 | 이름 | 홍길동 |
아이디 | hkd85 | 학년 | 1 |
주민번호 | 8501011111111 | 생년월일 | 2013-10-01 11:42:30 |
전화번호 | 055)-777-777 | 키 | 170 |
몸무게 | 70 | 학과번호 | 101 |
담당교수번호 | 9903 |
3) 컬럼명을 명시한 데이터 저장
INSERT INTO 테이블이름 (컬럼1, 컬럼2, 컬럼n)
VALUES (값1, 값2, 값n);
- 나열되는 컬럼의 이름이 테이블 구조에서 정의하고 있는 컬럼순서와 일치할 필요는 없다.
- 테이블 이름 뒤에 명시되는 컬럼의 순서나 갯수는 VALUES 뒤에 나열되는 값과 일치해야 한다.
학번 | 10111 | 이름 | 둘리 |
아이디 | dolly | 학년 | 2 |
주민번호 | 9001011111111 | 생년월일 | 2011-10-01 11:42:30 |
전화번호 | 02)-111-2222 | 키 | 140 |
몸무게 | 55 | 학과번호 | 101 |
담당교수번호 | 9903 |
4) NULL 데이터 저장
- NULL 데이터 저장 가능 여부 확인
- DESC 구문을 사용하여 테이블 구조를 조회했을 때 NULL 항목에 YES 라고 표시되는 컬럼은 NULL값을 허용한다.
- 즉, 아래의 테이블 구조에서 deptno, dname은 필수 입력항목이고, loc는 미필수 입력 항목이 된다.
- NULL 데이터를 입력하기 위한 암묵적인 방법
- INSERT INTO 절에서 해당 칼럼의 이름과 값을 생략한다.
- NULL 데이터를 입력하기 위한 명시적인 방법
- VALUES 절의 칼럼값에 NULL을 사용한다.
5) 날짜 데이터 입력하기
- 날짜 데이터 입력 방법 1
- 칼럼에 날짜를 입력하려면 'YYYY-MM-DD HH:MI:SS' 혹은 'YYYY-MM-DD' 혁시에 따른 날짜 데이터를 입력하여야 한다.
교수번호 | 9920 | 이름 | 고길동 |
아이디 | gilldong | 직급 | 교수 |
급여 | 450 | 입사일 | 2014년 01월 01일 |
학과 | 102번 학과 |
- 날짜 데이터 입력 방법 2
- 자동으로 현재 날짜로 입력하기 위해서는 NOW( ) 함수를 사용한다.
교수번호 | 9921 | 이름 | 희동 |
아이디 | heedong | 직급 | 교수 |
급여 | 550 | 입사일 | 오늘 |
보직수당 | 미정 | 학과 | 201번 학과 |
6) 중복 데이터 방지하기
- 테이블에 중복되는 데이터가 저장되어 있다면 하나를 뺀 나머지 데티어들은 불필요한 값으로 시스템의 자원을 낭비하게 된다.
- 그렇기 때문에 각 데이터는 중복 되지 않기 위한 최소한의 제약을 요구한다.
- ex) 한 학급 안에서 학생 이름이 같은 경우 출석 번호로 학생을 구분
- 이를 위해 테이블의 각 행을 고유하게 식별하는 값을 가진 열(또는 열 조합)을 기본키(Promary key)라고 한다.
- 기본키(Primary key)
- 데이터베이스 테이블의 컬럼에 기본키 옵션을 지정하여 중복 데이터의 입력을 방지할 수 있다.
- 기본키로 설정된 컬럼은 각 데이터 행의 구분을 위해 고유한 값만을 저장해야 하기 때문에 다른 행과 중복된 값을 저장할 수 없도록 제약 된다.
- 기본키는 일반적으로 일련번호의 개념으로 사용되는데, 데이터를 저장할 때 마다 중복되지 않는 일련번호를 계산하기 어려우므로 AUTO_INCREMENT 옵션을 사용하여 데이터 저장시 시스템에서 자동으로 일련번호를 생성하도록 할 수 있다.
- PRIMARY KEY 속성이 설정된 컬럼에 저장되는 값이 기존에 저장된 데이터와 중복될 경우 에러가 발생한다.
- 위와 같이 테이블을 생성하면서 특정 컬럼을 Primary Key로 설정하면 중복 데이터 저장에 대한 제약이 발생하는데, 이를 기본키 제약조건 이라 한다.
- 데이터가 중복되지 않는다는 특성을 무결성 이라고 한다.
- 그러므로 기본키 제약 조건을 다른 말로 데이터 무결성 제약 조건 이라고 한다.
7) 기본키에 대한 자동 증가 일련번호 속성 사용
- Primary Key에는 AUTO_INCREMENT 속성을 추가할 수 있다.
- 이 속성이 설정된 경우, INSERT 절에서 해당 컬럼을 명시하지 않아도 자동으로 기존의 값들 중 가장 큰 값보다 1 큰 값이 저장되어, 데이터의 고유성을 유지하게 된다.
2. 데이터 수정
1) UPDATE
- 데이터 수정을 위한 UPDATE 절
UPDATE 테이블이름 SET 컬럼1=값1, 컬림2=값2, 컬럼n=값n
[WHERE 검색조건];
2) 예제
- 교수번호가 9903번인 교수의 직급을 '조교수'로, 급여는 200만원으로 수정하시오.
↓
↓
※ WHERE 절을 사용하지 않을 경우, 모든 데이터가 같은 값으로 수정되기 때문에 사용에 주의해야 한다.
3. 데이터 삭제
1) DELETE
- 데이터 삭제를 위한 DELETE 절
DELETE FROM 테이블이름
[WHERE 검색조건];
2) 예제
- 학생번호가 20103번인 학생의 데이터를 삭제하시오.
↓
↓
※ WHERE 절을 사용하지 않을 경우, 모든 데이터가 삭제되기 때문에 사용에 주의해야 한다.
4. 함수의 사용
1) 함수의 사용 방법
- 데이터 입력 시, 저장할 값을 함수를 사용하여 명시한다.
INSERT INTO 테이블이름
VALUES (함수이름(값), 함수이름(값)...);
- 데이터 수정 시, 수정될 값에 함수를 적용할 수 있다.
UPDATE 테이블이름
SET 컬럼이름 = 함수이름(값), 컬럼이름 = 함수이름(값)
WHERE 함수가 적용된 검색조건
- 데이터 삭제 시, 삭제될 대상을 지정하는 WHERE 절에서 사용할 수 있다.
DELETE FROM 테이블이름
WHERE 함수가 적용된 검색 조건
2) 예제
- 학번이 20101번인 학생의 생년월일을 현재 시각으로 변경하기
↓
↓
※ 연습문제
1. 다음의 학과를 신설하기 위한 데이터를 입력하고 결과를 조회하시오.
학과번호 | 103 | 학과이름 | 인터넷정보과 |
위치 | 공학관 |
2. 공학관에 위치한 학과의 위치를 '5호관'으로 수정하시오.
3. 학과번호가 300번 이상인 학과를 삭제하시오.
'국비수업 > MySQL' 카테고리의 다른 글
[MySQL] ERD (0) | 2022.06.22 |
---|---|
[MySQL] 데이터베이스 관리 (0) | 2022.06.21 |
[MySQL] 서브쿼리 (0) | 2022.06.13 |
[MySQL] 그룹 조회 / 조인(JOIN) (0) | 2022.06.10 |
[MySQL] SQL함수 (0) | 2022.06.09 |