728x90
extension 준비
1. visual studio code에서 extension 탭을 열어 MySQL을 install 한다.
2. Database 탭을 열어 좌측 상단의 ' + ' 버튼을 클릭한다.
- ' connect ' 탭에서 빨간 별( * )이 있는 항목을 입력한 후 ' + connect ' 버튼을 클릭한다.
확장 프로그램 ' Mysql ' 사용하기
확장자 sql 생성
- 데이터 베이스를 다룰 수 있는 파일이다.
- sql 명령어를 사용해서 다룬다.
- sql명령어
- 데이터베이스에 구현된 기능을 실행시키기 위해서 사용하는 특정한 언어이다.
- 데이터를 보관하거나 저장하거나 삭제 또는 수정을 할 수 있다.
- sql은 데이터를 다루는 사람에게 있어서 가장 기본적인 언어라고 할 수 있다.
- sql명령어
- 데이터베이스
- 관계형 데이터베이스(RDB)
- 테이블, 행, 열의 정보를 구조화하는 방식이다.
- RDB에는 테이블을 조인하여 정보 간 관계 또는 링크를 설정할 수 있는 기능이 있어, 여러 데이터 포인트 간의 관계를 쉽게 이해하고 정보를 얻을 수 있다.
- 관계형 데이터베이스 모델 : mysql, oracle, mariaDB 등
- 비 관계형 데이터베이스(NoSQL)
- 대부분의 전형적인 데이터베이스 시스템에서 찾을 수 있는 행과 열로 이루어진 테이블 형식 스키마를 사용하지 않는 데이터베이스이다.
- 비관계형 데이터베이스는 저장되는 데이터 형식의 특정 요구 사항에 맞게 최적화된 스토리지 모델을 사용한다.
- 예를 들어, 데이터는 단순 키/값 쌍, JSON 문서 또는 모서리와 꼭짓점으로 이루어진 그래프로 저장될 수 있다.
- 비관계형 데이터베이스 모델: MongoDB 등
- 관계형 데이터베이스(RDB)
sql 문
데이터 타입
- 숫자형, 문자형, 날짜형, 이진데이터 타입이 있다.
숫자형
- INT: 4byte
- 범위: 21억
문자형
- VARCHAR: 255byte
- 가변 데이터: 우리가 선언한 범위보다 작으면 알아서 해당 데이터의 크기만큼으로 맞춰준다.
- CHAR: 255byte
- 고정 데이터: 우리가 선언한 범위를 다 차지한다. 선언한 범위가 작으면 남은 공간은 빈 공간으로 놔둔다.
- TEXT: 65535byte
날짜형
- DATE: ' 년 월 일 '을 표시할 수 있다.
- TIME: 시간을 표시한다.
- DATETIME: ' 년 월 일 시간 '을 표시한다. 형식은 (YYYY-MM-DD-HH:MM:SS)으로 구성된다.
- TIMESTAMP: ' 년 월 일 시간 '을 표시한다.(INTEGER) 4byte
이진데이터
- BLOB: 이미지
KEY
- PRIMARY KEY: 중복 입력 안되고, 테이블에 하나씩만 사용할 수 있다. NULL값도 안된다.(고유키)
- UNIQUE: 중복 입력 불가. 키를 여러 개 줄 수 있다. NULL값도 사용이 가능하다.
데이터 정의어 (DDL)
CREATE
- DATABASE, TABLE, SCHEMA,VIEW, INDEX등을 정의한다.
- 데이터 베이스를 생성
- create database [데이터베이스 이름]
-- 적용 시키기 위해서는 sql문 위에 ' ▷ Execute '를 클릭한다.
-- 위의 sql문에 세미콜론 (;)이 찍혀야 활성화가 된다.
▷ Execute
CREATE DATABASE testmysql;
- 테이블을 생성
- create table[테이블 이름] ([필드명 데이터 타입][필드명 데이터타입])
CREATE TABLE testTable(
id INT AUTO_INCREMENT PRIMARY KEY,
tel VARCHAR(20)
);
SHOW
- 모든 데이터베이스를 확인하는 명령어
- show databases;
SHOW DATABASES;
- 테이블을 확인하는 명령어
- show tables: 모든 테이블을 조회
-- 테이블을 확인하기 위해서는 먼저 USE 명령어로 사용할 데이터베이스를 지정해야한다.
-- 사용할 데이터베이스 지정
USE testsql;
-- 데이터베이스 안에 있는 테이블 확인
SHOW TABLES;
DROP
- 데이터베이스를 삭제하는 명령어
- drop database [데이터베이스 이름]
DROP DATABASE testsql;
- 테이블을 삭제하는 명령어
- drop table [데이터베이스 이름]
DROP TABLE testTable;
ALTOR
- 테이블 이름 바꾸기
- ALTER TABLE [기존 테이블명] RENAME [새로운 테이블 이름]
ALTER TABLE user RENAME users;
- 컬럼의 이름 바꾸기
- ALTER TABLE [테이블 이름] CHANGE [기존 컬럼 이름] [새로운 컬럼 이름] type
ALTER TABLE users CHANGE user_name newcal VARCHAR(20);
- 컬럼의 타입 또는 타입의 크기를 변경한다.
- ALTER TABLE [테이블 이름] MODIFY [컬럼이름] TYPE
- 데이터 유형 변경: 값이 없이 비어있는 컬럼만 가능하다.
- 컬럼 데이터 크기 확대: 가능하다.
- 컬럼 데이터 크기 축소: 컬럼이 보유한 값의 크기보다 작아질 경우 오류가 발생한다.
- ALTER TABLE [테이블 이름] MODIFY [컬럼이름] TYPE
ALTER TABLE users MODIFY newcal CHAR(20);
- 해당 필드를 테이블에서 제거한다.
- ALTER TABLE [테이블 이름] DROP [필드이름]
- 해당 테이블의 AUTO_INCREMENT를 초기화 시켜준다.
- ALTER TABLE [테이블 이름] AUTO_INCREMENT = 0, 1
- 해당 테이블의 맨 뒤로 필드를 추가한다.
- ALTER TABLE [테이블 이름] ADD [필드이름] TYPE
- 해당 테이블 맨 앞으로 필드를 추가한다.
- ALTER TABLE [테이블 이름] ADD [필드이름] TYPE first
- 지정한 테이블에 새로운 컬럼을 추가하고 타입을 지정한다.
- ALTER TABLE [지정한 테이블 이름] ADD CULUMN [추가할 컬럼명] [타입]
ALTER TABLE post ADD COLUMN userPW INT;
- 다른 테이블의 컬럼을 참조한다.
- ALTER TABLE [참조 받는 테이블 이름] ADD CONSTRAINT [제약조건 명령어(임의값)] FOREIGN KEY ([참조받는 테이블의 컬럼]) REFERENCES [참조할 테이블 이름] ([참조할 테이블의 컬럼])
ALTER TABLE post ADD CONSTRAINT fk_user FOREIGN KEY (userID) REFERENCES user (id);
DESC
- 테이블의 필드를 한 줄로 확인한다.
- DESC [테이블 명]
DESC post;
데이터 조작어 (DML)
SELECT
- 테이블 전체 값을 조회
- SELECT * FROM `[조회할 테이블 이름]`
SELECT * FROM `boarder`;
- 필드 1, 필드 2에 대한 테이블 전체 조회
- SELECT 필드1,필드2 FROM [테이블 명]
SELECT id, likes FROM boarder;
- 필드 1, 필드 2에 대한 테이블에서 원하는 값을 조회
- SELECT 필드1,필드2 FROM [테이블 명] WHERE [필드명] = [검색하고 싶은 값]
SELECT id, likes FROM boarder WHERE id = 1;
- 필드에 해당되는 내용 중 AB~로 시작하는 데이터 조회
- SELECT * FROM [테이블명] WHERE [필드명] LIKE "%AB"
- 필드에 해당된는 내용 중 ~AB로 끝나는 데이터 조회
- SELECT * FORM [테이블명] WHERE [필드명] LIKE "AB%"
- ORDER BY 필드명 기준으로 DESC (내림차순), ASC(오름차순)으로 정렬
- SELECT * FROM [테이블 이름] ORDER BY [필드 이름] DESC 또는 ASC
- 테이블 조회시 참조키를 가지고 관계가 맺어져있는 테이블을 조건에 맞춰 조회
- SELECT * FROM [참조한 테이블 이름] INNER JOIN [참조할 테이블 이름] ON [참조한 테이블명.컬럼명] = [참조할 테이블명.컬럼명] WHERE [조건을 검색할 테이블명.컬럼명] = [조건내용]
- 원하는 컬럼의 값을 가져올 수 있다.
- SELECT user.id, post.title FROM user INNER JOIN post ON user.id = post.userID WHERE user.id = 1
INSERT
- 테이블에 값을 추가
- INSERT INTO [테이블 이름] (필드 1, 필드 2) VALUES(필드 1의 값, 필드 2의 값)
- 여러 개의 값을 한 번에 넣으려면 VALUES 뒤에 값을 컴마( , ) 로 구분하여 넣으면 된다.
- INSERT INTO [테이블 이름] (필드 1, 필드 2) VALUES(필드 1의 값, 필드 2의 값),(필드 1의 값, 필드 2의 값)
UPDATE
- 테이블 명에서 필드명 1과 필드명 2를 새로운 값1과 새로운 값2로 바꾼다.
- UPDATE [테이블 이름] SET [필드명] = "수정할 값" [필드명 2] = "수정할 값2" WHERE 필드 = "값"
DELETE
- 테이블의 필드가 해당 값인 열을 삭제한다.
- DELETE FROM [테이블 이름] WHERE [필드명] = "값"
데이터 제어어 (DCL)
이 내용은 추후 확인하기로 한다....
더보기
- 관계형 데이터베이스
- https://cloud.google.com/learn/what-is-a-relational-database?hl=ko
- 비관계형 데이터베이스
728x90
'블록체인_9기 > 💚 Node.js' 카테고리의 다른 글
37강_230524_Node.js(web socket, socket.io) (0) | 2023.05.31 |
---|---|
34강_230519_(ORM, Sequelize, ajax, Sequelize모델, 모델간의 관계) (0) | 2023.05.24 |
32강_230516_Node.js(암호화, Hash 암호화, crypto, 해시화, salt, 키 스트레칭 기법, Bcrypt) (2) | 2023.05.19 |
31강_230515_Node.js(Refresh token, Access token, cookie-parser) (0) | 2023.05.17 |
30강_230512_Node.js(JWT토큰, dotenv, express-session) (0) | 2023.05.16 |