MySQL Reference v1.0 </doc>
leehun.dothome.co.kr
leehun.dothome.co.kr
MySQL은 데이터베이스 소프트웨어입니다. 일반적으로 데이터를 추가하거나 검색, 추출하는 기능을 모두 포함해서 데이터베이라고 부릅니다.
MySQL은 세계에서 가장 많이 쓰이는 오픈 소스의 관계형 데이터베이스 관리 시스템 (RDBMS)이다. MySQL은 PHP 스크립트 언어와 상호 연동이 잘 되면서 오픈소스로 개발된 무료 프로그램입니다. 그래서 홈페이지나 쇼핑몰(워드프레스,Cafe24,제로보드,그누보드) 등 일반적인 웹 개발에 널리 사용하고 있습니다.
MAMP 설치
테이블은 데이터베이스 내에 정보를 담는 역할을 합니다.
데이터형 | byte | 저장 가능 수 | 양의 정수 전환시 저장 가능 수 |
---|---|---|---|
tinying | 1byte | -128 ~ 127 | 0 ~ 255 |
smallint | 2byte | -32768 ~ 32767 | 0 ~ 65535 |
mediumunt | 3byte | -8388608 ~ 8388607 | 0 ~ 16777215 |
int 또는 integer | 4byte | -2147493648 ~ 2147493647 | 0 ~ 4294967295 |
bigint | 8byte | -9223372036854775858 ~ 9223372036854775857 | 0 ~ 18446744073709551615 |
데이터형 | 저장 가능 글자 수 |
---|---|
char | 255 |
verchar | 255 |
tinytext | 255 |
text | 65535 |
mediumtext | 16777215 |
longtext | 4294967295 |
enum | 지정된 값 중 한 가지 값만 사용 가능 |
set | 지정된 값 중 여러가지 값을 사용 가능 |
데이터형 | 저장범위 | 표시 형식 | 크기 |
---|---|---|---|
date | 1001-01-01 ~ 9999-12-31 | YYYY-MM-DD | 3byte |
datetime | 1001-01-01 00:00:00 ~ 9999-12-31 23:59:59 | YYYY-MM-DD HH:MM:SS | 8byte |
timestamp | 1970-01-01 00:00:00 ~ 2038-01-19 03:14:07 | YYYYMMDDHHMMSS | 4byte |
time | -838:59:59 ~ 838:59:59 | HH:MM:SS | 3byte |
year | 1901~2155 | YYYY | 1byte |
create table myMember(
myMemberID int unsigned auto_increment comment '고객의 고유번호',
useID varchar(15) not null comment '고객 아이디',
uname varchar(10) not null comment '고객명',
upassword varchar(30) not null comment '고객 비밀번호',
phone varchar(30) not null comment '핸드폰 번호',
email varchar(30) not null comment '고객 이메일 주소',
birthDay char(10) not null comment '고객의 생일',
gender enum( 'm', 'w', 'x' ) default 'x' comment '고객 성별 m은 남성 w은 여성 x는 선택하지 않음',
regTime datetime not null comment '회원가입 시간',
primary key(myMemberID))
charset=utf8 comment='고객 정보 테이블';
TRUNCATE myMember;
ALTER TABLE mytable ADD gender2 enum('m','w','x')
default 'x' comment '고객 성별 m은 남성 w은 여성 x는 선택하지 않음' AFTER gender;
ALTER TABLE mytable DROP gender2;
ALTER TABLE mytable MODIFY gender enum('m','w') COMMENT '고객 성명 m은 남 w 여';
INSERT INTO mymember(useID, uname, upassword, email, birthDay, gender, regTime)
VALUES('leehun','이재훈','1234','junfn@naver.com','1994-12-28','m','now()');
INSERT INTO mymember(useID, uname, upassword, email, birthDay, gender, regTime)
VALUES('gamulchi','가물치','1234','gbdsdgzx@naver.com','1994-10-29','m','now()');
INSERT INTO mymember(useID, uname, upassword, email, birthDay, gender, regTime)
VALUES('bbagasari','빠가사리','1234','njjg23@naver.com','1994-05-08','m','now()');
INSERT INTO mymember(useID, uname, upassword, email, birthDay, gender, regTime)
VALUES('chambongau','참붕어','1234','xzvcx@naver.com','1994-07-17','m','now()');
INSERT INTO mymember(useID, uname, upassword, email, birthDay, gender, regTime)
VALUES('minmuljangau','민물장어','1234','fqse@naver.com','1994-01-11','m','now()');
SELECT name, useID FROM mymember
SELECT * FROM mymember;
SELECT * FROM mymember WHERE myMemberID = 1
SELECT * FROM myMember WHERE email LIKE '%f%';
SELECT * FROM myMember WHERE myMemberID >=1 AND myMemberID <=3;
SELECT * FROM myMember WHERE uname LIKE '빠%' OR uname LIKE '민%';
UPDATE myMember SET phone = 0 WHERE myMemberID = 5;
UPDATE myMember SET phone = '010-5106-2049', useID = 'leehun' WHERE myMemberID = 5;
UPDATE myMember SET phone = '010-2904-3282';
DELETE FROM myMember WHERE myMemberID = 5;
DELETE FROM myMember WHERE myMemberID IN(1,2,3);
INSERT INTO myMember(useID, uname, upassword, phone, email, birthDay, gender, regtime) VALUES('leehun','황상연','1234','010-1111-2222','leehun@naver.com','1999-11-11','m',now());
INSERT INTO myMember(useID, uname, upassword, phone, email, birthDay, gender, regTime) VALUES('ioio2034','이진희','1234','010-9495-3333','ioio2034@naver.com','1994-05-12','w',now());
INSERT INTO myMember(useID, uname, upassword, phone, email, birthDay, gender, regTime) VALUES('goka','심현정','1234','010-2222-3333', 'guswjd0469@naver.com','1997-11-17','w',now());
INSERT INTO myMember(useID, uname, upassword, phone, email, birthDay, gender, regTime) VALUES('hanaziro', '최하나', '1234', '010-5255-4448','hanaziro9@gmail.com','1991-11-18','w',now());
INSERT INTO myMember(useID, uname, upassword, phone, email, birthDay, gender, regTime) VALUES('kimjutan', '김주현', '123456', '010-3111-9993', 'wngus3277@naver.com', '1994-03-11', 'm', now());
INSERT INTO myMember(useID, uname, upassword, phone, email, birthDay, gender, regtime) VALUES ('sowarnye', '박소원', '123', '010-1111-1111', 'pppwoon@naver.com', '1994-10-10', 'w', now());
INSERT INTO myMember(useID, uname, upassword, phone, email, birthDay,gender,regTime) VALUES('leehun','이재훈','123456','010-1113-7222','wognsl305@naver.com','1994-12-28','m',now());
INSERT INTO myMember(useID, uname, upassword, phone, email, birthDay, gender, regTime) VALUES('monopraise','강현선','1289','010-5558-0555','mono5236@naver.com','1994-02-22','m',now());
INSERT INTO myMember(useID, uname, upassword, phone, email, birthday, gender, regtime) VALUES('kioo9235','임정열','1234','010-8888-3333','it3285@naver.com','1992-11-27','m',now());
INSERT INTO myMember(useID, uname, upassword, phone, email, birthDay, gender, regtime) VALUES('kyoungmin','김경민','1234','010-7799-9999','rudals3192@naver.com','1994-12-28','m',now());
INSERT INTO myMember(useID, uname, upassword, phone, email, birthDay,gender,regTime) VALUES('alflal4', '이미림', '1234', '010-0551-2202', 'suger104@naver.com', '1993-03-02', 'w', now());
INSERT INTO myMember(useID, uname, upassword, phone, email, birthDay, gender, regtime) VALUES('suh4522','박수현','1234','010-7777-4444','suh4522@naver.com','1996-05-11','w',now());
INSERT INTO myMember(useID, uname, upassword, phone, email, birthDay, gender, regtime) VALUES('asura','김민수','1899','010-2222-0000','vo2113@naver.com','1999-03-25','m',now());
INSERT INTO myMember(useID, uname, upassword, phone, email, birthDay,gender,regTime) VALUES('kingjeongin','박정인','1234','010-9999-3550','jeongin1689@naver.com','1998-10-27','w',now());
INSERT INTO myMember(useID, uname, upassword, phone, email, birthDay,gender,regTime) VALUES('qweryop93','전혜경','1234','010-7777-9666','dog41004@naver.com','1993-04-19','w',now());
INSERT INTO myMember(useID, uname, upassword, phone, email, birthDay, gender, regtime)VALUES('shingaeul','신가을','1234','010-6666-8888','ilim1908@naver.com','1998-10-08','w',now());
create table prodReview(
prodReviewID int unsigned auto_increment comment '리뷰의 고유번호',
myMemberID int unsigned comment '리뷰를 작성한 회원번호',
content tinytext comment '리뷰 내용',
regTime datetime not null comment '회원가입 시간',
primary key(prodReviewID))
charset=utf8 comment='상품 리뷰';
INSERT INTO prodReview(myMemberID, content, regTime) VALUES(2, '이 신발 너무 편하고 좋습니다.', now());
INSERT INTO prodReview(myMemberID, content, regTime) VALUES(3, '신발 ㅆㅅㅌㅊ', now());
INSERT INTO prodReview(myMemberID, content, regTime) VALUES(4, '발 아파요', now());
INSERT INTO prodReview(myMemberID, content, regTime) VALUES(5, '디자인 이뻐요', now());
INSERT INTO prodReview(myMemberID, content, regTime) VALUES(6, '배송 2개월 걸림', now());
INSERT INTO prodReview(myMemberID, content, regTime) VALUES(7, '신발', now());
INSERT INTO prodReview(myMemberID, content, regTime) VALUES(8, '편해요', now());
SELECT m.uname, r.content, r.regTime FROM myMember m JOIN prodReview r ON(m.myMemberID = r.myMemberID);
SELECT m.uname, r.content, r.regTime AS reviewRegTime FROM myMember m JOIN prodReview r ON(m.myMemberID = r.myMemberID);
SELECT m.uname, r.content, r.regTime AS reviewRegTime FROM myMember m LEFT JOIN prodReview r ON(m.myMemberID = r.myMemberID);
집계 함수는 레코드의 수, 값들의 합계, 평균, 최대값, 최소값을 구하는 함수입니다.
종류 | 설명 |
---|---|
count(필드명) | 레코드의 개수를 표시(값이 null인 경우 포함하지 않음) |
count(*) | 레코드의 개수를 표시(값이 null인 경우 포함) |
sum(필드명) | 필드의 값을 합계로 표시 |
avg(필드명) | 필드의 값을 평군으로 표시 |
max(필드명) | 필드의 값 최대값 표시 |
min(필드명) | 필드의 값 최소값 표시 |
CREATE TABLE schoolRecord (
studentID int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '학생 번호',
class tinyint unsigned comment '소속 클래스(반)',
english tinyint unsigned NOT NULL comment '영어 점수',
math tinyint unsigned NOT NULL comment '수학 점수',
science tinyint unsigned NOT NULL comment '과학 점수',
japanese tinyint unsigned NOT NULL comment '일본어 점수',
coding tinyint unsigned NOT NULL comment '코딩 점수',
PRIMARY KEY (studentID)
) CHARSET=utf8 comment='성적 정보';
INSERT INTO schoolRecord(english, math, science, japanese, coding) VALUES(67, 4, 20, 100, 100);
INSERT INTO schoolRecord(class, english, math, science, japanese, coding) VALUES(1, 55, 60, 80, 50, 100);
INSERT INTO schoolRecord(class, english, math, science, japanese, coding) VALUES(2, 100, 90, 100, 50, 100);
INSERT INTO schoolRecord(class, english, math, science, japanese, coding) VALUES(2, 90, 86, 100, 70, 100);
INSERT INTO schoolRecord(class, english, math, science, japanese, coding) VALUES(3, 80, 50, 60, 20, 100);
INSERT INTO schoolRecord(class, english, math, science, japanese, coding) VALUES(3, 100, 80, 70, 20, 80);
INSERT INTO schoolRecord(class, english, math, science, japanese, coding) VALUES(4, 100, 100, 100, 30, 40);
SELECT count(class) FROM schoolRecord;
SELECT count(*) FROM schoolRecord;
SELECT sum(english) FROM schoolRecord;
SELECT avg(math) FROM schoolRecord WHERE studentID >=1 AND studentID <=5;
SELECT max(japanese) FROM schoolRecord;
SELECT min(math) FROM schoolRecord;
SELECT studentID, english FROM schoolRecord ORDER BY english DESC;
SELECT studentID, english FROM schoolRecord ORDER BY english ASC;
SELECT * FROM myMember LIMIT 4;
SELECT concat(uname,'의 이메일 주소는 ',email,' 입니다.') FROM myMember;