SQL 문법 정리

Node.js에서 Mysql 의 사용방법 및 간단한 문법 정리

개발적금 2022. 12. 23. 08:06

안녕하세요 개발적금입니다.

오늘은 Mysql의 간단한 문법을 알아보겠습니다.

( MAC 기준으로 설명이 되어있습니다 )


 

목차

 

1. mysql 설치방법 , 실행방법

 

2. SQL , DATABASE 란..?

 

3. SQL 분류

 

4. 게시판 테이블 만들기 연습!

 


1. mysql 설치방법 , 실행방법

 

1-1) 설치

 

$ sudo brew install mysql

$ mysql --version

-> mysql을 "설치"하고 잘 설치되었는지 버젼을 확인하였습니다.

(저는 Ver 8.0.31 버전입니다.)

 

1-2) 실행

 

파일을 설치만해놓고 실행을 안하면 안되겠죠?

$ brew services start mysql

-> mysql을 실행시켰습니다.

 

1-3) 세팅

 

$sudo mysql_secure_installation

-> 세팅을 하려고 명령어를 입력하면 계정 비밀번호를 입력하라고 합니다.

-> 입력하시면됩니다.

 

1-4) 접속

 

$ mysql -u[계정아이디] -p[계정비밀번호]

-> [계정아이디]로 접속할건데 [계정비밀번호]까지 먼저 입력해주는것입니다.

접속이 완료되었을것입니다.

 

종료하시고 싶으시면 control + c 를 눌러 나오시면됩니다.

 


 

2. SQL , DATABASE 란..?

 

2-1)

- " DATABASE " 란 단순하게 데이터들을 저장하는 공간 이라고 생각하면됩니다

- 제 기준으로 설명드리면 workspace(저의 작업폴더명) 입니다.

 

- 그럼 " SQL "이란? 

-> 데이터를 조작할수 있게끔 처리해주는 명령어 입니다.

 

-> Structured Query Language의 줄임말로,

-> mysql에서 구현된 기능을 실행시키기 위해 특정한 [언어]입니다.

-> 데이터를 보관하거나,삭제하거나,수정하거나 등등.. 여러방면으로 사용됩니다.

 

Mysql은 크게보면 "RDBMS" ( Relational Data Base Management System) 입니다.

-> 관계형 데이터베이스라고도 불리며 RDBMS의 대표적인 플랫폼은 우리가 잘아는

    - Oracle

    - Mysql

    - MariaDB

    - PostgreSQL

    - Mssql ...

 

-> 비관계형 데이터베이스도 있습니다. 대표적인 플랫폼은

    - MongoDB

 

2-2) SQL 분류

 

-> 데이터를 관리하기 위해 설계된 특수 목적의 프로그래밍 언어 라고 생각하시면 됩니다.

-> 문법이라고 생각하시고 이해하면 빠를것 같습니다.

 

- 데이터 정의어(DDL)

 

    - CREATE

: CREATE DATABASE 폴더명; -> DATABASE 폴더를 만듭니다.

: CREATE DATABASE 폴더명 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

-> 폴더를 만들때 디폴트값으로 글자설정을 utf8로 하겠다 라는 말입니다.

 

: CREATE TABLE user(
user_id varchar(50) PRIMARY KEY,
user_pw varchar(50) NOT NULL,
user_name varchar(50) NOT NULL,
gender char(4) DEFAULT '남자',
register_date DATETIME DEFAULT now()
);

-> user라는 TABLE을 만들것인데, 그안의 field값은 ( )안의 값이며

-> user_id는 varchar형태의 50크기를 가진 값이고, PRIMARY KEY(고유키) 입니다.

-> user_pw와 user_name은 varchar형태의 50크기를 가진 값이고, NOT NULL이어야 합니다.

-> gender는 char형태의 4크기를 가진 값이며, DEFAULT 값은 "남자"입니다( 입력안하면 자동으로 "남자" 값이 저장됨)

-> register_date의 형태는 DATETIME(날짜 형태) 이며 DEFAULT 값은 now() 입니다.

 

    - SHOW

: SHOW DATABASES;

-> DATABASE를 다보여달라는 말입니다.

: SHOW TABLES;

-> TABLE을 다 보여달라는 말입니다.

 

    - DROP

: DROP DATABASE 폴더명;

-> 폴더를 삭제합니다.

 

    - ALTER

: ALTER TABLE store RENAME TO store2;

-> store란 TABLE 명에서 store2로 테이블명을 변경합니다.

 

    - USE

: USE 폴더명

-> 폴더명으로 들어갑니다(바라보는방향?)

-> PROJECT 라는 데이터베이스 안에 USER / BOARD 관련된 DB를 만들고 싶으면

-> 1. 우선 PROJECT 라는 데이터베이스를 만들고

-> 2. USE PROJECT; -> PROJECT를 바라보게 한 다음

-> 3. CREATE TABLE USER () , CREATE TABLE BOARD() 를 통해 진행합니다.

 

    - DESC 폴더명;

: 해당 폴더의 필드명을 확인할수 있습니다!

: ex) : 

CREATE TABLE user(
user_id varchar(50) PRIMARY KEY,
user_pw varchar(50) NOT NULL,
user_name varchar(50) NOT NULL,
gender char(4) DEFAULT '남자',
register_date DATETIME DEFAULT now()
); -> DESC user; 를 하게되면

 

 

-> 콘솔창에 출력이 됩니다. ( 저는 기존에 만들었던것이라 필드명이 조금 다를수있습니다 )

 

 

- Field Type

 

    - 숫자형

: INT -> 4byte

 

    - 문자형

: CHAR

-> 255bye ( 고정데이터를 사용할때 )

: VARCHAR

-> 255byte ( 가변데이터를 사용할때 )

: TEXT

-> 65535byte ( 내용을 담을때 )

 

    - 날짜형

: DATE

-> 년 월 일 사용할때

: TIME

-> 시간 사용할때

: DATETIME

-> 년월일 시간 ( yyyy-mm-dd hh:MM:ss) 8byte

: TIMESTAMP

-> 년월일 시간(interger) 4byte

: YEAR

-> 년...

 

 - KEY

 

: PRIMARY KEY

-> 중복값 안되고 NULL 값 안됩니다. 테이블당 하나만 넣을수 있습니다!

: UNIQUE

-> 중복값 안됩니다! NULL 값은 한번만 가능합니다. 테이블당 여러개를 넣을수 있습니다.

: AUTO_INCREMENT

-> 1씩 index가 증가하며 자동생성됩니다.

 

- 데이터 조작어(DML)

: 데이터 필드까지 테이블 만들었으면, 그이후에 CRUD라고 해야하나요?

: 데이터를 만들고 수정하고 삭제하고... 이런것을 하는 조작어입니다. 실제적인 SQL 문법입니다.

 

    - SELECT

: 내용들을 볼때 사용됩니다.

: SELECT user_id, user_pw, user_name, gender FROM user;

-> user테이블에 있는 user_id,user_pw,user,name,gender를 보여줘!

: SELECT * FROM user;

-> user 테이블에 있는 모든 Field의 값을 보여줘

SELECT * FROM user; 의 값들!

    - WHERE 절

: 검색할때 조건을 붙힙니다

: SELECT * FROM user WHERE user_id="0000";

-> user의 모든 필드와 필드값을 보여주는데, user_id가 "0000"인것만 보여줘!

 

WHERE절의 예시

 

    - INSERT

: 실제 Field의 값들을 넣을때 사용합니다

: INSERT INTO [테이블명](필드1,필드2,....) values (필드1의값,필드2의값....)

: INSERT INTO user(user_id, user_pw,user_name,nickname,gender)

                          values ("개발적금","1234","개발적금","개발은너무어려워","남자");

 

    - UPDATE

: 수정할때 사용됩니다!

: UPDATE user SET gender="여자" WHERE user_id="개발적금";

-> user TABLE에서 user_id "개발적금"의 gender를 "여자"로 바꿉니다.

 

    - DELETE

: DELETE FROM user WHERE user_id="개발적금";

-> 말그대로 user_id 개발적금을 user TABLE에서 삭제시킵니다.

 


여기까지 간단하게 알아보았습니다. 잊어버리지 않게 많이 연습하고

사용하는게 좋을것 같습니다.

번외로 sql 만든것을 backup하는 기능을 마지막으로 소개해드리겠습니다.

 

- BACKUP

: mysql : exit -> [ mysqldump -u계정명 -p 데이터베이스명 > backup.sql ]
: backup.sql에 내가만들었었던 데이터베이스가 저장됩니다.

: %주의%  폴더 경로설정을 확실하게 하고 가야합니다!
: CREATE DATABASE 데이터베이스명
: USE [TABLE명]; 으로 지정해주고
: SOURCE ./bakup.sql 하면 backup.sql을 불러옵니다!

 

감사합니다.