'dml'에 해당되는 글 1건

  1. 2007/11/13 MySql DML 문의 활용(query)
2007/11/13 13:29

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 |
+------------------+

크리에이티브 커먼즈 라이선스
Creative Commons License
Trackback 0 Comment 0