취미가 좋다
[3] DB CRUD 본문
1. Use Database & Create Table & DataType
use {데이터베이스 이름}
create table {테이블 이름}
(
column_name datatype [제약조건],
column_name datatype [제약조건]
...
)
테이블과 행을 생성한다.
use 대신, DBMS 연결 시 데이터베이스 설정을 하는 것이 더 편하다.
- DBMS에 오른쪽 마우스, Edit Connetction
- Database 입력 및 저장
테이블 이름을 정하는 규칙
규칙 | 좋은 예 | 나쁜 예 |
단수형 단어를 사용한다. | user, role | users , roles |
_ 로 구분한다. | user_has_role | |
소문자를 사용한다. | user_has_role | User_has_role |
datatype
타입 | 종류 |
숫자 | INT, DOUBLE, BOOLEAN... |
문자열 | VARCHAR, TEXT, ENUM... |
날짜, 시간 | DATE, DATETIME... |
CREATE TABLE student
(
number INT,
name VARCHAR(30),
age INT,
class INT,
height FLOAT
);
VARCHAR는 초기 최대 길이를 설정해야한다.
2. INSERT & SELECT
INSERT INTO 테이블이름 (필드이름1, 필드이름2, 필드이름3, ...)
VALUES (데이터값1, 데이터값2, 데이터값3, ...)
INSERT INTO student(number, name, age, class, height)
VALUES (1, "스판이", 17, 1, 173.5);
INSERT INTO student
VALUES (1, "스판이", 17, 1, 173.5);
테이블에 데이터를 넣는다.
필드이름들을 생략 가능하고, 순서에 맞게 저장된다.
모든 필드의 값을 채우지 않아도 된다.
SELECT number, name, age, class, height FROM student;
SELECT * from student;
SELECT * FROM student WHERE number = 1;
테이블에 있는 데이터를 가져온다.
뒤에 조건에 맞는 데이터를 가져올 수도 있다.
3. Constraint
데이터의 무결성(데이터의 정확성, 일관성, 유효성)을 지키기 위해, 데이터를 입력받을 때 실행되는 검사 규칙
CREATE 문으로 테이블을 생성할 때나 ALTER 문으로 필드를 추가할 때도 설정할 수도 있다.
3.1 NOT NULL
해당 필드는 NULL 값을 저장할 수 없다.
3.2 UNIQUE
해당 필드는 서로 다른 값을 가져야 한다.
3.3 PRIMARY KEY
NOT NULL과 UNIQUE 제약 조건의 특징을 모두 가진다.
NULL 값을 가질 수 없으며, 또한 중복된 값을 가져서도 안 된다.
3.4 FOREIGN KEY
한 테이블을 다른 테이블과 연결해주는 역할을 한다.
외래 키가 설정된 테이블에 레코드를 입력하면, 기준이 되는 테이블의 내용을 참조해서 레코드가 입력된다.
3.5 DEFAULT
해당 필드의 기본값을 설정할 수 있게 한다.
4. Alter Table
4.1 ADD
ALTER TABLE 테이블이름 ADD 필드이름 필드타입
ALTER TABLE student
ADD is_graduated BOOLEAN DEFAULT false;
테이블에 데이터를 추가
ALTER TABLE student ADD id INT PRIMARY KEY AUTO_INCREMENT;
PRIMARY KEY 추가
4.2 DROP
ALTER TABLE 테이블이름 DROP 필드이름
ALTER TABLE student DROP number;
테이블의 필드를 삭제
4.3 MODIFY COLUMN
ALTER TABLE 테이블이름 MODIFY COLUMN 필드이름 필드타입
ALTER TABLE student MODIFY name VARCHAR(30) NOT NULL;
테이블의 필드 타입을 변경하거나 제약 조건을 추가
5. Update & Delete
5.1 UPDATE
UPDATE 테이블이름
SET 필드이름1=데이터값1, 필드이름2=데이터값2, ...
[WHERE 필드이름=데이터값]
UPDATE student SET age = 18 WHERE name = '르탄이';
UPDATE student SET age = age + 1;
레코드의 내용을 수정
연산자(operator)를 사용할 수도 있다. (원자적 연산, 병렬 프로그래밍)
5.2 DELETE
DELETE FROM 테이블이름 WHERE 필드이름=데이터값
DELETE FROM student WHERE name = '르탄이';
레코드를 제거
5.3 DROP
DROP TABLE student;
테이블을 제거
'Sparta Coding Club > Database & SQL' 카테고리의 다른 글
[6] Transaction (0) | 2021.08.11 |
---|---|
[5] Select 확장 (0) | 2021.08.11 |
[4] DB 연관 관계 (0) | 2021.08.11 |
[2] Database 기초 & 용어 (0) | 2021.08.11 |
[1] Database 개념 & 종류 (0) | 2021.08.11 |
Comments