🌏 DataBase/MySQL

[DB] 6. 기본 문법(INSERT/UPDATE/DELETE/SELECT)

ryang x2 2020. 10. 11. 21:14
728x90
반응형

● 데이터 삽입(INSERT) 

1. INSERT INTO 테이블명 VALUES ('값1', '값2', '값3'...)

-VALUES 뒤에 있는 필드와 실제 테이블의 필드 개수가 일치해야합니다.
AUTO_INCREMENT(자동증감형태) 로 예시에는 적용할 수 없다.

 

2. INSERT INTO 테이블명 (필드명1, 필드명2, 필드명3 ...) VALUES ('값1', '값2', '값3'...)

-테이블명 뒤에 있는 필드 개수와 순서를 VALUES 뒤에 있는 값과 일치시켜야 합니다. 
-NOT NULL로 설정되어있는 필드는 반드시 INSERT 해야합니다. 
-필드명은 변경원하는 것을 넣을수 있으며 값과 동일한 순서대로 넣으면 된다.

예)
INSERT INTO tb_member(mem_userid, mem_pass, mem_name, mem_email, mem_ssn, mem_birthday,
mem_gender, mem_hobby, mem_hp, mem_zipcode, mem_address1, mem_address2, mem_address3, 
mem_regdate) VALUES ('apple', PASSWORD('1111'), '김사과', 'apple@apple.com', '0010113068512', 
'20001011', '여자', '등산 게임', '010-1111-1111', '12345', '서울 강남구', '111-11', '현익빌딩3층',
'2020-07-01') 

예2) 
INSERT INTO tb_member(mem_userid, mem_pass, mem_name, mem_ssn, mem_birthday, mem_gender, 
mem_hobby, mem_zipcode, mem_address1, mem_address2, mem_address3) 
VALUES ('banana', PASSWORD('1234'), '반하나', '9907012068512', '19990701', '여자', '영화감상', 
'98765', '서울 서초구', '양재동', '1234-12')

 

● 데이터 수정(UPDATE) 

1. UPDATE 테이블명 SET 필드1=값1, 필드2=값2, ... (데이터한번에수정할때쓰는것)

예) 
UPDATE tb_member SET mem_point = 1000 


2. UPDATE 테이블명 SET 필드1=값1, 필드2=값2 ... *WHERE 조건절*

예) 
UPDATE tb_member SET mem_hp='010-8888-8888' WHERE mem_idx=2 
(상위예시를 쓸 경우 데이터 찾는 속도가 빨라진다.) 
UPDATE tb_member SET mem_hp='010-8888-8888' WHERE mem_userid='banana'

예)
*포인트 변경  
UPDATE tb_member SET mem_point = 1500 WHERE mem_idx=1; UPDATE tb_member SET mem_point = 1800 
WHERE mem_idx=2; UPDATE tb_member SET mem_point = 1200 WHERE mem_idx=3; 
UPDATE tb_member SET mem_point = 800 WHERE mem_idx=4; UPDATE tb_member SET mem_point = 2000 
WHERE mem_idx=5;

 

● 데이터 삭제(DELETE) 

1. DELETE FROM 테이블명 

- 전체 내용을 삭제한다. 


2. DELETE FROM 테이블명 WHERE 조건절  

- 조건에 해당하는 행만 삭제한다.(대부분 이것을 사용한다.)

예) 
DELETE FROM tb_member WHERE mem_idx = 5

 

● 데이터 검색(SELECT) 

1. SELECT 필드명1, 필드명2 ... FROM 테이블명 

예) 
SELECT * FROM tb_member -- ( '*'은 모든 컬럼을 뜻함 ) 
SELECT mem_idx, mem_userid, mem_name, mem_gender FROM tb_member
(원하는 컬럼을 기술해주는것을 권장.) 


2. SELECT 필드명1, 필드명2 ... FROM 테이블명 WHERE 조건절 

- SELECT mem_idx FROM tb_member WHERE mem_userid='입력한정보'AND mem_pass=PASSWORD('입력한정보')

예) 
SELECT mem_idx, mem_userid, mem_name, mem_gender, mem_hp FROM tb_member WHERE mem_idx=3

 

3. SELECT 필드명1, 필드명2 ... FROM 테이블명 order by 정렬할 필드명[ASC or DESC]
-ASC : 오름차순
-DESC : 내림차순 

예) 
SELECT mem_idx, mem_userid, mem_name, mem_point FROM tb_member order by mem_point DESC 

 

* 2차정렬 

포인트가 많은 순으로 정렬하여 출력합니다. 만약 포인트가 같을 경우 최근 가입순으로 출력합니다.( ,를 통해 2차정렬을 합니다.)

SELECT mem_idx, mem_userid, mem_name, mem_point FROM tb_member order by mem_point DESC, mem_idx DESC

 

 

예)
SELECT d.company_name, d.company_code, r.product_name, c.fund_name 
FROM INSURE_PRODUCTS AS r, INSURE_PRODUCT_FUND_RELATION AS c, INSURE_COMPANY as d 
WHERE r.product_code = c.product_code and d.company_code = r.company_code;

 

 

 

4. 그룹만들기

SELECT 필드명1(그룹을 맺은 필드명) or 집계함수(그룹함수) FROM 테이블명 group by 그룹을 맺어줄 필드명

*집계함수 
count() 그룹을 맺은 레코드의 수를 출력합니다.  
sum() 그룹을 맺은 필드의 값의 합계를 출력합니다. 
max()  그룹을 맺은 필드의 최대값을 출력합니다. 
min() 그룹을 맺은 필드의 최소값을 출력합니다.
avg() 그룹을 맺은 필드의 평균을 출력합니다.
예) 
SELECT mem_gender FROM tb_member group by mem_gender SELECT mem_gender, 
COUNT(mem_gender = mem_idx) FROM tb_member group by mem_gender SELECT mem_gender, 
COUNT(mem_gender), SUM(mem_point) FROM tb_member group by mem_gender SELECT mem_gender, 
COUNT(mem_idx) FROM tb_member WHERE mem_point >= 2000 GROUP BY mem_gender 
(조건을 주고 그룹을 맺음) SELECT mem_gender, COUNT(mem_idx) as cnt FROM tb_member
GROUP BY mem_gender HAVING cnt >= 3 (그룹을 맺고나서 조건을 준다.) 


*별명(자바에서 연동할 때 오류발생 방지)

SELECT mem_gender, COUNT(mem_gender) as cnt, SUM(mem_point) as sum FROM tb_member 
group by mem_gender 


5. limit (MySQL에만 있는 기능이다. 게시판 쓸 때 유용하다.)

SELECT 필드명1, 필드명2 .. FROM tb_member limit 행의 시작번호, 개수

예) 
SELECT mem_idx, mem_userid, mem_pass, mem_name FROM tb_member limit 0, 2
728x90
반응형