TIL/디지털트윈

05.01 디지털 트윈 부트캠프 14일차

saramnim 2023. 5. 1. 09:40
728x90

코로나로 자가격리 중이지만 몸 상태는 괜찮아 온라인으로 강의를 들었다!

자가격리 동안 매일 늦게 일어나다가 원래대로 일어나려니 힘들다!


DataBase

전기가 있을 때 1 = true

전기가 없을 때 0 = false

 

8bits = 1 byte

ex) 01000001

 

스키마란?

데이터베이스 구조를 개체, 속성, 관계로 정의

외부스키마

사용자 입장에서 정의한 데이터베이스의 논리적 구조, 데이터들을 어떤 형식, 구조, 화면을 통해 사용자에게 보여줄지에 대한 정의

개념스키마

데이터베이스의 전체적인 논리적 구조

내부스키마

물리적 저장장치의 입장에서 본 데이터베이스의 구조

 

SQL

데이터베이스에서 데이터를 정의, 조작, 제어하기 위해 사용되는 언어

= 구조화된 질문을 하는 언어

 

SQL의 기능

CRUD

Create, Read, Update, Delete

DLC : 데이터베이스에 접근할 수 있는 가용자들의 둰한을 관리하는 명령어

DDL : 테이블 CRUD를 위한 명령어

DML : 실제 테이블에 있는 데이터를 CRUD하기 위한 명령어

 

생성 쿼리

INSERT INTO 테이블이름(컬럼이름1, 2, 3, ...) VALUES (데이터값1, 2, 3, ...)

 

수정 쿼리

UPDATE 테이블 SET 칼럼이름1 = 데이터값1, 컬럼이름2 = 데이터값2, ... WHERE 필드이름 = 데이터값

 

삭제 쿼리

DELETE FROM 테이블이름 WHERE 필드이름 = 데이터 값

 

조회 쿼리

select 컬럼 from 테이블 where 조건

select, join, sub query, group query, condition

 

데이터베이스 VS 스키마

테이블: 우리가 사용할 데이터를 기록하는 최종적인 곳, 서로 연관있는 데이터들을 그룹핑한 것

데이터베이스 = 스키마: 특정한 의미를 갖는 여러 개의 table들이 모여있는 것, 폴더

 

권한

mysql -u root -p

mysql을 실행하되 u(유저)는 root라는 이름을 사용, -p 패스워드 사용.

 


mysql 설치

https://dev.mysql.com/downloads/installer/

 

MySQL :: Download MySQL Installer

Select Operating System: Select Operating System… Microsoft Windows Select OS Version: All Windows (x86, 32-bit) Windows (x86, 32-bit), MSI Installer 8.0.33 2.4M (mysql-installer-web-community-8.0.33.0.msi) MD5: 2a330cf24915964cca87e04dbb34e5d3 | Signatu

dev.mysql.com

위에꺼는 web전용으로 아래꺼를 깔아줘야 한다.

 

설치파일을 열고 custom을 누른 후, Mysql server, Mysql Workbench, Samples and Examples 설치(excute)

비번은 앞으로 쓸 간단한 비번을 사용해도 된다. ex) 1234

모두 마쳤으면 고급시스템설정 - 환경변수 - path - 편집 - 새로만들기 - C:\Program Files\MySQL\MySQL Server 8.0\bin

- 확인

 

cmd

mysql -u root -p

mysql -u root -p -hlocalhost

mysql -u root -p -h127.0.0.1

위 셋 중 하나로 로그인 가능, 비번은 아까 입력했던 비번 그대로 입력

 

show databases;

show variables like 'datadir%';

show variables like 'character\_%';

위의 코드들로 샘플 예제를 사용해 문법을 확인해볼 수 있다.

status;

위 코드로 mysql의 상태를 알 수 있다.

delimiter !

위 코드를 이용하면 ;의 역할을 수행하는 기호를 !로 바꿀 수 있다.

원래대로 바꾸려면 delimiter ;를 사용하면 된다.

 

create database webdb;

데이터베이스 webdb 생성

drop database webdb;

데이터베이스 webdb 삭제

use mysql;

mysql 데이터베이스 선택

select database();

선택한 데이터베이스 보기

select user();

선택한 데이터베이스의 유저 보기

exit

입력 시 mysql에서 나갈 수 있다.

 

cmd에서

ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY '새비번';

새 비번에 1234 같은 새로운 비번을 입력하면 비밀번호를 바꿀 수 있다.

 

mysql은 대소문자를 구분하지 않으며, ;으로 문의 끝을 나타낸다.

 

hash함수를 만들어주는 사이트

https://sha256algorithm.com/

 

Sha256 Algorithm Explained

Sha256 algorithm explained online step by step visually

sha256algorithm.com


새로운 table 생성하기

mysql> use webdb;
Database changed
mysql> show tables;
Empty set (0.01 sec)

 

먼저, table을 생성할 데이터베이스를 지정한다.

 

mysql> create table student_info(
    -> code char(5) not null,
    -> title varchar(50) not null,
    -> writer varchar(20),
    -> price int not null,
    -> primary key(code)
    -> );
Query OK, 0 rows affected (0.03 sec)

 

다음으로, create 명령어를 이용한다.

create table 테이블이름(열이름 제한길이);

위와 같이 테이블을 생성하기 위해 필요한 요소들인 열 이름, 제한 길이를 입력한다. 

 

mysql> show tables;
+-----------------+
| Tables_in_webdb |
+-----------------+
| student_info    |
+-----------------+
1 row in set (0.00 sec)

 

show tables로 확인해보면 작성한 테이블인 student_info를 볼 수 있다.

 

mysql> desc student_info;
+--------+-------------+------+-----+---------+-------+
| Field  | Type        | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| code   | char(5)     | NO   | PRI | NULL    |       |
| title  | varchar(50) | NO   |     | NULL    |       |
| writer | varchar(20) | YES  |     | NULL    |       |
| price  | int         | NO   |     | NULL    |       |
+--------+-------------+------+-----+---------+-------+
4 rows in set (0.00 sec)

 

desc를 이용하면 해당 테이블의 세부 사항을 확인할 수 있다.

 

mysql> alter table student_info rename stu_info;
Query OK, 0 rows affected (0.02 sec)

mysql> show tables;
+-----------------+
| Tables_in_webdb |
+-----------------+
| stu_info        |
+-----------------+
1 row in set (0.00 sec)

 

alter table 원래이름 rename 바꿀이름

위 명령어를 사용하면 table의 이름을 바꿀 수 있다.

 

Mysql 데이터타입

문자형 데이터 타입

char(n)

고정 길이 데이터 타입 - 지정된 길이보다 짧은 데이터 입력될 시 나머지 공간 공백으로 채워진다.

varchar(n)

가변 길이 데이터 타입 - 지정된 길이보다 짧은 데이터 입력될 시 나머지 공간은 채우지 않는다.

tinytext(n) text(n) mediumtext(n) longText(n)

문자열 데이터 타입

JSON

문자열 데이터 타입

 

숫자형 데이터 타입

tinyint(n) mallint(n) int(n)

정수형 데이터타입(1byte)

float(길이, 소수)

부동 소수형 데이터 타입(4byte) - 고정 소수점 사용 형태

 

날짜형 데이터 타입

date 

날짜(년도, 월, 일) 형태의 기간 표현 데이터 타입

time 

시간(시, 분, 일) 형태의 기간 표현 데이터 타입

year

년도 표현 데이터 타입

datetime

날짜와 시간 형태의 기간 표현 데이터 타입

 

이진 데이터 타입

binary(n) byte(n)

char 형태의 이진 데이터 타입

varbinary(n)

varchar 형태의 이진 데이터 타입

blob(n)

이진 데이터 타입

 

연산자

사칙연산(+ - * / % mod)

select num1 사칙연산자 num2;

 

논리연산(> < = >= <= = != <> true false !true !false not 1)

select num1 논리연산자 num2;

select 논리연산자;

 

and, && 

피연산자가 모두 참일때만 결과가 참

or, ||

피연산자 중 하나라도 참이면 결과는 참, 모두 거짓이면 결과는 거짓

 

A와 a의 비교

mysql은 대소문자를 구분하지 않아 아스키코드값으로 계산 시 문자가 숫자보다 코드값이 더 높다.

숫자와 문자가 섞여서 계산될 때 문자는 0으로 처리되므로 'A' > 1의 결과는 0이다.

 

in

괄호 안에 값들 중 존재

 

not in

괄호 안의 값들 중 존재 x

 

between 최소값 and 최대값

괄호 안 값들 중 존재

 

is

is의 양쪽 값이 모두 true 또는 false일 때 결과는 true

 

is not

is의 양쪽 값이 true와 false일 때 결과는 true

 

Like(%, _)

%: 1 개의 문자 이상

ex) select 'hello' like 'h%';

 

_: 1 개의 문자 대치

select 'good' like '_o_'

 

select adddate('2020-04-05', interval -5 month);

정해진 날짜에서 5달 전 출력

 

select hour(now()), minute(now()), second(now());

현재 시간, 분, 초 출력

 

select now();

현재 출력

 

select date_format( now(), '%y,%m,%d,%T');

정해진 양식대로 날짜 출력

 

select date_format( now(), '%Y년,%M월 ,%D일 ,시간: %T');

정해진 양식대로 날짜 출력

 

select timediff ('2021-06-21 15:20:35', '2023-04-05 16:34:41');

두 날짜 사이의 거리

 

조건문

select if(10>12 , 'ten','twelve');
select ifnull(null,'ok');
select ifnull('','ok');
select ifnull('A','ok');

맨 마지막 A 출력

 

728x90
반응형