-
MySQL - 설치 및 기본 정보, 기본 CRUD 명령어컴퓨터/SQL, 데이터모델링 2020. 1. 12. 17:41
데이터베이스 : 정보를 관리하는 전문 애플리케이션
안전하고 효율적으로 사용할 수 있다.
파일을 데이터베이스로 대체
* file <-> database
file : 기본적이고 원시적인 형태의 데이터 관리 시스템, 전송하기 편리하다.
database : 데이터베이스도 결국에는 파일에 정보를 저장한다
- 파일보다 우월한 점 : 안전하다(백업하는 시스템도 있고~), 빠르다(index, 정보를 빠르게 찾을 수 있다), 프로그래밍적 제어 기능
- 누구나 쉽게 데이터를 정리정돈할 수 있다.
* 관계형 데이터베이스 - MySQL, MSSQL, Oracle을 많이 쓴다
SQL Server, PostgreSQL, DB2, Access
데이터를 표의 형태로 정리할 수 있고 정렬, 검색 같은 기능을 빠르고 편리하게 이용할 수 있다.
* MySQL(1994년 스웨덴에서 개발 시작)
웹과 함께 성장한 데이터베이스, 오픈소스
관계형데이터베이스의 기능을 대부분 가지고 있음.
사용법이 비슷해서 MariaDB도 사용할 수 있다.
정돈된 상태 = 구조화된(structured)
가장 대표적인 구조화된 것 : 표(table) -> 대표. EXCEL
* Structured Query Language
* MySQL Client : client 컴퓨터(웹뿐만 아니라 데이터베이스에도 존재)
MySQL Server : server 컴퓨터, 정보를 어떻게 관리할 것인가
client에서 server로 SQL 명령어를 보낸다. 데이터베이스 서버가 client에 표로된 정보를 응답해준다.
cf) server와 client 개념은 항상 상대적, 바뀔 수 있다.
* 설치
mysql community edition 검색
mysql community server - general available(GA) Releases 설치
검색창에 bitnami WAMP 검색(window에서 아파치와 Mysql과 php를 동시에 설치해주는 프로그램)
제일 위쪽 링크 클릭해서 설치
기본 설정
create MySQL 'root' Account : 다중 사용자 시스템
기본 사용자는 root
나중에 수동으로 킬 때
C:\bitnami\wampstack-~\manager-windows 클릭
* MySQL monitor라는 프로그램으로 server에 접근할 수 있다.
표준적인 MySQL client이다.
- window에서 실행 : window키 누른 상태에서 R -> cmd ->명령프롬프트에서 mySQL monitor 사용
wampstack에서 mysql에서 bin에서 mysql 실행파일을 찾는다
위치 경로를 복사해서 cmd/terminal에서 cd 경로 입력
cd C:\bitnami\wampstack-~\mysql\bin
mysql -uroot -p
password 입력
- MAC : spotlight에서 terminal
ex. ~ cd /Applications/wamp+tabl키/mysql/bin/
bin ./mysql -uroot -p
*mac에서 wamp~ 설치 안했으면
cd /usr/local/mysql/bin
sudo ./mysql -uroot -p
비밀번호 입력
mac은 sudo 있으면 mac 비번일 때 있음
passport module 쓰려면 설치할 때 configuration에서 legacy mode 선택해야함
비밀번호 잊어버려서 구글링한대로 재설정하려할 때 잘 안됐음 -> mysql 죽였다가 다시 turn on하고 실행하니 되었음
* window bash terminal에서도
cd c:\\Bitnami\\wampstack-7.1.8-0\\mysql\\bin
./mysql -uroot -p
- ubuntu : terminal 검색
ex. cd /opt/lamp+tab키/mysql/bin
* mysql -hlocalhost -uroot -p
MAC과 ubuntu : ./mysql -hlocalhost -uroot -p
~ cd /user/local/mysql/bin/
bin ./mysql -uroot -p : root라는 user고 password를 입력할거야
u: user
* MySQL 구조
많아진 표를 잘 정리정돈해야 한다.
서로 연관된 표를 그룹핑해서 연관되지 않은 표와 분리한다.
표들을 그룹핑한 것을 데이터베이스(스키마)라고 한다.
스키마 : 표들을 그룹핑할 때 쓰는 일종의 폴더
스키마는 서로 연관된 정보를 그룹핑한다.
스키마를 데이터베이스 서버에 저장한다.
MySQL 설치 : 데이터베이스 서버를 설치한 것
* 데이터베이스는 자체적인 보안 체계를 가지고 있다.
차등적인 권한 기능도 있다.
root는 일반적으로 관리자. 중요할 때만 root로 들어가야.
* MySQL 사용법
https://dev.mysql.com/doc/refman/8.0/en/creating-database.html
https://www.mysqltutorial.org/mysql-drop-database/
https://www.mysqltutorial.org/mysql-cheat-sheet.aspx
MySQL Cheat Sheet 검색
[Show all mySQL users] SELECT User, Host, Password FROM mysql.user;
[port 번호 확인] SHOW GLOBAL VARIABLES LIKE 'PORT';
[생성] mysql> CREATE DATABASE database_name;
[삭제] DROP DATABASE [IF EXISTS] database_name;
[보기] SHOW DATABASES;
[스키마 하나 선택] USE database_name;
[테이블 생성]
CREATE TABLE topic ( id INT(11) NOT NULL AUTO_INCREMENT, title VARCHAR(100) NOT NUTLL, description TEXT NULL< created DATETIME NOT NULL, author VARCHAR(15) NULL, profile VARCHAR(200) NULL, PRIMARY KEY(id) );
varchar : variable + character
text : 65,535
DATETIME : date(날짜) + time(시간)
[table 구조 보기] DESC topic;
[insert] INSERT INTO table_name (column1, column2, ...) VALUES (~,~,..);
INSERT INTO users (name, created_at, phone) VALUES ('sojeong', NOW(),
NOW() : 현재 시간
password 암호화 -> values () 안 패스워드 자리에 PASSWORD('비밀번호') 넣으면 된다
[select] select * from users order by id desc limit 1;
[update]update table명 set 칼럼이름=value where id=1;
[delete] delete from users where id=3;
[이름바꾸기] RENAME TABLE topic TO topic_backup;
* 칼럼
[칼럼 추가] ALTER TABLE users ADD COLUMN nickname VARCHAR(255) AFTER name;
[칼럼 삭제] ALTER TABLE table_name DROP COLUMN column_name;
[칼럼 크기 및 타입 바꾸기] ALTER TABLE table_name MODIFY column_name VARCHAR(200);
출처 : 생활코딩, DATABASE2 MySQL
https://www.thoughtco.com/change-columns-size-type-in-mysql-2693875
'컴퓨터 > SQL, 데이터모델링' 카테고리의 다른 글
순번, 순위 매기기 (0) 2020.01.19 [데이터 모델링] 논리적 데이터 모델링 (0) 2020.01.11 [관계형 데이터 모델링] 개념적 데이터 모델링 (0) 2020.01.11