MYSQL
MySQL은 데이터베이스 소프트웨어입니다. 일반적으로 데이터를 추가나 검색, 추출하는 기능을 모두 포함해서 데이터베이스라고 합니다.
MySQL은 세계에서 가장 많이 쓰이는 오픈 소스의 관계형 데이터베이스 관리시스템(RDBMS)입니다. MySQL은 PHP 스크립트 언어와 상호 연동이 잘 되면서 오픈소스를 개발된 무료 프로그램입니다. 그래서 홈페이지나 쇼핑물(워드프로세스, cafe24, 제로보드, 그누보드)등 일반적으로 웹 개발에 널리 사용하고 있습니다.
MySQL 설치
MAMP란 웹사이트를 개발할 때 쓰이는 기술 스택인 maxOS, Apache, MySQL,PHP의 약어이자 솔루션 스택이다.
https://www.mamp.info/en/downloads/
MySQL 실행
윈도우 : cd MAMP/bin/mysql/bin
로그인 : mysql -uroot -proot
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.7.24 MySQL Community Server (GPL)
Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MAC : cd Application/MAMP/bin/mysql/bin
로그인 : ./mysql -uroot -proot
webstoryboyhwang@Webstoryboyui-MacBookPro bin % ./mysql -uroot -proot
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 188
Server version: 5.7.34 MySQL Community Server (GPL)
Copyright (c) 2000, 2021, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
데이터베이스
데이터베이스 만들기
CREATE DATABASE 데이터베이스 이름;
mysql> CREATE DATABASE sample01;
Query OK, 1 row affected (0.00 sec)
데이터베이스 보기
SHOW DATABASEs;
mysql> SHOW DATABASEs ;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sample01 |
| sys |
+--------------------+
5 rows in set (0.00 sec)
데이터베이스 사용
USE 데이터베이스이름;
mysql> USE sample01;
Database changed
데이터베이스 삭제
DROP 데이터베이스이름;
mysql> DROP DATABASE sample02;
Query OK, 0 rows affected (0.00 sec)
테이블
테이블 만들기
CREATE TABLE 테이블 이름;
CREATE TABLE member (
myMemberID int(10) UNSIGNED AUTO_INCREMENT,
youEmail varchar(40) NOT NULL,
youName varchar(20) NOT NULL,
youPass varchar(20) NOT NULL,
youBirth int(20) NOT NULL,
regTime int(20) NOT NULL,
PRIMARY KEY (myMemberID)
) charset=utf8;
Query OK, 0 rows affected (0.03 sec)
테이블 전체보기
SHOW TABLES;
SHOW TABLES;
+--------------------+
| Tables_in_sample01 |
+--------------------+
| member |
+--------------------+
1 row in set (0.00 sec)
테이블 보기
desc 테이블 이름;
desc member;
+------------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------+------------------+------+-----+---------+----------------+
| myMemberID | int(10) unsigned | NO | PRI | NULL | auto_increment |
| youEmail | varchar(40) | NO | | NULL | |
| youName | varchar(20) | NO | | NULL | |
| youPass | varchar(20) | NO | | NULL | |
| youBirth | int(20) | NO | | NULL | |
| regTime | int(20) | NO | | NULL | |
+------------+------------------+------+-----+---------+----------------+
6 rows in set (0.00 sec)
테이블 삭제
DROP TABLE 테이블 이름;
DROP TABLE member;
Query OK, 0 rows affected (0.01 sec)
테이블 복사
CREATE TABLE IF NOT EXISTS 복사 테이블 LIKE 원본 테이블;
CREATE TABLE IF NOT EXISTS member2 LIKE member;
Query OK, 0 rows affected (0.02 sec)
SHOW TABLES;
+--------------------+
| Tables_in_sample01 |
+--------------------+
| member |
| member2 |
+--------------------+
2 rows in set (0.00 sec)
테이블 데이터
데이터 입력하기
INSERT INTO 테이블이름(필드명) VALUE(데이터)
INSERT INTO member(youEmail, youName, youPass, youBirth, regTime) VALUES('webstoryboy@naver.com','황상연','1234','19990303','1234567');
INSERT INTO member(youEmail, youName, youPass, youBirth, regTime) VALUES('***@naver.com', ''***',', '1234', '19970415', '1234567');
Query OK, 1 row affected (0.00 sec)
INSERT INTO member(youEmail, youName, youPass, youBirth, regTime) VALUES('***@naver.com', ''***',', '1234', '19970530', '1234567');
Query OK, 1 row affected (0.00 sec)
INSERT INTO member(youEmail, youName, youPass, youBirth, regTime) VALUES('***@naver.com', '김석'***',준', '1234', '19941009', '1234567');
Query OK, 1 row affected (0.00 sec)
INSERT INTO member(youEmail, youName, youPass, youBirth, regTime) VALUES('***@naver.com', ''***',', '1234', '19990303', '1234567');
Query OK, 1 row affected (0.00 sec)
INSERT INTO member(youEmail, youName, youPass, youBirth, regTime) VALUES('***@naver.com',''***',','1234','19970205','1234567');
Query OK, 1 row affected (0.00 sec)
INSERT INTO member(youEmail, youName, youPass, youBirth, regTime) VALUES('***@naver.com',''***',','1234','19990303','1234567');
Query OK, 1 row affected (0.00 sec)
INSERT INTO member(youEmail, youName, youPass, youBirth, regTime) VALUES('***@naver.com', ''***',', '1234', '19970809', '04');
Query OK, 1 row affected (0.00 sec)
INSERT INTO member(youEmail, youName, youPass, youBirth, regTime) VALUES('***@naver.com',''***',','1234','19990303','1234567');
Query OK, 1 row affected (0.00 sec)
INSERT INTO member(youEmail, youName, youPass, youBirth, regTime) VALUES('***@gmail.com', ''***',', '1234', '19990303', '1234567');
Query OK, 1 row affected (0.00 sec)
INSERT INTO member(youEmail, youName, youPass, youBirth, regTime) VALUES('***@gmail.com', ''***',', '1234', '19990303', '1234567');
Query OK, 1 row affected (0.00 sec)
INSERT INTO member(youEmail, youName, youPass, youBirth, regTime) VALUES('***@naver.com',''***',','1234','19960530','1234567');
Query OK, 1 row affected (0.00 sec)
INSERT INTO member(youEmail, youName, youPass, youBirth, regTime) VALUES('***@gmail.com',''***',','1234','19971007','1234567');
Query OK, 1 row affected (0.00 sec)
INSERT INTO member(youEmail, youName, youPass, youBirth, regTime) VALUES('***@gmail.com',''***',','1234','19960331','1234567');
Query OK, 1 row affected (0.00 sec)
INSERT INTO member(youEmail, youName, youPass, youBirth, regTime) VALUES('***@gmail.com',''***',','1234','19990303','1234567');
Query OK, 1 row affected (0.00 sec)
INSERT INTO member(youEmail, youName, youPass, youBirth, regTime) VALUES('***@gmail.com', ''***',', '1234', '19981010', '1234567');
Query OK, 1 row affected (0.00 sec)
INSERT INTO member(youEmail, youName, youPass, youBirth, regTime) VALUE('***@gmail.com', ''***',', '1234', '19700101', '1234567');
Query OK, 1 row affected (0.00 sec)
INSERT INTO member(youEmail, youName, youPass, youBirth, regTime) VALUES('***@gmail.com', ''***',', '1234', '19990303', '1234567');
Query OK, 1 row affected (0.00 sec)
INSERT INTO member(youEmail, youName, youPass, youBirth, regTime) VALUES('***@gmail.com',''***',','1234','19970731','1234567');
Query OK, 1 row affected (0.00 sec)
전체 데이터 불러오기
SELECT * FROM 테이블 이름;
SELECT * FROM member;
+------------+--------------------------+-----------+---------+----------+---------+
| myMemberID | youEmail | youName | youPass | youBirth | regTime |
+------------+--------------------------+-----------+---------+----------+---------+
| 1 | ***@naver.com | *** | 1234 | 19990303 | 1234567 |
| 2 | ***@naver.com | *** | 1234 | 19970415 | 1234567 |
| 3 | ***@naver.com | *** | 1234 | 19970530 | 1234567 |
| 4 | ***@naver.com | *** | 1234 | 19941009 | 1234567 |
| 5 | ***@naver.com | *** | 1234 | 19990303 | 1234567 |
| 6 | ***@naver.com | *** | 1234 | 19970205 | 1234567 |
| 7 | ***@naver.com | *** | 1234 | 19990303 | 1234567 |
| 8 | ***@naver.com | *** | 1234 | 19970809 | 4 |
| 9 | ***@naver.com | *** | 1234 | 19990303 | 1234567 |
| 10 | ***@gmail.com | *** | 1234 | 19990303 | 1234567 |
| 11 | ***@gmail.com | *** | 1234 | 19990303 | 1234567 |
| 12 | ***@naver.com | *** | 1234 | 19960530 | 1234567 |
| 13 | ***@gmail.com | *** | 1234 | 19971007 | 1234567 |
| 14 | ***@gmail.com | *** | 1234 | 19960331 | 1234567 |
| 15 | ***@gmail.com | *** | 1234 | 19990303 | 1234567 |
| 16 | ***@gmail.com | *** | 1234 | 19981010 | 1234567 |
| 17 | ***@gmail.com | *** | 1234 | 19700101 | 1234567 |
| 18 | ***@gmail.com | *** | 1234 | 19990303 | 1234567 |
| 19 | ***@gmail.com | *** | 1234 | 19970731 | 1234567 |
+------------+--------------------------+-----------+---------+----------+---------+
19 rows in set (0.00 sec)
ID가 6일경우
SELECT * FROM 테이블 이름 WHERE 조건;
SELECT * FROM member WHERE myMemberID = 6;
+------------+---------------------+-----------+---------+----------+---------+
| myMemberID | youEmail | youName | youPass | youBirth | regTime |
+------------+---------------------+-----------+---------+----------+---------+
| 6 | ***@naver.com | *** | 1234 | 19970205 | 1234567 |
+------------+---------------------+-----------+---------+----------+---------+
1 row in set (0.00 sec)
naver 메일을 사용하는 사람
SELECT * FROM 테이블 이름 WHERE 조건;
SELECT * FROM member WHERE youEmail LIKE "%naver%";
+------------+------------------------+-----------+---------+----------+---------+
| myMemberID | youEmail | youName | youPass | youBirth | regTime |
+------------+------------------------+-----------+---------+----------+---------+
| 1 | ***@naver.com | *** | 1234 | 19990303 | 1234567 |
| 2 | ***@naver.com | *** | 1234 | 19970415 | 1234567 |
| 3 | ***@naver.com | *** | 1234 | 19970530 | 1234567 |
| 4 | ***@naver.com | *** | 1234 | 19941009 | 1234567 |
| 5 | ***@naver.com | *** | 1234 | 19990303 | 1234567 |
| 6 | ***@naver.com | *** | 1234 | 19970205 | 1234567 |
| 7 | ***@naver.com | *** | 1234 | 19990303 | 1234567 |
| 8 | ***@naver.com | *** | 1234 | 19970809 | 4 |
| 9 | ***@naver.com | *** | 1234 | 19990303 | 1234567 |
| 12 | ***@naver.com | *** | 1234 | 19960530 | 1234567 |
+------------+------------------------+-----------+---------+----------+---------+
10 rows in set (0.00 sec)
데이터 수정하기
ARTER TABLE 테이블 이름;
데이터 삭제하기
DELETE TABLE 테이블 이름 WHERE 조건;
댓글