'dml'에 해당되는 글 1건
- 2007/11/13 MySql DML 문의 활용(query)
▩ DQL(Data Query Language)의 사용
1. DQL문 사용 1
ⓐ CREATE TABLE visitor (
number int not null auto_increment primary key,
title varchar (50) NULL ,
name varchar (20) NULL ,
email varchar (50) NULL ,
visited int NULL
);
ⓑ INSERT INTO visitor (title, name, email, visited)
VALUES('안녕하세요', '홍길순', 'webmaster@nulunggi.pe.kr', 0);
INSERT INTO visitor (title, name, email, visited)
VALUES('반갑습니다.','홍길동', 'hong@mail.co.kr', 0);
ⓒ 모든 레코드, 모든 컬럼을 출력합니다.
SELECT * FROM visitor;
+--------+-------------+--------+--------------------------+---------+
| number | title | name | email | visited |
+--------+-------------+--------+--------------------------+---------+
| 1 | 안녕하세요 | 홍길순 | webmaster@nulunggi.pe.kr | 0 |
| 2 | 반갑습니다. | 홍길동 | hong@mail.co.kr | 0 |
+--------+-------------+--------+--------------------------+---------+
ⓓ 홍길순만 출력합니다. 문자열은 양쪽에 Single Quotation Mark를 해줍니다.
SELECT * FROM visitor
WHERE name='홍길순';
+--------+------------+--------+--------------------------+---------+
| number | title | name | email | visited |
+--------+------------+--------+--------------------------+---------+
| 1 | 안녕하세요 | 홍길순 | webmaster@nulunggi.pe.kr | 0 |
+--------+------------+--------+--------------------------+---------+
ⓔ 이름이 홍길동인 사람을 '홍길자'로 변경합니다.
UPDATE visitor
SET name='홍길자'; #모든 레코드의 name 컬럼의 값이 '홍길자'로 변경됩니다. 주의!!!
UPDATE visitor
SET name='홍길자'
WHERE name='홍길동';
SELECT * FROM visitor;
ⓕ 이름이 '홍길자'인 사람을 삭제합니다.
DELETE FROM visitor; #모든 레코드가 삭제됩니다. 주의!!!
DELETE FROM visitor
WHERE name='홍길자';
SELECT * FROM visitor;
+--------+------------+--------+--------------------------+---------+
| number | title | name | email | visited |
+--------+------------+--------+--------------------------+---------+
| 1 | 안녕하세요 | 홍길순 | webmaster@nulunggi.pe.kr | 0 |
+--------+------------+--------+--------------------------+---------+
ⓖ SELECT (100+200+300)/3 AS '계산결과';
2. DQL문 사용2
CREATE TABLE product(
proNum int not null auto_increment primary key, #일련 번호
proClass1 varchar(22) NOT NULL, #상품분류
proClass2 varchar(10) NOT NULL, #국산/수입 구분(수입산, 국내산)
proArea varchar(10) NOT NULL, #원산지 구분(미국, 호주, 경기도, 강원도)
proName varchar(30) NOT NULL, #상품명
proNo char(6) NOT NULL, #상품 등록 번호
proSize varchar(50) NULL, #크기(4cm x 15cm 이상)
proService varchar(30) NULL, #증정품
proPrice int NULL, #상품가격
proOption varchar(4) NULL, #관리 옵션
proSpecial text NULL #상품 특징 설명
);
INSERT INTO product(proClass1, proClass2, proArea, proName, proNo, proSize, proService, proPrice, proOption, proSpecial)
VALUES('갈비', '국산', '경기도','양념갈비','A001','4CM X 15CM','동치미 1 대접',80000,null,'맛이 아주 좋습니다.');
INSERT INTO product(proClass1, proClass2, proArea, proName, proNo, proSize, proService, proPrice, proOption, proSpecial)
VALUES('갈비', '수입', '미국','LA갈비','A002','5CM X 15CM','동치미 2 대접',75000,'','최고 수입 고기');
INSERT INTO product(proClass1,proClass2,proArea,proName,proNo,proPrice,proSpecial)
VALUES('버섯','국산','강원도','표고 버섯','B001',50000,'비무장 지대 무공해 상품 입니다.');
INSERT INTO product(proClass1,proClass2,proArea,proName,proNo,proPrice,proSpecial)
VALUES('버섯','국산','경기도','표고 버섯','B002',50000,'비무장 지대 무공해 상품 입니다.');
INSERT INTO product(proClass1,proClass2,proArea,proName,proNo,proPrice,proSpecial)
VALUES('버섯','국산','강원도','느타리 버섯','B003',25000,'비무장 지대 무공해 상품 입니다.');
INSERT INTO product(proClass1,proClass2,proArea,proName,proNo,proPrice,proSpecial)
VALUES('버섯','국산','강원도','1느타리 버섯','B004',25000,'비무장 지대 무공해 상품 입니다.');
INSERT INTO product(proClass1,proClass2,proArea,proName,proNo,proPrice,proSpecial)
VALUES('배','국산','경기도','파주배','C001',25000,'비무장 지대 무공해 상품 입니다.');
INSERT INTO product(proClass1,proClass2,proArea,proName,proNo,proPrice,proSpecial)
VALUES('배','국산','경기도','파주배','C002',35000,'비무장 지대 무공해 상품 입니다.');
SELECT * FROM product;
3. SELECT를 이용한 검색
ⓐ 모든 컬럼, 모든 레코드를 보고 싶은 경우
SELECT * FROM product;
ⓑ 필요한 컬럼만 보고 싶은 경우
SELECT proNum, proClass1, proClass2, proArea, proName FROM product;
ⓒ 컬럼명을 변경하여 사용하고 싶은 경우(별명 붙이기, ALIAS Name)
- 한글 컬럼명은 사용되지 않습니다.
SELECT proNum As '번호', proClass1 As '상품 분류', proClass2 As '국산/수입', proArea As '원산지', proName As '상품명'
FROM product;
ⓓ 번호순 내림차순 정렬하여 보기, DESC:내림 차순, ASC:오름 차순
SELECT proNum, proName
FROM product
ORDER BY proNum DESC;
ⓔ 가격별 오름 차순 정렬
SELECT proNum, proName, proPrice
FROM product
ORDER BY proPrice ASC;
ⓕ 가격별 오름 차순, 상품명별 내림차순
SELECT proNum, proName, proPrice
FROM product
ORDER BY proPrice ASC, proName DESC;
ⓖ 문자의 정렬형태
- 정렬순서: 정렬순서 : 숫자 > 영어 > 한글
SELECT proNum, proName
FROM product
ORDER BY proName ASC;
SELECT proNum, proName
FROM product
ORDER BY proName DESC; # 정렬순서 : 한글 > 영어 > 숫자
ⓗ 경기도산 제품만 출력
SELECT proNum, proName, proArea
FROM product
WHERE proArea='경기도';
ⓘ 경기도나 미국산 제품 출력
SELECT proNum, proName, proArea
FROM product
WHERE proArea ='경기도' or proArea='미국';
SELECT proNum, proName, proArea
FROM product
WHERE proArea IN('경기도', '미국');
ⓙ 가격이 70,000원 이하인 상품 출력
SELECT proNum, proName, proPrice
FROM product
WHERE proPrice <= 70000;
ⓚ 상품의 가격이 40,000원에서 70,000원 사이인 상품 출력
SELECT proNum, proName, proPrice
FROM product
WHERE proPrice >= 40000 AND proPrice <= 70000;
SELECT proNum, proName, proPrice
FROM product
WHERE proPrice BETWEEN 40000 AND 70000;
ⓛ 상품명이 '버섯'과 정확히 일치하는 상품 출력
SELECT proNum, proName
FROM product
WHERE proName LIKE '버섯';
ⓜ 상품명중에 '버섯'이라는 단어가 들어간 상품 전부 출력
SELECT proNum, proName
FROM product
WHERE proName LIKE '%버섯%';
ⓝ 상품명이 '버섯'으로 끝나는 상품 출력
SELECT proNum, proName
FROM product
WHERE proName LIKE '%버섯';
ⓞ 상품명이 '버섯'으로 시작하는 상품 출력
SELECT proNum, proName
FROM product
WHERE proName LIKE '버섯%';
4. 함수의 이용
ⓐ
mysql> SELECT sum(proPrice) as '모든 상품의 합계' FROM product;
+------------------+
| 모든 상품의 합계 |
+------------------+
| 400000 |
+------------------+
ⓑ
mysql> SELECT avg(proPrice) as '모든 상품의 평균 가격' FROM product;
+------------------+
| 모든 상품의 합계 |
+------------------+
| 45625.0000 |
+------------------+
ⓒ
mysql> SELECT count(*) as '등록된 상품의 수' FROM product;
+------------------+
| 등록된 상품의 수 |
+------------------+
| 8 |
+------------------+

이올린에 북마크하기
Prev
Rss Feed