'MySQL'에 해당되는 글 5건
- 2008/01/25 unix_timestamp()
- 2007/11/15 Mysql PRIMARY KEY CHAGNE
- 2007/11/13 MySql 명령어 (DB 및 TABLE 관련) (2)
- 2007/11/13 MySql Table Character Set Change
- 2007/11/13 MySql DML 문의 활용(query)
MySql 시간 함수
unix_timestamp()
select unix_timestamp();
select unix_timestamp('2008-01-25 :00:00:00');
다시 변환할때는
from_unixtime() 함수 사용
DB 및 TABLE 관련 명령어
//db 선택하기
mysql>use 데이타베이스명;
//데이블보기
mysql>show tables;
//특정 db 테이블 보기
mysql>show tables from 데이타베이스명;
//테이블 구조보기
mysql>show columns from 테이블명;
또는
mysql>desc 테이블명;
//인덱스 보기
mysql>show index from moja;
//키 보기
mysql>show keys from moja;
//데이터베이스의 설정상태 보기
mysql>show status;
//데이터베이스의 설정환경변수와 값보기
show variables;
//현재 데이터베이스에 연결된 프로세스들 보기
show processlist;
//테이블생성
create table moja (noint,name varchar(16),addr varchar(50),tel varchar(15));
//테이블 삭제
drop table 테이블 이름;
// 테이블 변경
//필드추가
alter table 테이블명 add 추가필드정보;
ex) alter table moja add etc varchar(255) not null default '';
한 테이블 열에서 특정 위치에 컬럼을 추가 하기 위해서는 FIRST 혹은 AFTER 컬럼 이름 을 사용한다. 기본적으로는 컬럼을 가장 마지막 부분에 추가 한다. 여러분은 또한 CHANGE나 MODIFY 기능들에서 FIRST 와 AFTER를 사용할 수 있다.
alter table moja add etc2 varchr(255) not null default '' after name;
//필드삭제 삭제되면 포함된 인덱스에서도 삭제된다.
alter table 테이블명 drop 삭제할필드명;
ex) alter table moja drop etc;
//필드수정
(필드 이름바꾸며 타입수정)
ALTER TABLE t1 CHANGE a b INTEGER;
ex)alter table moja etc etc2 varchar(255);
//필드타입수정
ALTER TABLE t1 MODIFY b BIGINT NOT NULL;
alter table moja modify etc varchar(16);
//테이블 이름 수정 (테이블이름1->테이블이름2)
alter table 테이블이름1 rename 테이블이름2;
ex)alter table moja rename momo;
//인덱스추가
alter table 테이블이름 add [index_name] [index_type] (index_col_name,...)
alter table 테이블이름 add index i_no (no);
//인덱스삭제
alter table 테이블이름 drop index index이름;
//프라이머리키 삭제
alter table 테이블이름 drop primary key;
//외부키지우기
alter table 테이블명 DROP FOREIGN KEY fk_symbol;
//키 사용불가
alter table 테이블명 DISABLE KEYS;
//키 사용가능
my.ini 파일에서 환경설정을 바꿔줘야함
테이블 컬럼별로 Encoding set을 변경하려면 아래 처럼 변경해서 사용하면 된다.
alter table `[DB_NAME]`.`[TABLE_NAME]` ,change `USERID` `USERID` varchar (5) NOT NULL COLLATE euckr_korean_ci , change `USERNAME` `USERNAME` varchar (30) NULL COLLATE euckr_korean_ci , change `BIRTHDAY` `BIRTHDAY` varchar (12) NULL COLLATE euckr_korean_ci , change `TELEPHONE` `TELEPHONE` varchar (15) NULL COLLATE euckr_korean_ci , change `MOBILE` `MOBILE` varchar (15) NULL COLLATE euckr_korean_ci
▩ 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