[DataBase] Record CRUD 기초 sql
이것만 하면 기본 sql문은 끝이다. 이번에는 record(데이터베이스 행)을 조작하는 방법이다. 이것또한 CRUD로 표현할 것이다.
학생 TABLE을 만들었다는 가정하에 데이터를 추가하고 검색하고 바꾸고 삭제하는 것을 시도해보겠다.
CREATE TABLE STUDENT(
ID INT NOT NULL AUTO_INCREMENT,
NAME VARCHAR(10) NOT NULL,
CLASS INT NOT NULL,
MAJOR VARCHAR(10) NOT NULL,
PRIMARY KEY(ID)
)
CRUD
C create (INSERT)
1. 새로운 레코드(행)를 추가해보자
INSERT INTO STUDENT VALUES(1,'홍길동',1,'MATH')
insert into [테이블 이름] values(컬럼 명에 맞춰서 값을 넣음)
2. 특정 행만 레코드 추가해보기 (AUTO_INCREMTN 이기때문에 자동으로 값이 들어가 굳이 값을 넣어주지 않아도 됨)
INSERT INTO STUDENT(NAME,CLASS, MAJOR) VALUES('홍길동1',2,'COMPUTER')
insert into (컬럼명, 컬럼명, 컬럼명) values (값,값,값);
C creat
R read (SELECT)
1. 테이블에 전체 데이터를 가지고 오기
SELECT * FROM STUDENT
select * from [테이블 이름]
2. 테이블의 특정 컬럼만 가지고 오기
SELECT Name FROM STUDENT; (특정 컬럼 한개)
SELECT NAME,MAJOR FROM STUDENT;(특정 컬럼 여러개 지금은 2개만 )
select [컬럼명,[컬럼명],... ] from student
3. 데이터를 조건을 가지고 오기(where)
where [조건] & like 구문
- select * from student where id=3 => 아이디컬럼에서 값이 3인경우
- select * from student where name like "홍%" => 이름컬럼에서 앞자리가 홍인 경우
- select * from student where name like "%홍%" => 이름 컬럼에서 홍이 들어간 경우
where 구문은 조건문으로 or와 and 구문도 같이 사용할 수 있다.
ex) 학생 class가 1반이면서 전공이 수학인 경우
select * from student where class=1 and major ="MATH";
4. 정렬해서 데이터 가지고 오기(order by)
정렬방법 (오름차순 ASC) (내림차순 DESC) asc ->ascending desc ->descending을 의미한다.
SELECT * FROM STUDENT ORDER BY NAME DESC;
SELECT * FROM STUDENT ORDER BY NAME ASC;
5. 갯수를 제한하자 (limit)
SELECT * FROM STUDENT LIMIT 1; (1개 레코드만 가지고 와)
6. 혼종
WHERE, ORDER BY LIMIT을 모두 같이 사용할 수 있다.
SELELCT * FROM STUDENT WHERE CLASS=1 ORDER BY DESC LIMIT 3;
U update (UPDATE)
UPDATE STUDENT SET NAME="홍길순" WHERE ID=1;
update [테이블 이름] set [컬럼명]=[바꿀 내용] where [조건];
※ 주위 update는 where 구문과 꼭 같이 써야한다. 오류가 난다...
D DELETE (DELETE)
DELETE FROM STUDENT WHERE ID=1;
DELETE FROM [테이블 명] WHERE [조건];
※ 주위 delete는 where 구문과 꼭 같이 써야한다. 오류는 나지 않지만 그러면 모든 데이터가 다 사라진다.
패턴
insert into [테이블 이름] values(컬럼 명에 맞춰서 값을 넣음)
insert into (컬럼명, 컬럼명, 컬럼명) values (값,값,값);
select * from [테이블 이름]
select [컬럼명,[컬럼명],... ] from student
update [테이블 이름] set [컬럼명]=[바꿀 내용] where [조건];
DELETE FROM [테이블 명] WHERE 조건;