데이터 삽입하기
- 열 이름을 쓰는 순서가 중요하다.
- 코드
INSERT INTO tablename(열이름,열이름) VALUES(값,값);
or
INSERT INTO tablename(열이름,열이름)
VALUES(값,값);
- 예시
INSERT INTO cats(age, name)
VALUES(12, 'victoria');
→ 열 순서랑 상관없이, 내가 코드를 쓰는 순서만 지켜주면 된다.
⇒ 둘다 테이블에 오류 없이 잘들어감
INSERT INTO cats(name,age)
VALUES(12, 'HWI ');
=
INSERT INTO cats(age, name)
VALUES(17, 'HEE');
SELECT 초스피드 간단 소개
- 데이터가 잘 들어갔는지 확인하는 방법
SELECT * FROM tablename;
다중 INSERT
- 콤마와 괄호를 이용하여 여러개를 집어넣을 수 있다.
- 코드
INSERT INTO cats(name,age)
VALUES('P',2),
('B',4),
('J',7);
다중 INSERT 도전과제 (한번 해보세용! )
- people테이블을 생성하고
- first_name - 20글자
- last_name - 20글자
- age
- 사람 삽입하기 1명삽입해보고, 3명(한꺼번에)삽입해보기
풀이
CREATE TABLE people
(
first_name VARCHAR(20),
last_name VARCHAR(20),
age INT
);
INSERT INTO people(first_name, last_name, age)
VALUES ('Tina', 'Belcher', 13);
INSERT INTO people(age, last_name, first_name)
VALUES (42, 'Belcher', 'Bob');
INSERT INTO people(first_name, last_name, age)
VALUES('Linda', 'Belcher', 45)
,('Phillip', 'Frond', 38)
,('Calvin', 'Fischoeder', 70);
Mysql경고문 내용 파악하기
- 만약에 쿼리문을 날리고 아래와 같은 경고문이 나왔다면?
⇒ Query ok, 1 row affected, 1 warning
- 아래와 같은 코드를 통해서 확인 가능
SHOW WARNINGS;
- insert 할 때 warning에시
- 타입이 안맞을 때,
- 제한된 길이를 넘어선 길이를 table에 넣으려고 할 때
NULL 과 NOT_NULL
- NULL
- 기본적으로 값이 알려지지 않았다.
- SQL의 방식으로 이것이 무엇인지 알지 못하거나, 지정된 값이 없다는 의미
- 0을 의미하지 않는다.
- 테이블상에서 NULL ⇒ YES의미
- 알려지지 않은 값이 있어도 괜찮다.
- 예시
NULL : 없어도 된다는 의미
- name , age가 열로 있는 테이블에서 둘중 하나의 값만 테이블에 넣었을 경우
- age값을 넣지 않음
INSERT INTO cats(name)
VALUES('Moon');
NULL값 들어오는 것을 방지하기 : NOT NULL
- 빈상태를 허용하지 않겠다. (NULL값을 받지 않겠다.)
- 만약에 insert할 때 NOT NULL값을 안채워서 보내면?
- 기본값이 들어간다 (Default = 0)
- warning메시지 나온다.
- 코드
CREATE TABLES cats
(
name VARCHAR(100) **NOT NULL,**
age INT **NOT NULL**
);
기본값 설정하기
- 테이블을 만들 때 기본값을 설정하여, NULL값이 들어온 경우 처리해준다.
- 코드
CREATE TABLE cats3(
name VARCHAR(20) DEFAULT 'no name provided',
age INT DEFAULT 99
);
- 실행코드
NOT NULL + DEFAULT (기본값 설정)
- NOT NULL : 무언가가 값을 가지고 있다고 요구하는 방식일 뿐만 아니라, NULL값을 허용하지 않는다고 명시적으로 말할 수 있다.
- NOT NULL의 경우 수동으로 NULL을 삽입할 수 없다.
CREATE TABLE cats4
(
name VARCHAR(100) **NOT NULL DEFAULT 'unnamed',**
age INT NOT NULL DEFAULT 99
);
기본키 입문
- 키가 의미하는 것은 무엇일까?
동일한 데이터를 테이블에 삽입 할 경우, 이들을 구분할 값이 필요하다.
- 모든 데이터가 고유하게 식별돼야한다.
- ID 할당을 통해서 사용 가능
- 예제
- CREATE TABLE unique_cats ( cat_id INT NOT NULL, name VARCHAR(100), age INT, **PRIMARY KEY (cat_id)** );
- ⇒ 좋은 방법 아님
- insert
- INSERT INTO unique_cats( **cat_id** , name, age) VALUES(2, "Louis",3);
좀 더 쉬운 방법으로 키 설정하기
→ AUTO_INCREMENT
- 알아서 cat_id를 설정해준다.
CREATE TABLE unique_cats2 (
cat_id INT NOT NULL **AUTO_INCREMENT**
name VARCHAR(100),
age INT,
**PRIMARY KEY (cat_id)**
);
- insert예시
- 자동으로 id가 설정된다.
INSERT INTO unique_cats2(name,age) VALUES("skippy",4);
- 자동으로 key값이 정의됨
'Back-End > DataBase [ MySQL]' 카테고리의 다른 글
[MySql] 선택사항 정교화하기 _DISTINCT, ORDER BY, LIMIT, LIKE (0) | 2022.06.25 |
---|---|
[MySql] 문자열함수 _ CONCAT, SUBSTR, REPLACE, REVERSE, CHAR_LENGTH , UPPER, LOWER (0) | 2022.06.25 |
[MySql] CRUD명령 _Create, Read , Update, Delete (0) | 2022.06.21 |
[MySql] 데이터베이스와 테이블 만들기 (0) | 2022.06.16 |
DataBase, MySql개요 (0) | 2022.06.16 |
댓글