테이블에 데이터 저장하기
-- 기본 문구 모양
-- INSER INTO 테이블명(컬럼명1, 컬럼명2, ..) VALUES (값1, 값2);
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | -- TABLE 삭제를 하고 주석처리를 해주는 것이 좋다. -- DROP TABLE student; -- DROP TABLE subject; -- DROP table product; CREATE TABLE student( student_id INT PRIMARY KEY, name VARCHAR(50) NOT NULL, grade INT NOT NULL, major VARCHAR(50) ); INSERT INTO student(student_id, name, grade, major) VALUES (1, '홍길동', 3, '컴퓨터공학과'); INSERT INTO student(student_id, name, grade, major) VALUES (2, '김철수', 4, '전자공학과'); INSERT INTO student(student_id, name, grade, major) VALUES (3, '이영희', 2, '경영학과'); INSERT INTO student(student_id, name, grade, major) VALUE (4, '티모', 1, '롤학과'); select * from student; -- 테이블에 데이터를 삭제하는 명령어 사용해보기 DELETE FROM student; -- 테이블 안에 있는 데이터만 삭제하는 명령어이다. -- 복수형으로 insert 쿼리문 작성하기 INSERT INTO student(student_id, name, grade, major) VALUES (1001, '김철수', 2, '컴퓨터공학과'), (1002, '이영희', 3, '수학과'), (1003, '박민수', 1, '전자공학과'); -- insert 구문에서 복수행 쿼리를 실행할 때 하나라도 오류가 있으면 -- 데이터는 정상 저장되지 않는다. (PRIMARY KEY가 같음) INSERT INTO student(student_id, name, grade, major) VALUES (1007, '김철수3', 2, '컴퓨터공학과'), (1008, '이영희3', 3, '수학과'), (1008, '박민수3', 1, '전자공학과'); SELECT * FROM student; | cs |
→ 테이블에 데이터를 입력할 때 VALUES라는 구문으로 데이터를 입력한다. (VALUES는 복수형, VALUE는 단수형이므로 여러 개의 레코드를 삽입하는 경우에는 VALUES를 쓰는 게 자연스럽다.)
→ DELETE FROM 테이블명 을 사용하여 테이블 안에 있는 데이터만 삭제할 수 있다.
<결과 화면>
테이블 제약 사항 변경하는 방법과 예외 상황
: 테이블 안에 컬럼에 변경하려는 제약 사항과 맞지 않다면 처리하고 진행해야 한다.
ALTER TABLE 테이블명 MODIFY 컬럼명 변경사항
ALTER TABLE student MODIFY grade INT NULL;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | -- 이미 생성된 테이블 제약 사항 변경하기 ALTER TABLE student MODIFY grade INT NULL; DESC student; INSERT INTO student(student_id, name, major) VALUES(1, '홍길동', '검술학과'); -- grade 제약을 NOT NULL 변경 해보기 -- 테이블 값이 하나 들어가 있는 상태 ALTER TABLE student MODIFY grade INT NOT NULL; SELECT * FROM student; -- 하나 행을 삭제하는 쿼리 - WHERE절 (조건절) DELETE FROM student WHERE student_id = 1; -- major 컬럼 제약을 NOT NULL로 변경하기 ALTER TABLE student MODIFY major VARCHAR(50) NOT NULL; -- 컬럼 선언 부분을 생략도 가능하다. 단 전부 값을 넣을려고 하는 상활일 때 INSERT INTO student values(2, '홍길동2', 3, '검술학과'); SELECT * FROM student | cs |
→ INSERT 구문 컬럼명 선언 방식
1. 전부 작성하는 방법
2. 제약 사항이 NULL인 열이 있다면 넣고 싶은 열만 지정해서 구문을 작성할 수 있다.
3. 전부 데이터를 넣는 상황이라면 컬럼 선언부분을 생략 가능하다.
NOT NULL과 DEFAULT값 사용
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | -- NOT NULL과 디폴트값 사용 DROP TABLE student; CREATE TABLE student( student_id INT PRIMARY KEY, name VARCHAR(50) NOT NULL, grade INT NOT NULL, major VARCHAR(50) DEFAULT '미정' NOT NULL ); DESC student; -- 디폴트 제약을 사용했을 때 값을 넣은 방법 1 INSERT INTO student(student_id, name, grade, major) VALUES (1, 'John', 3, '경영학과'), (2, 'Jane', 2, '경영학과'), (3, 'Mike', 1, DEFAULT), (4, 'David', 2, DEFAULT); SELECT * FROM student; -- 디폴트 제약을 사용했을 때 값을 넣은 방법 2 INSERT INTO student(student_id, name, grade) VALUES (5, '홍길동1', 2), (6, '홍길동2', 3), (7, '홍길동3', 1), (8, '홍길동4', 3); | cs |
→ major 컬럼에 DEFAULT 제약 조건을 추가하였고 NOT NULL 제약 조건을 계속 유지한다. 이렇게 설정하면 major 컬럼이 NULL인 경우 ‘미정’이라는 값으로 입력된다. ‘미정’ 대신 다르게 정의하여 값을 설정할 수 있다.
<결과 화면>
디폴트 제약을 사용했을 때 값을 넣은 방법1
디폴트 제약을 사용했을 때 값을 넣은 방법2
AUTO_INCREMENT 란 ?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | -- AUTO_INCREMENT 사용하기 -- 고객 테이블 생성 CREATE TABLE customer( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50) NOT NULL, email VARCHAR(50), address VARCHAR(100) NOT NULL ); INSERT INTO customer(name, email, address) VALUES ('김철수', 'A@naver.com', '서울시 강남구 역삼동'), ('박영희', 'B@naver.com', '서울시 강동구 천호동'), ('김철수', 'A@naver.com', '서울시 강남구 역삼동'); SELECT * FROM customer; | cs |
MySQL과 같은 데이터베이스 시스템에서 자동으로 순차적인 번호를 생성해주는 기능이다.
일반적으로 테이블에서 기본키(PRIMARY KEY)를 지정할 때 사용한다.
즉, 새로운 레코드를 삽입할 때마다 기본키 값이 자동으로 증가하며 중복된 값이 입력되지 않도록 보장한다.
<결과 화면>
'프로그래밍 > Database' 카테고리의 다른 글
MySQL_preparedstatement LIKE 쓰는 법 (0) | 2023.03.10 |
---|---|
MySQL_관계 차수 1 : N 차수, 1 : 1 차수 (0) | 2023.03.08 |
MySQL_UPDATE 구문과 WHERE 조건절, UNIQUE 제약 (0) | 2023.03.08 |
MySQL_테이블 생성과 제약 사항 (0) | 2023.03.06 |
MySQL_데이터베이스 (0) | 2023.03.06 |