1.설치

brew install mysql

버전 확인 

mysql -V

2. 서버 켜기 

mysql.server start

3. 초기설정 

mysql_secure_installation

3. 실행

mysql - u root -p

4. 종료

mysql.server stop

'Computer Science > Database' 카테고리의 다른 글

[MySQL] MySQL Client  (0) 2020.08.15
[Database] Internet & Database  (0) 2020.08.15
[SQL] table 완성하기  (1) 2020.08.07
[SQL] create table  (0) 2020.08.07
[MySQL] MySQL Moniter  (0) 2020.08.05

client란 ?

https://bskwak.tistory.com/147 참고

 

[Database] Internet & Database

Internet Internet이 동작하기 위해서 computer가 최소, 최대 2대 필요함 각각 컴퓨터들이 Internet으로 연결됨 = computer 간의 사회가 만들어짐 = 1대가 가지고 있는 한계 초월 1대의 컴퓨터는 정보를 다른 ��

bskwak.tistory.com

 

MySQL moniter

- MySQL server 설치 시 함께 설치됨

- CLI (명령어 기반의 프로그램)

- 어디서나 사용 가능

- 명령을 통해서 제어해야하기 때문에 명령어를 기억해야 함

 

./mysql -uroot -p -hlocalhost
./mysql -uroot -p -h127.0.0.1
./mysql -uroot -p 

 

-uroot : user root (관리자 계정)으로 접속할 것 

-p : password를 입력할 것

-h : (host)인터넷을 통해서 다른 컴퓨터에 있는 MySQL server에 접속할 때, 접속하려는 server의 주소를 입력

localhost : 컴퓨터가 자기 자신을 가리키는 약속된 특수한 도메인

127.0.0.1 : 컴퓨터가 자기 자신을 가리키는 약속된 특수한 IP

※ -h 옵션 적지 않으면 기본적으로 MySQL Moniter가 설치되어 있는 컴퓨터의 MySQL server에 접속

 

MySQL Workbench

- MySQL에서 공식적으로 제공하는 GUI (그래픽 기반의 프로그램) 기반의 MySQL Client 프로그램

- 사용이 제한적임

- 직관적으로 사용 가능

 

 

'Computer Science > Database' 카테고리의 다른 글

[MySQL] Mac M1에서 설치 및 실행  (0) 2021.11.03
[Database] Internet & Database  (0) 2020.08.15
[SQL] table 완성하기  (1) 2020.08.07
[SQL] create table  (0) 2020.08.07
[MySQL] MySQL Moniter  (0) 2020.08.05

Internet

Internet이 동작하기 위해서 computer가 최소, 최대 2대 필요함

각각 컴퓨터들이 Internet으로 연결됨 = computer 간의 사회가 만들어짐 = 1대가 가지고 있는 한계 초월

1대의 컴퓨터는 정보를 다른 컴퓨터에게 요청하고 또 다른 컴퓨터는 요청한 정보를 응답함

 

Web

컴퓨터에 역할에 따라 이름을 붙임 : 서비스 요청(client), 서비스 응답(server)
client → Internet → server 
client ← Internet ← server

 

Database

MySQL는 두개의 프로그램을 설치함 - Database Client, Database Server

database를 다룰 때, database server를 직접 다루는 것처럼 보이지만, database server를 직접 다룰 수 없음

반드시 database client 사용해야 함

 

Database client

프롬포트에 mysql이라고 했을 때, 실행되는 명령어 기반의 프로그램

MySQL monitor(client)를 통해 명령어로 서버를 제어

 ※ MySQL moniter : MySQL server에 접속할 수 있도록 default로 번들로서 제공하는 기본 클라이언트 프로그램

 

데이터베이스 서버와 클라이언트의 구조로 생기는 효과

수많은 데이터베이스 클라이언트들이 database server를 중심으로 데이터 저장 사용, 관리, 등을 할 수 있음

 


♥ 이해하는 것이 아닌 익숙해지는 것
익숙해지는 방법이 이해와 암기

 

 

 

 

 

 

참고 : https://opentutorials.org/course/3161/19546

'Computer Science > Database' 카테고리의 다른 글

[MySQL] Mac M1에서 설치 및 실행  (0) 2021.11.03
[MySQL] MySQL Client  (0) 2020.08.15
[SQL] table 완성하기  (1) 2020.08.07
[SQL] create table  (0) 2020.08.07
[MySQL] MySQL Moniter  (0) 2020.08.05

https://bskwak.tistory.com/141 에 이어서 table 완성하기 

 

[SQL] create table

SQL이란? Structed Query Language 데이터베이스에서 사용되는 일종의 공통 언어 table data를 저장하는 database의 개체로, database를 구성하는 가장 기본적이고 핵심적인 요소 row : record, 행, x축, database..

bskwak.tistory.com

 

SQL의 INSERT 구문

mysql create row

INSERT INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...);

 

row 1 

INSERT INTO topic (title, description,created,author,profile) 
VALUES('MYSQL','MYSQL is ...',NOW(),'egoing','developer');

- NOW( ) 함수는 현재 날짜,시간을 불러옴

 

나머지 row도 동일하게 진행

 

 

SQL의 SELECT 구문

mysql select syntax

https://dev.mysql.com/doc/refman/8.0/en/select.html

 

MySQL :: MySQL 8.0 Reference Manual :: 13.2.10 SELECT Statement

13.2.10 SELECT Statement SELECT [ALL | DISTINCT | DISTINCTROW ] [HIGH_PRIORITY] [STRAIGHT_JOIN] [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT] [SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS] select_expr [, select_expr] ... [into_option] [FROM table_referenc

dev.mysql.com

링크에 있는 코드

SELECT
    [ALL | DISTINCT | DISTINCTROW ]
    [HIGH_PRIORITY]
    [STRAIGHT_JOIN]
    [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT]
    [SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS]
    select_expr [, select_expr] ...
    [into_option]
    [FROM table_references
      [PARTITION partition_list]]
    [WHERE where_condition]
    [GROUP BY {col_name | expr | position}, ... [WITH ROLLUP]]
    [HAVING where_condition]
    [WINDOW window_name AS (window_spec)
        [, window_name AS (window_spec)] ...]
    [ORDER BY {col_name | expr | position}
      [ASC | DESC], ... [WITH ROLLUP]]
    [LIMIT {[offset,] row_count | row_count OFFSET offset}]
    [into_option]
    [FOR {UPDATE | SHARE}
        [OF tbl_name [, tbl_name] ...]
        [NOWAIT | SKIP LOCKED]
      | LOCK IN SHARE MODE]
    [into_option]

into_option: {
    INTO OUTFILE 'file_name'
        [CHARACTER SET charset_name]
        export_options
  | INTO DUMPFILE 'file_name'
  | INTO var_name [, var_name] ...
}

대괄호 [] 의 경우 : 생략 가능

FROM의 위치 중요

 

모든 데이터 화면에 출력

SELECT * FROM table_name;

 

특정 column 제한하여 출력

SELECT column FROM table_name;
-- SELECT id, title, created, author FROM topic;

 

원하는 정보에 해당하는 행만 출력

WHERE문을 통해 필요한 정보 출력

SELECT column FROM table_name WHERE column2 = "...";
-- SELECT id, title, created,author FROM topic WHERE author = "egoing";

 

어떤 column의 값을 기준으로 오름차순으로 나열

SELECT column FROM table_name ORDER by column DESC;
-- SELECT id, title, created, author FROM topic ORDER by id DESC;

 

위의 기준으로 나열할 때 n 순위 까지 출력

SELECT column FROM table_name ORDER by column DESC LIMIT n;
-- SELECT id, title, created, author FROM topic ORDER by id DESC LIMIT 2;	//2순위

 

SQL의 UPDATE 구문

mysql update syntax

https://dev.mysql.com/doc/refman/8.0/en/update.html

 

MySQL :: MySQL 8.0 Reference Manual :: 13.2.13 UPDATE Statement

MySQL 8.0 Reference Manual  /  ...  /  SQL Statements  /  Data Manipulation Statements  /  UPDATE Statement 13.2.13 UPDATE Statement UPDATE is a DML statement that modifies rows in a table. An UPDATE statement can start with a WITH clause to defin

dev.mysql.com

 

링크에 있는 코드

UPDATE [LOW_PRIORITY] [IGNORE] table_reference
    SET assignment_list
    [WHERE where_condition]
    [ORDER BY ...]
    [LIMIT row_count]

value:
    {expr | DEFAULT}

assignment:
    col_name = value

assignment_list:
    assignment [, assignment] ...

WHERE문이 없는 경우, 열 전체가 바뀜

 

예시

UPDATE topic SET description='Oracle is ...',title='ORACLE' WHERE id=2;

 

SQL의 DELETE 구문

mysql delete syntax

https://dev.mysql.com/doc/refman/8.0/en/delete.html

 

MySQL :: MySQL 8.0 Reference Manual :: 13.2.2 DELETE Statement

MySQL 8.0 Reference Manual  /  ...  /  SQL Statements  /  Data Manipulation Statements  /  DELETE Statement DELETE is a DML statement that removes rows from a table. A DELETE statement can start with a WITH clause to define common table expressions

dev.mysql.com

링크에 있는 코드

DELETE [LOW_PRIORITY] [QUICK] [IGNORE] FROM tbl_name [[AS] tbl_alias]
    [PARTITION (partition_name [, partition_name] ...)]
    [WHERE where_condition]
    [ORDER BY ...]
    [LIMIT row_count]

UPDATE문과 마찬가지로 WHERE문이 없으면 전체가 delete됨

 

예시

DELETE FROM topic WHERE id=5;

 

 

 

 

참고 : https://opentutorials.org/course/3161/19538

'Computer Science > Database' 카테고리의 다른 글

[MySQL] MySQL Client  (0) 2020.08.15
[Database] Internet & Database  (0) 2020.08.15
[SQL] create table  (0) 2020.08.07
[MySQL] MySQL Moniter  (0) 2020.08.05
[Database] database란?  (0) 2020.08.04

SQL이란? 

Structed Query Language

데이터베이스에서 사용되는 일종의 공통 언어

 

table

data를 저장하는 database의 개체로, database를 구성하는 가장 기본적이고 핵심적인 요소

row : record, 행, x축, database에서 data

column : field, 열, y축, database에서 data의 구조 

 

create table in mysql

아래 사진(cheat sheet) 참고

CREATE TABLE table_name (
	column_name1 datatype(length),
	column_name2 datatype(length),
	...
    PRIMARY KEY ( )
)

 

아래 표를 table로 작성해보기 

 

※ mysql datatye number

SQL의 column은 엑셀과 다르게 column의 datatype를 가지고 있음 

- datatype이 맞지 않으면 입력 거부할 수 있음 

길이에 대한 규제(VARCHAR(size)) 가능

https://www.techonthenet.com/mysql/datatypes.php

 

MySQL: Data Types

MySQL: Data Types The following is a list of datatypes available in MySQL, which includes string, numeric, date/time, and large object datatypes. String Datatypes The following are the String Datatypes in MySQL: Data Type Syntax Maximum Size Explanation CH

www.techonthenet.com

column 1 : id

- 보통 11자리수까지 반영 ( INT(11)

- 빈칸이면 안됨 ( NOT NULL )

- 자동으로 1씩 증가하도록 설정 ( AUTO_INCREMENT )

id INT(11) NOT NULL AUTO_INCREMENT

column 2 : title (제목)

- 255개 문자를 허용하는 VARCHAR을 쓰되, 문자열 길이 100으로 규제 ( VARCHAR(100) )

- 빈칸이면 안됨 ( NOT NULL )

title VARCHAR(100) NOT NULL

 

column 3 : description (본문)

- 65000 문자 허용 ( TEXT

- 내용이 없어도(빈칸이어도) 가능 ( NULL )

description TEXT NULL

 

column 4 : create (생성시간)

- date, time 모두 허용 ( DATATIME

빈칸이면 안됨 ( NOT NULL )

created DATETIME NOT NULL

 

column 5 : author 

- 255개 문자를 허용하는 VARCHAR을 쓰되, 문자열 길이 30으로 규제 ( VARCHAR(30) )

- 빈칸 허용 : 익명 ( NULL )

author VARCHAR(30) NULL

 

column 6 : profile 

- 255개 문자를 허용하는 VARCHAR을 쓰되, 문자열 길이 100으로 규제 ( VARCHAR(100) )

- 빈칸 허용 ( NULL )

profile VARCHAR(100) NULL

 

PRIMARY KEY 

- 성능, 중복방지 기능

- 해당 table의 id column이 main key라는 것을 선언 

 

table code

CREATE TABLE topic(   
    id INT(11) NOT NULL AUTO_INCREMENT,
    title VARCHAR(100) NOT NULL,
    description TEXT NULL,
    created DATETIME NOT NULL,
    author VARCHAR(30) NULL,
    profile VARCHAR(100) NULL,
    PRIMARY KEY(id));

 

 

 

 

생활코딩 https://opentutorials.org/course/3161/19537

'Computer Science > Database' 카테고리의 다른 글

[MySQL] MySQL Client  (0) 2020.08.15
[Database] Internet & Database  (0) 2020.08.15
[SQL] table 완성하기  (1) 2020.08.07
[MySQL] MySQL Moniter  (0) 2020.08.05
[Database] database란?  (0) 2020.08.04

MySQL Server 접속

mysql -uroot -p 입력후 자신의 password 입력

 

 

Create database(schema)

 

mysql> CREATE DATABASE database_name;

 

Delete database

mysql> DROP DATABASE database_name;

 

Show database list in mysql

mysql> SHOW DATABASES;

 

Select database 

mysql> USE database_name;

 

Show tables

mysql> SHOW TABLES;

 

Show structure of table

mysql> DESC table_name;

 

Show all of data from table

mysql> SELECT * FROM table_name;

 

'Computer Science > Database' 카테고리의 다른 글

[MySQL] MySQL Client  (0) 2020.08.15
[Database] Internet & Database  (0) 2020.08.15
[SQL] table 완성하기  (1) 2020.08.07
[SQL] create table  (0) 2020.08.07
[Database] database란?  (0) 2020.08.04

database란? 

일반적으로 컴퓨터 시스템에 전자 방식으로 저장된 구조화된 정보 또는 데이터의 체계적인 집합

'데이터의 저장 공간' 자체를 의미하기도 함

 

※ database 의 input output 파악 (CRUD)

input : Create Update Delete

output : Read

 

DBMS(DataBase Management System) 분류 

☞ hierachical DBMS (계층형)

각 계층이 트리 형태를 띠고 1:N 관계

접근의 유연성 부족

 

 network DBMS (망형)

1:1, 1:N, N:M 관계 지원

효과적이고 빠른 데이터 추출

but 매우 복잡한 내부 포인터 사용

 

 relational DBMS (관계형) - 多 사용 

데이터베이스는 table 이라는 최소단위로 구성, 이 table은 하나 이상의 열로 구성

모든 data가 table에 저장

 

 object-oriented DBMS (객체지향형)

 

 object-relational DBMS (객체관계형)

 

database ranking :  https://db-engines.com/en/ranking

 

DB-Engines Ranking

Popularity ranking of database management systems.

db-engines.com

1위(Oracle)

- database의 절대 강자

- 관공서 / 큰 기업에서 많이 사용 (비용이 비쌈)

 

2위(MySQL)

- 오픈소스 (소스를 공개한 소프트웨어) , 무료

- 대규모의 data가 생성되지만 data의 신뢰성이 중요하지 않은 경우 사용 O 

 

5위(MongoDB)

- document store (relational DBMS 가 아님)

- MySQL이 감당하지 못하는 data 관리 O

- MongoDB가 아니더라도 relational DBMS가 아닌 database 공부하는 것을 추천

 

Spreadsheet vs relational DBMS

공통 : data를 table의 형태로 표현, 기능이 비슷

Spreadsheet : 클릭을 통해 데이터 제어 

database는  컴퓨터 언어(코드)를 통해 데이터 제어 가능

'Computer Science > Database' 카테고리의 다른 글

[MySQL] MySQL Client  (0) 2020.08.15
[Database] Internet & Database  (0) 2020.08.15
[SQL] table 완성하기  (1) 2020.08.07
[SQL] create table  (0) 2020.08.07
[MySQL] MySQL Moniter  (0) 2020.08.05

+ Recent posts