MySQL은 데이터베이스 소프트웨어입니다. 일반적으로 데이터를 추가하거나 검색, 추출하는 기능을 모두 포함해서 데이터베이스라고 부릅니다.
MySQL은 세계에서 가장 많이 쓰이는 오픈 소스의 관계형 데이터베이스 관리 시스템(RDBMS)입니다.
MySQL은 PHP스크립트 언어와 상호 연동이 잘되면서 오픈소스로 개발된 무료 프로그램입니다.
그래서 홈페이지나 쇼핑몰(워드프레스, Cafe24, 제로보드, 그누보드)등 일반적인 웹 개발에 널리 사용하고 있습니다.
create table Member(
myMemberID int unsigned auto_increment comment '고객의 고유번호',
useID varchar(15) not null comment '고객 아이디',
uName varchar(10) not null comment '고객명',
uPassword 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='고객 정보 테이블';
show tables
desc 테이블명
drop table 테이블명
TRUNCATE mymember;
ALTER TABLE mymember3 ADD phone varchar(13) not null comment '고객의 연락처'
//위치
ALTER TABLE mymember3 ADD phone varchar(13) not null comment '고객의 연락처' AFTER useID;
ALTER TABLE mymember3 DROP phone
ALTER TABLE mymember3 MODIFY upassword varchar(15) not null comment '패스워드'
//전체 불러오기
SELECT * FROM mymember
//이름, 아이디
SELECT uname, useID FROM mymember4;
//회원아이디 1번정보 검색하기
SELECT * FROM mymember4 WHERE myMemberID = 1;
//회원 아이디중 naver가 있는 메일 검색하기
SELECT * FROM mymember4 WHERE email LIKE '%naver%';
SELECT * FROM mymember4 WHERE email LIKE '%naver';
SELECT * FROM mymember4 WHERE email LIKE 'naver%';
//회원 아이디가 1번부터 5번까지 불러오기
SELECT * FROM mymember4 WHERE myMemberID >=1 AND myMemberID <=5;
//회원 이름중에 첫 글자가 '웹'이거 '홍'인 사람만 검색
SELECT * FROM mymember4 WHERE uname LIKE '웹%' OR uname LIKE '홍%';
//회원 아이디1번 핸드폰 번호 변경
UPDATE mymember SET phone = '010-9999-2222' WHERE myMemberID = 1;
//회원 아이디5번 핸드폰 번호, 아이디 변경
UPDATE mymember SET phone = '010-9999-2222', useID = 'min555' WHERE myMemberID = 1;
//데이터 일괄적으로 변경하
UPDATE mymember SET phone = '010-9999-2222';
DELETE FROM mymember WHERE myMemberID = 11;
//IN()
DELETE FROM mymember WHERE myMemberID IN(1,2,3);
create table member(
memberID int unsigned auto_increment comment '고객의 고유번호',
userID varchar(15) not null comment '고객 아이디',
userName varchar(10) not null comment '고객명',
userPassword varchar(30) not null comment '고객 비밀번호',
userEmail varchar(30) not null comment '고객의 이메일 주소',
userBirthDay char(10) not null comment '고객의 생일',
userGender enum('m','w','x') default 'x' comment '고객 성별 m은 남성 w은 여성 x는 선택하지 않음',
regTime datetime not null comment '회원가입 시간',
primary key(memberID))
charset=utf8 comment='고객 정보 테이블';
create table review(
reviewID int unsigned auto_increment comment '리뷰 고유번호',
memberID int unsigned comment '리뷰를 작성한 회원번호',
reviewContent tinytext comment '리뷰내용',
regTime datetime not null comment '리뷰 작성 시간',
primary key(reviewID))
charset=utf8 comment='상품 리뷰 테이블';
INSERT INTO member(userID, userName, userPassword, userEmail, userBirthDay, userGender, regTime) VALUES('yein','예인','1234','sscv1@naver.com','1999-03-22','w',now());
INSERT INTO member(userID, userName, userPassword, userEmail, userBirthDay, userGender, regTime) VALUES('areum','아름','1234','jangar6621@gmail.com','2020-12-28','w',now());
INSERT INTO member(userID, userName, userPassword, userEmail, userBirthDay, userGender, regTime) VALUES('hong','홍기영','123456','hgy@naver.com','2019-12-28','m',now());
INSERT INTO member(userID, userName, userPassword, userEmail, userBirthDay, userGender, regTime) VALUES('paneoy','hyunseo','1234','paneoy@gmiall.com','1996-04-18','w',now());
INSERT INTO member(userID, userName, userPassword, userEmail, userBirthDay, userGender, regTime) VALUES('kjw911108','지원','1234','kimjiwon911108@gmail.com','1991-11-08','w',now());
INSERT INTO member(userID, userName, userPassword, userEmail, userBirthDay, userGender, regTime) VALUES('park','상현','1234','park@naver.com','1999-02-03','m',now());
INSERT INTO member(userID, userName, userPassword, userEmail, userBirthDay, userGender, regTime) VALUES('limnangman', '임낭만', '1234', 'limnangman96@naver.com', '1996-06-03', 'w', now());
INSERT INTO member(userID, userName, userPassword, userEmail, userBirthDay, userGender, regTime) VALUES('heemwon','힘원','1234','heemwon@gmail.com','1994-06-03','w',now());
INSERT INTO member(userID, userName, userPassword, userEmail, userBirthDay, userGender, regTime) VALUES('min','민','1234','min@naver.com','1997-03-11','w',now());
INSERT INTO review(memberID, reviewContent, regTime) VALUES(2, '이 신발 너무 이쁩니다.', now());
INSERT INTO review(memberID, reviewContent, regTime) VALUES(3, '이 신발 사지마세요.', now());
INSERT INTO review(memberID, reviewContent, regTime) VALUES(4, '이 신발 너무 비쌉니다.', now());
INSERT INTO review(memberID, reviewContent, regTime) VALUES(5, '이 신발 별로네요', now());
INSERT INTO review(memberID, reviewContent, regTime) VALUES(6, '이 신발 신을만 하네요~', now());
SELECT m.userName, r.reviewContent, r.regTime
FROM member m JOIN review r
ON (m.memberID = r.memberID);
SELECT m.userName, r.reviewContent, r.regTime
AS reviewDate
FROM member m JOIN review r
ON (m.memberID = r.memberID);
SELECT m.userName, r.reviewContent, r.regTime
FROM member m LEFT JOIN review r
ON (m.memberID = r.memberID);
CREATE TABLE CodingRecord (
codingID int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '학생 점수',
class tinyint unsigned comment '소속 클래스',
html tinyint unsigned NOT NULL comment 'html 점수',
css tinyint unsigned NOT NULL comment 'css 점수',
javascript tinyint unsigned NOT NULL comment '자바스크립트 점수',
jquery tinyint unsigned NOT NULL comment '제이쿼리 점수',
react tinyint unsigned NOT NULL comment '리액트 점수',
PRIMARY KEY (codingID))
charset=utf8 comment='코딩 성적';
//레코드 갯수 구하기
SELECT count(class) FROM CodingRecord;
SELECT count(*) FROM CodingRecord;
//html 점수 합계
SELECT sum(html) FROM CodingRecord;
//1번부터 5번까지 CSS 점수 평균
SELECT avg(css) FROM CodingRecord WHERE codingID >= 1 AND codingID <=5;
//javascript 가장 높은 점수
SELECT max(javascript) FROM CodingRecord;
//javascript 가장 낮은 점수
SELECT min(javascript) FROM CodingRecord;
SELECT class, avg(react) FROM CodingRecord WHERE class IN(1,2,3,4) GROUP BY class;
//리액트 점수가 80점 이상만 출력
SELECT class, sum(react) FROM CodingRecord
WHERE class IN(1,2,3,4) GROUP BY class
HAVING sum(react) >= 80;
SELECT codingID, css FROM CodingRecord ORDER BY css DESC;
//내림차순
SELECT codingID, css FROM codingRecrod ORDER BY css DESC;
//오름차순
SELECT codingID, css FROM codingRecrod ORDER BY css ASC;
//반별
SELECT class, sum(javascript) FROM CodingRecord
WHERE class IN(1,2,3) GROUP BY class
ORDER BY sum(javascript) DESC;
//제한
SELECT * FROM CodingRecord LIMIT 3;
SELECT * FROM CodingRecord ORDER BY html DESC LIMIT 5;
SELECT * FROM CodingRecord LIMIT 3 //첫 번째 페이지
SELECT * FROM CodingRecord LIMIT 3, 3 //두 번째 페이지
SELECT * FROM CodingRecord LIMIT 6, 3 //세 번째 페이지