ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 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

    댓글

Designed by Tistory.