학습용 공간

더미데이터 만들어주는 사이트

www.mockaroo.com/?fbclid=IwAR28uoL3VGVb6OCiMXP-pIeVQ8oWMAy9PygFhukZKGNNyxEy3qprpkzapN4 Mockaroo - Random Data Generator and API Mocking Tool | JSON / CSV / SQL / Excel Paste the header row from your CSV, TXT, or Excel file to create multiple fields at once. www.mockaroo.com generatedata.com generatedata.com Please Select John (Male Name) Jane (Female Name) Alex (any gender) John Smith Jane Smith..

DB 2020.09.12 starmk95

MySQL) 고정소수점(DECIMAL) vs 부동소수점(FLOAT, DOUBLE)

# 고정소수점 - DECIMAL 실수의 값을 정확하게 표현하기 위해 사용 정수부와 소수부로 실수표현 [문법] DECIMAL(M,D) M은 소수분분을 포함한 실수의 총 자리수를 나타낸다. D는 소수부분의 자리수를 나타낸다. (D=0이면 소수부분 갖지 않음) ex) 1.2, -8.67, 9.3421 # 부동소수점 - FLOAT, DOUBLE 실수의 값을 대략적으로 표현하기 위해 사용 Float는 4Byte, Double은 8Byte 사용 가수부와 지수부로 실수표현 ex) 1.2E, 1.2E-3 [문법1] FLOAT(P) P는 정밀도에 필요한 최소한의 비트 수 명시하는 값 [문법2] FLOAT(M, D), DOUBLE(M, D) M은 소수부분을 포함한 실수의 총 자리수 D는 소수 부분의 자리수

DB/MySQL 2020.09.12 starmk95

데이터베이스) ERD(Entity Relationship Diagram)란? ERD 표기법

# ERD(Entity Realation Diagram) Entity의 속성과 entity 간의 관계를 다이어그램으로 표현한 것이다. cf) Entity - 관라하고자 하는 정보의 실체, 객체를 의미한다. # ERD 표기법 # 식별/비식별 관계 식별 관계 : 부모 테이블의 PK가 자식 테이블에도 PK로 사용되는 경우 실선으로 표기 비식별 관계 : 부모 테이블의 PK가 자식 테이블에는 PK로 사용되지 않는 경우 점선으로 표기 # ERD 툴 www.erdcloud.com/ ERDCloud Draw ERD with your team members. All states are shared in real time. And it's FREE. Database modeling tool. www.erdcloud.com

DB 2020.09.09 starmk95

데이터베이스) 1. Database Intro

# Database Management System(DBMS) : 데이터베이스를 조작하는 별도의 소프트웨어, 이를 통해 DB를 관리하고 어플리케이션들이 DB를 공유하고 사용한다. Oracle Database, MySQL 등이 DBMS의 예시이다. 효율적, 신뢰성 있는, 편리한, 안전한 다수의 사용자들을 위한 방대한 영구적인 데이터들의 저장소를 제공한다. # 데이터베이스의 특징 - Massive - Persistent - Safe - Multi-User (동시성 문제 제어) - Convinient (선언적 쿼리문 - SQL) - Efficient - Reliable (항상 온라인으로 접근 가능함) // DB 내를 구성하는 법 # Data model : DB 내에 데이터를 어떻게 저장할 것인가? Set of..

DB 2020.09.06 starmk95

MySQL)테이블에 데이터 추가하기, 보기 (INSERT, SELECT, UPDATE, DELETE)

SQL의 CRUD - Create, Read, Update, Delete 테이블은 만들어져 있다고 할 때, 아래와 같이 데이터를 추가해보자. 먼저 테이블이 어떤 형식으로 만들어져 있는지 확인한다. # DESC mysql> DESC topic; +-------------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------------+--------------+------+-----+---------+----------------+ | id | int | NO | PRI | NULL | auto_increment | | title | varchar(100) |..

DB/MySQL 2020.08.07 starmk95

MySQL)테이블 만들기

id title description created author profile 위와 같은 데이터 타입을 갖는 테이블은 CREATE TABLE topic( -> id INT(10) NOT NULL AUTO_INCREMENT, -> title VARCHAR(100) NOT NULL, -> description TEXT NULL, -> created DATETIME NOT NULL, -> author VARCHAR(15) NULL, -> profile VARCHAR(200) NULL, -> PRIMARY KEY(id) -> ); 위 코드를 통해 만들 수 있다. 각 코드별로 주석으로 설명을 달아주면 아래와 같다. CREATE TABLE topic( /* topic이라는 이름의 테이블을 만든다.*/ -> id I..

DB/MySQL 2020.08.07 starmk95

MySQL)SQL의 뜻과 특징

Structured Query Language(SQL) 테이블 형식들과 같이 데이터들이 구조화됨 - Strctured 데이터베이스에 대한 여러 명령어들, 질의들 - Query 데이터베이스와 사용자가 모두 이해할 수 있는 언어 - Language SQL의 2가지 특징 1. 쉽다 2. 모든 관계형 데이터베이스는 sql을 통해 쿼리되도록 표준화되어있다. 테이블(표)에서 행 - row, record : 1개의 레코드 = 1개의 데이터 열 - column : 데이터의 타입이 무엇인지 알려준다. id name cost stock 1 MySQL \0 100 2 Oracle \1000 50 위를 하나의 테이블이라고 할 수 있다. 위 테이블에서 레코드(행)은 2개이고 이에 따라 데이터는 2개이다. 위 테이블의 4개의 열..

DB/MySQL 2020.08.07 starmk95

MySQL)데이터베이스(스키마) 만들기, 제거하기, 보기, 사용하기

1. 데이터베이스(스키마) 만들기 : CREATE CREATE DATABASE opentutorials; sql문도 끝에 세미콜론 붙여줘야 함 위 명령어를 통해 opentutorials라는 이름의 스키마를 만들 수 있다. 2. 데이터베이스(스키마) 제거하기 : DROP DROP DATABASE opentutorials; 위 명령어를 통해 opentutorials라는 이름의 스키마를 제거할 수 있다. 3. 데이터베이스(스키마) 보기 : SHOW SHOW DATABASES; 위 명령어를 통해 데이터베이스 서버에 만들어져 있는 스키마들을 볼 수 있다. 출력 형식은 아래와 같다. +--------------------+ | Database | +--------------------+ | information_s..

DB/MySQL 2020.08.07 starmk95

관계형 데이터베이스(Relational Database)란 무엇인가?

# 관계형 데이터베이스의 정의 관계형 데이터베이스는 데이터를 테이블(table) 형태로 저장한 데이터베이스이다. 이 테이블은 키(key)와 값(value)의 관계를 나타낸다. 데이터들간의 종속성을 관계로 표현한 것이 관계형 데이터베이스이다. 각 테이블들은 이름을 가지며 행, 열, 그에 대응하는 값들을 구성요소로 갖는다. 관계형 데이터베이스에서 이러한 테이블들은 다른 테이블들과 관계를 갖고 있다. #관계형 데이터베이스의 특징 - 데이터의 분류, 정렬, 탐색의 속도가 빠르다. - 신뢰성이 높고, 데이터의 무결성을 보장한다. - 기존에 작성된 스키마를 수정하기 어렵다. - 데이터베이스의 부하를 분석하기 어렵다. #스키마란 무엇인가? 테이블을 디자인하기 위한 청사진이다. 데이터베이스의 데이터에 대한 유형과 제약..

DB 2020.08.05 starmk95

MySQL)Bitnami를 통해 MySQL 실행시키기 (cmd 이용)

1. 먼저 Bitnami폴더의 MySQL이 저장되어있는 경로로 이동한다. C:\Users\User>cd C:\Bitnami\wampstack-7.4.8-0\mysql\bin 2. 설치 당시 설정했던 암호를 입력하기 위한 명령어 C:\Bitnami\wampstack-7.4.8-0\mysql\bin>mysql -uroot -p 이때 -uroot에서 u는 user의 약자이고, root는 접속하고자 하는 사용자의 이름이다. 사용자 root는 관리자 느낌으로 최고 권한을 가지는 사용자를 의미한다. kim이라는 사용자로 mysql에 접근하기 위해서는 -ukim 이렇게 접근한다. -p의 p는 passward의 약자로 비밀번호를 입력받기 위한 명령어이다. 3. 암호 입력 4. 실행 완료

DB/MySQL 2020.08.05 starmk95

SQLD 자격증 준비

공부 교재 : SQL 전문가 가이드 출제 사이트에서 제공하는 퀴즈 : http://www.dbguide.net/da.db?cmd=snb13_list&boardGroupUid=6&boardConfigUid=81 :: DBguide.net :: 데이터베이스 구축 운영 종합정보 www.dbguide.net 팁 : https://inzoon.tistory.com/2 SQLD 자격증 시험 3주면 충분해! - 자격증 준비 비법 공개 ( 팁&예제&기출 ) SQL 개발자 자격시험(총 50문항 - 필기 50문항) 안녕하세요. 이슈를 모으다. 이모 인사드립니다. ( 이 글은 제 경험을 바탕으로 쓴 글이므로 준비하실때 참고하시길 바라며 작성하였습니다. ) ( SQLD � inzoon.tistory.com 교재 내용 정리 :..

DB/sqld 자격증 준비 2020.08.04 starmk95
DB 2020.09.12 댓글 개 starmk95

더미데이터 만들어주는 사이트

DB/MySQL 2020.09.12 댓글 개 starmk95

MySQL) 고정소수점(DECIMAL) vs 부동소수점(FLOAT, DOUBLE)

# 고정소수점 - DECIMAL

실수의 값을 정확하게 표현하기 위해 사용

정수부와 소수부로 실수표현

 

[문법] DECIMAL(M,D)

M은 소수분분을 포함한 실수의 총 자리수를 나타낸다.

D는 소수부분의 자리수를 나타낸다. (D=0이면 소수부분 갖지 않음)

ex) 1.2, -8.67, 9.3421

 

 

# 부동소수점 - FLOAT, DOUBLE

실수의 값을 대략적으로 표현하기 위해 사용

Float는 4Byte, Double은 8Byte 사용

가수부와 지수부로 실수표현

ex) 1.2E, 1.2E-3

 

[문법1] FLOAT(P)

P는 정밀도에 필요한 최소한의 비트 수 명시하는 값

 

[문법2] FLOAT(M, D), DOUBLE(M, D)

M은 소수부분을 포함한 실수의 총 자리수

D는 소수 부분의 자리수

 

DB 2020.09.09 댓글 개 starmk95

데이터베이스) ERD(Entity Relationship Diagram)란? ERD 표기법

# ERD(Entity Realation Diagram)

Entity의 속성과 entity 간의 관계를 다이어그램으로 표현한 것이다.

cf) Entity - 관라하고자 하는 정보의 실체, 객체를 의미한다.

 

# ERD 표기법

 

# 식별/비식별 관계

식별 관계 :

부모 테이블의 PK가 자식 테이블에도 PK로 사용되는 경우

실선으로 표기

 

비식별 관계 :

부모 테이블의 PK가 자식 테이블에는 PK로 사용되지 않는 경우

점선으로 표기

 

# ERD 툴

www.erdcloud.com/

 

ERDCloud

Draw ERD with your team members. All states are shared in real time. And it's FREE. Database modeling tool.

www.erdcloud.com

 

DB 2020.09.06 댓글 개 starmk95

데이터베이스) 1. Database Intro

# Database Management System(DBMS) :

데이터베이스를 조작하는 별도의 소프트웨어, 이를 통해 DB를 관리하고 어플리케이션들이 DB를 공유하고 사용한다.

Oracle Database, MySQL 등이 DBMS의 예시이다.

효율적, 신뢰성 있는, 편리한, 안전한 다수의 사용자들을 위한 방대한 영구적인 데이터들의 저장소를 제공한다.

 

# 데이터베이스의 특징

- Massive

- Persistent

- Safe

- Multi-User (동시성 문제 제어)

- Convinient (선언적 쿼리문 - SQL)

- Efficient

- Reliable (항상 온라인으로 접근 가능함)

 

// DB 내를 구성하는 법

# Data model : DB 내에 데이터를 어떻게 저장할 것인가?

Set of recoeds, XML, graghs

 

# Schema versus Data(Instance) :

Schema는 데이터 타입, 테이블의 구조

Data는 데이터 값들, 테이블 내의 데이터

 

// 구성된 DB 내의 data들을 access하는 법

# Data Definition Language(DDL) : set up schema

 

# Data Manipulation or Query Language(DML) : querying(READ) and modifying(WRITE - INSERT, DELETE, UPDATE)

 

// DB 제작 관련

# DBMS implementer : DBMS software를 만드는 사람

# Database Designer : schma를 구성, 제작하는 사람

# Database application developer : 일반적인 개발자

 

// DB 관리, 운영

# Database administrator(DBA) : 완성된 DB의 운영과 관련

DB/MySQL 2020.08.07 댓글 개 starmk95

MySQL)테이블에 데이터 추가하기, 보기 (INSERT, SELECT, UPDATE, DELETE)

SQL의 CRUD

 - Create, Read, Update, Delete

 

테이블은 만들어져 있다고 할 때, 아래와 같이 데이터를 추가해보자.

먼저 테이블이 어떤 형식으로 만들어져 있는지 확인한다. 

# DESC

mysql> DESC topic;
+-------------+--------------+------+-----+---------+----------------+
| Field       | Type         | Null | Key | Default | Extra          |
+-------------+--------------+------+-----+---------+----------------+
| id          | int          | NO   | PRI | NULL    | auto_increment |
| title       | varchar(100) | NO   |     | NULL    |                |
| description | text         | YES  |     | NULL    |                |
| created     | datetime     | NO   |     | NULL    |                |
| author      | varchar(15)  | YES  |     | NULL    |                |
| profile     | varchar(200) | YES  |     | NULL    |                |
+-------------+--------------+------+-----+---------+----------------+

describe을 뜻하는 명령어 DESC를 통해 topic 테이블에 대한 정보를 확인한다.

 

# INSERT

mysql> INSERT INTO topic (title, description, created, author, profile) VALUES('MySQL', 'MySQL is ...', NOW(), 'Kim', 'developer');

MySQL을 title로 하는 데이터 1개를 추가하기 위해 위와 같은 명령어를 실행한다.

id는 auto_increment로 설정되어 있으므로 직접 추가하지 않아도 자동으로 오름차순으로 추가된다.

INSERT INTO 명령어를 통해 topic이라는 테이블의 각 열에 대해 VALUES에 들어가는 데이터들을 추가한다.

이때 NOW()는 datatime 형식인 created 열에 추가되는 데이터를 위한 함수인데, 데이터를 추가하는 시점의 날짜, 시각을 자동으로 입력해주는 기능을 한다. 

 

# SELECT

mysql> SELECT * FROM topic;
+----+------------+-------------------+---------------------+--------+-----------+
| id | title      | description       | created             | author | profile   |
+----+------------+-------------------+---------------------+--------+-----------+
|  1 | MySQL      | MySQL is ...      | 2020-08-07 18:04:06 | Kim    | developer |
|  2 | Oracle     | Oracle is ...     | 2020-08-07 18:06:08 | Kim    | developer |
|  3 | SQL Server | SQL Server is ... | 2020-08-07 18:07:39 | Lee    | Developer |
|  4 | PostgreSQL | PostgreSQL is ... | 2020-08-07 18:08:36 | Lee    | Developer |
|  5 | MongoDB    | MongoDB is ...    | 2020-08-07 18:09:34 | Park   | student   |
+----+------------+-------------------+---------------------+--------+-----------+
5 rows in set (0.00 sec)

또한 SELECT * FROM 명령어를 통해 topic 테이블에 있는 데이터들을 모두 확인할 수 있다.

여기서 SELECT *은 모든 데이터를 선택한다는 것을 뜻하고 (*은 주로 모든 것을 포함하는 의미),

FROM topic은 topic 테이블에서 앞 명령어를 수행할 것이라는 의미를 갖는다.

/* SELECT 뒤에 원하는 열들의 이름을 넣는 것으로
열람하고 싶은 열들로 접근해서 해당 열들의 정보만 확인도 가능하다.*/
mysql> SELECT id, title, created, author FROM topic;
+----+------------+---------------------+--------+
| id | title      | created             | author |
+----+------------+---------------------+--------+
|  1 | MySQL      | 2020-08-07 18:04:06 | Kim    |
|  2 | Oracle     | 2020-08-07 18:06:08 | Kim    |
|  3 | SQL Server | 2020-08-07 18:07:39 | Lee    |
|  4 | PostgreSQL | 2020-08-07 18:08:36 | Lee    |
|  5 | MongoDB    | 2020-08-07 18:09:34 | Park   |
+----+------------+---------------------+--------+
5 rows in set (0.00 sec)

/* WHERE 명령어를 통해 특정 데이터에 해당하는 데이터들만 확인하는 것도 가능하다.
밑의 예시의 경우, author가 kim인 데이터들만 가져온다. */
mysql> SELECT id, title, created, author FROM topic WHERE author = 'kim';
+----+--------+---------------------+--------+
| id | title  | created             | author |
+----+--------+---------------------+--------+
|  1 | MySQL  | 2020-08-07 18:04:06 | Kim    |
|  2 | Oracle | 2020-08-07 18:06:08 | Kim    |
+----+--------+---------------------+--------+
2 rows in set (0.00 sec)

/* ORDER BY 명령어를 통해 데이터를 오름차순 또는 내림차순으로도 가져올 수 있다.
DESC는 descend의 약자로 내림차순으로 데이터를 가져온다.
ASC는 ascend의 약자로 오름차순으로 데이터를 가져오며 이가 default이다. */
mysql> SELECT id, title, created, author FROM topic WHERE author = 'kim' ORDER BY id DESC;
+----+--------+---------------------+--------+
| id | title  | created             | author |
+----+--------+---------------------+--------+
|  2 | Oracle | 2020-08-07 18:06:08 | Kim    |
|  1 | MySQL  | 2020-08-07 18:04:06 | Kim    |
+----+--------+---------------------+--------+
2 rows in set (0.00 sec)

mysql> SELECT * FROM topic ORDER BY id DESC;
+----+------------+-------------------+---------------------+--------+-----------+
| id | title      | description       | created             | author | profile   |
+----+------------+-------------------+---------------------+--------+-----------+
|  5 | MongoDB    | MongoDB is ...    | 2020-08-07 18:09:34 | Park   | student   |
|  4 | PostgreSQL | PostgreSQL is ... | 2020-08-07 18:08:36 | Lee    | Developer |
|  3 | SQL Server | SQL Server is ... | 2020-08-07 18:07:39 | Lee    | Developer |
|  2 | Oracle     | Oracle is ...     | 2020-08-07 18:06:08 | Kim    | developer |
|  1 | MySQL      | MySQL is ...      | 2020-08-07 18:04:06 | Kim    | developer |
+----+------------+-------------------+---------------------+--------+-----------+
5 rows in set (0.00 sec)

/* LIMIT 명령어를 통해 해당 조건에 부합하는 데이터를 순서에 맞추어 일부만 가져오는 것도 가능하다.
아래의 예시는 해당 조건에 맞는 데이터를 1개만 가져오는 명령어이다. */
mysql> SELECT id, title, created, author FROM topic WHERE author = 'kim' ORDER BY id DESC LIMIT 1;
+----+--------+---------------------+--------+
| id | title  | created             | author |
+----+--------+---------------------+--------+
|  2 | Oracle | 2020-08-07 18:06:08 | Kim    |
+----+--------+---------------------+--------+
1 row in set (0.00 sec)

 

# UPDATE 

 

아래 예시는 topic 테이블에서 특정 데이터를 수정하는 예시이다.

이를 위해 UPDATE 명령어가 사용되었다.

mysql> SELECT * FROM topic;
+----+------------+-------------------+---------------------+--------+-----------+
| id | title      | description       | created             | author | profile   |
+----+------------+-------------------+---------------------+--------+-----------+
|  1 | MySQL      | MySQL is ...      | 2020-08-07 18:04:06 | Kim    | developer |
|  2 | Oracle     | Oracle is ...     | 2020-08-07 18:06:08 | Kim    | developer |
|  3 | SQL Server | SQL Server is ... | 2020-08-07 18:07:39 | Lee    | Developer |
|  4 | PostgreSQL | PostgreSQL is ... | 2020-08-07 18:08:36 | Lee    | Developer |
|  5 | MongoDB    | MongoDB is ...    | 2020-08-07 18:09:34 | Park   | student   |
+----+------------+-------------------+---------------------+--------+-----------+
5 rows in set (0.00 sec)

위 테이블에서 author가 Park인 데이터를 Kim으로, 그리고 profile 또한 developer로 고쳐주려고 한다.

UPDATE topic SET author = 'Kim', profile = 'developer' WHERE id = 5;

topic 테이블의 데이터를 업데이트 하는데 id가 5인 데이터의 author를 'Kim', profile을 'developer'로 바꾼다는 것이다.

위 명령어에서 주의할 점은 바로 WHERE이다.

WHERE를 빠뜨리고 위 명령어를 실행하면 topic 테이블의 모든 데이터들이 SET으로 설정한 데이터로 모두 수정되기 때문이다. 

mysql> UPDATE topic SET author = 'Kim', profile = 'developer' WHERE id = 5;
Query OK, 1 row affected (0.01 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> SELECT * FROM topic;
+----+------------+-------------------+---------------------+--------+-----------+
| id | title      | description       | created             | author | profile   |
+----+------------+-------------------+---------------------+--------+-----------+
|  1 | MySQL      | MySQL is ...      | 2020-08-07 18:04:06 | Kim    | developer |
|  2 | Oracle     | Oracle is ...     | 2020-08-07 18:06:08 | Kim    | developer |
|  3 | SQL Server | SQL Server is ... | 2020-08-07 18:07:39 | Lee    | Developer |
|  4 | PostgreSQL | PostgreSQL is ... | 2020-08-07 18:08:36 | Lee    | Developer |
|  5 | MongoDB    | MongoDB is ...    | 2020-08-07 18:09:34 | Kim    | developer |
+----+------------+-------------------+---------------------+--------+-----------+
5 rows in set (0.00 sec)

 

# DELETE

 

DELETE 명령어를 통해 테이블에서 특정 데이터를 지울 수 있다.

그러나 데이터를 삭제하는 것인만큼 신중하게 수행해야 한다.

 

id 6번 데이터로 지우기 위한 더미 데이터를 만들어서 INSERT해주었다.

해당 데이터를 지우는 명령어는

DELETE FROM topic WHERE id = 6;

으로 topic 테이블에서 id가 6인 데이터를 지우는 작업을 수행한다.

mysql> SELECT * FROM topic;
+----+------------+-------------------+---------------------+--------+-----------+
| id | title      | description       | created             | author | profile   |
+----+------------+-------------------+---------------------+--------+-----------+
|  1 | MySQL      | MySQL is ...      | 2020-08-07 18:04:06 | Kim    | developer |
|  2 | Oracle     | Oracle is ...     | 2020-08-07 18:06:08 | Kim    | developer |
|  3 | SQL Server | SQL Server is ... | 2020-08-07 18:07:39 | Lee    | Developer |
|  4 | PostgreSQL | PostgreSQL is ... | 2020-08-07 18:08:36 | Lee    | Developer |
|  5 | MongoDB    | MongoDB is ...    | 2020-08-07 18:09:34 | Kim    | developer |
|  6 | temp       | Temp is null...   | 2020-08-07 19:07:11 | null   | null      |
+----+------------+-------------------+---------------------+--------+-----------+
6 rows in set (0.00 sec)

mysql> DELETE FROM topic WHERE id = 6;
Query OK, 1 row affected (0.00 sec)

mysql> SELECT * FROM topic;
+----+------------+-------------------+---------------------+--------+-----------+
| id | title      | description       | created             | author | profile   |
+----+------------+-------------------+---------------------+--------+-----------+
|  1 | MySQL      | MySQL is ...      | 2020-08-07 18:04:06 | Kim    | developer |
|  2 | Oracle     | Oracle is ...     | 2020-08-07 18:06:08 | Kim    | developer |
|  3 | SQL Server | SQL Server is ... | 2020-08-07 18:07:39 | Lee    | Developer |
|  4 | PostgreSQL | PostgreSQL is ... | 2020-08-07 18:08:36 | Lee    | Developer |
|  5 | MongoDB    | MongoDB is ...    | 2020-08-07 18:09:34 | Kim    | developer |
+----+------------+-------------------+---------------------+--------+-----------+
5 rows in set (0.00 sec)
DB/MySQL 2020.08.07 댓글 개 starmk95

MySQL)테이블 만들기

id title description  created author profile

위와 같은 데이터 타입을 갖는 테이블은

CREATE TABLE topic(
    -> id INT(10) NOT NULL AUTO_INCREMENT,
    -> title VARCHAR(100) NOT NULL,
    -> description TEXT NULL,
    -> created DATETIME NOT NULL,
    -> author VARCHAR(15) NULL,
    -> profile VARCHAR(200) NULL,
    -> PRIMARY KEY(id)
    -> );

위 코드를 통해 만들 수 있다.

각 코드별로 주석으로 설명을 달아주면 아래와 같다.

CREATE TABLE topic(                            /* topic이라는 이름의 테이블을 만든다.*/
    -> id INT(10) NOT NULL AUTO_INCREMENT,     /* 첫번째 열의 이름은 id이고 정수형의 데이터를 받으며 10자리까지 출력한다. 해당 데이터는 반드시 포함되어야하고 누락시키면 자동으로 이전 데이터 기준 오름차순으로 넣어준다*/
    -> title VARCHAR(100) NOT NULL,            /* 두번째 열의 이름은 title이고 100글자로 보여준다, 이 열의 데이터 역시 누락되어서는 안된다.*/
    -> description TEXT NULL,                  /* description 이름의 열을 추가한다. 들어가는 데이터는 TEXT 타입이며, 반드시 입력될 필요는 없다.*/
    -> created DATETIME NOT NULL,              /* created 이름의 열을 추가한다. DATETIME 타입으로 데이터을 보여주며 누락되어서는 안된다.*/
    -> author VARCHAR(15) NULL,                /* author 이름의 열을 추가한다. 15글자로 보여주며, 누락되어도 된다*/
    -> profile VARCHAR(200) NULL,              /* profile이름의 열을 추가한다. 200글자로 보여주며, 누락되어도 된다*/
    -> PRIMARY KEY(id)                         /* id 데이터 타입을 PRIMARY KEY로 한다.
    -> );

cf) 명령어 끝에 세미콜론을 붙이지 않고 enter를 누르면 명령어가 처리되지 않고 다음 행에 이어서 명령어를 작성하게 된다.

 

INT정수형을 받는 데이터 타입이다.

NOT NULL은 해당 열의 데이터는 반드시 입력되어야 한다는 것을 의미한다.

   위의 테이블을 예시로 보았을 때 title은 반드시 필요한 데이터이므로 NOT NULL로 열을 추가하여 해당 데이터가 누락된 채로 기록되는 것을 방지할 수 있다.

AUTO_INCREMENT는 id와 같은 데이터를 입력하지 않아도 알아서 기존 데이터에 오름차순으로 데이터를 입력하여 기록해주는 명령어이다.

   예를 들어 id가 1, 2, 3인 데이터가 테이블에 있을 때, 데이터를 새로 추가하면 추가된 데이터의 id는 자동으로 4가 된다.

VARCHARCHAR형 캐릭터를 통해 데이터를 기록하는 데이터 타입이다.

TEXT는 보다 긴 텍스트를 데이터로 기록하는 데이터 타입이다.

DATETIME날짜와 시간을 기록하는 데이터 타입이다.

PRIMARY KEY(열 이름) 이는 해당 열의 데이터를 각 데이터들을 구분하는 가장 중요한 기준으로 생각하는 것이다.

   PRIMARY KEY로 지정된 열의 데이터들은 절대 중복이 발생할 수 없다.

   위 테이블에서 id 1, 2, 3인 데이터가 있을 때, id값을 2로 데이터를 추가하면 에러가 발생한다. (데이터 추가 안됨)

 

 

그 외 여러 데이터 타입들에 대해서는

https://www.w3schools.com/sql/sql_datatypes.asp

 

SQL Data Types for MySQL, SQL Server, and MS Access

SQL Data Types for MySQL, SQL Server, and MS Access The data type of a column defines what value the column can hold: integer, character, money, date and time, binary, and so on. SQL Data Types Each column in a database table is required to have a name and

www.w3schools.com

여기서 확인할 수 있다.

DB/MySQL 2020.08.07 댓글 개 starmk95

MySQL)SQL의 뜻과 특징

Structured Query Language(SQL)
테이블 형식들과 같이 데이터들이 구조화됨 - Strctured
데이터베이스에 대한 여러 명령어들, 질의들 - Query
데이터베이스와 사용자가 모두 이해할 수 있는 언어 - Language

SQL의 2가지 특징
1. 쉽다
2. 모든 관계형 데이터베이스는 sql을 통해 쿼리되도록 표준화되어있다.

테이블(표)에서 

행 - row, record : 1개의 레코드 = 1개의 데이터
열 - column : 데이터의 타입이 무엇인지 알려준다. 

 

id name cost stock
1 MySQL \0 100
2 Oracle \1000 50

위를 하나의 테이블이라고 할 수 있다.

위 테이블에서 레코드(행)은 2개이고 이에 따라 데이터는 2개이다.

위 테이블의 4개의 열은 각 열에 들어가는 데이터들의 타입을 구분해준다.

1열은 id, 2열은 name, 3열은 cost, 4열은 stock에 따라 데이터들을 구분하여 관리한다.

DB/MySQL 2020.08.07 댓글 개 starmk95

MySQL)데이터베이스(스키마) 만들기, 제거하기, 보기, 사용하기

1. 데이터베이스(스키마) 만들기 : CREATE

CREATE DATABASE opentutorials;

sql문도 끝에 세미콜론 붙여줘야 함

위 명령어를 통해 opentutorials라는 이름의 스키마를 만들 수 있다.

 

2. 데이터베이스(스키마) 제거하기 : DROP

DROP DATABASE opentutorials;

위 명령어를 통해 opentutorials라는 이름의 스키마를 제거할 수 있다.

 

3. 데이터베이스(스키마) 보기 : SHOW

SHOW DATABASES;

위 명령어를 통해 데이터베이스 서버에 만들어져 있는 스키마들을 볼 수 있다.

출력 형식은 아래와 같다.

+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| opentutorials      |
| performance_schema |
| sys                |
+--------------------+

4. 데이터베이스(스키마) 사용하기 : USE

USE opentutorials;

위 명령어를 통해 앞으로 opentutorials 스키마에 작업을 하겠다는 것을 MySQL에게 알려줄 수 있다.

해당 명령어 이후로 테이블 만들기 등은 opentutorials 스키마 내에 만들어지게 된다.

 

 

DB 2020.08.05 댓글 개 starmk95

관계형 데이터베이스(Relational Database)란 무엇인가?

# 관계형 데이터베이스의 정의

관계형 데이터베이스는 데이터를 테이블(table) 형태로 저장한 데이터베이스이다.

이 테이블은 키(key)값(value)의 관계를 나타낸다.

데이터들간의 종속성을 관계로 표현한 것이 관계형 데이터베이스이다.

 

각 테이블들은 이름을 가지며 행, 열, 그에 대응하는 값들을 구성요소로 갖는다.

관계형 데이터베이스에서 이러한 테이블들은 다른 테이블들과 관계를 갖고 있다.

 

#관계형 데이터베이스의 특징

 - 데이터의 분류, 정렬, 탐색의 속도가 빠르다.

 - 신뢰성이 높고, 데이터의 무결성을 보장한다.

 - 기존에 작성된 스키마를 수정하기 어렵다.

 - 데이터베이스의 부하를 분석하기 어렵다.

 

#스키마란 무엇인가?

테이블을 디자인하기 위한 청사진이다.

데이터베이스의 데이터에 대한 유형과 제약사항들을 스키마라고 한다.

예를 들어 필드가 특정 값을 받드시 가져야 한다는 조건이나 중복 값을 허용하지 않는다는 등의 제약조건들을 스키마라고 할 수 있다.

 

#열(column)

필드(field)라고도 불리며 항목의 속성을 나타내는 요소이다.

 

#행(row)

레코드(recoed)라고도 불리며, 각 데이터 항목들을 나타내는 요소이다.

번호 이름 학년 학과 성적
1 A 1 미디어학과 4.0
2 B 1 소프트웨어학과 3.8
3 C 2 사이버보안학과 3.4
4 D 4 수학과 4.4

위 표를 하나의 테이블이라고 한다면

번호, 이름, 학년, 학과, 성적을 나타내는 열들이 각각 하나의 필드이다.

4개의 데이터들이 각각 하나의 행(레코드)에 기록된 것을 확인할 수 있다.

 

DB/MySQL 2020.08.05 댓글 개 starmk95

MySQL)Bitnami를 통해 MySQL 실행시키기 (cmd 이용)

1. 먼저 Bitnami폴더의 MySQL이 저장되어있는 경로로 이동한다.

C:\Users\User>cd C:\Bitnami\wampstack-7.4.8-0\mysql\bin

 

2. 설치 당시 설정했던 암호를 입력하기 위한 명령어

C:\Bitnami\wampstack-7.4.8-0\mysql\bin>mysql -uroot -p

 

이때 -uroot에서 u는 user의 약자이고, root는 접속하고자 하는 사용자의 이름이다.

사용자 root는 관리자 느낌으로 최고 권한을 가지는 사용자를 의미한다.

kim이라는 사용자로 mysql에 접근하기 위해서는 

-ukim 이렇게 접근한다.

-p의 p는 passward의 약자로 비밀번호를 입력받기 위한 명령어이다.

 

3. 암호 입력

 

4. 실행 완료

DB/sqld 자격증 준비 2020.08.04 댓글 개 starmk95

SQLD 자격증 준비