상세 컨텐츠

본문 제목

[MySQL] MySQL DB | 기본명령어

IT/MySQL

by o_zeew 2022. 5. 23. 23:41

본문

(1) DB Server

(2) DB Client

(3) MySQL 기본명령어


1. DB Server (CentOS7-2)

1. 레포지토리 다운

 

2. 레포지토리 편집

  - 5.7 버전 설치를 위해 'gpgcheck=0' 으로 수정

 

3. 서버 설치(클라이언트 자동 설치)

 

4. MySQL 실행

 

5. 초기 패스워드 확인

  - mysql 최초 접속 시 초기 패스워드 필요

 

6. MySQL 접속

   - 초기 패스워드 입력 후 새로운 패스워드 설정

   - root 패스워드 설정

 

  - mysql -u[사용자] -p[패스워드]  :  패스워드는 외부에 공개가 되기 때문에 옵션만 준 채로 Enter, 후에 패스워드 입력

 

7. DB 확인

  - [show databases;] : 현재 database 출력

 

  - [use mysql;] : database(mysql) 사용

 

  - [show tables;] : 현재 database(mysql) 테이블 출력

 

  - [select * from user;] : user 모든 테이블 내용 확인

 

  - [select host,user,authentication_string from user;] : user 테이블의 host, user, authentication_string 내용 확인

 

  - Database 권한 부여 : [grant all privileges on 'db명'.'table명' to '계정명'@'대역대' identified by '패스워드';

 

  - 권한 설정 적용

 

  - 나가기 : exit

 

  - 방화벽 열기

mysql의 3306번 포트

 

 


 

 

2. DB Client (CentOS7-1)

1. 레포지토리 설치

 

2. 레포지토리 편집

5.7버전의 gpgcheck=0 수정

 

3. 클라이언트 설치

 

4. MySQL 접속

  - mysql -u[사용자명] -p[패스워드] -h [접속 대상 IP]

 

 


 

3. MySQL 기본명령어

1. 명령어

  - [show databases;] : database 출력

 

  - select [컬럼명] from [데이터베이스].[테이블명]; : 데이터베이스에 있는 테이블 안의 컬럼 출력

 

  - create database [데이터베이스 명]; : 새로운 데이터베이스 생성

 

  - use [데이터베이스 명]; : 지정한 데이터베이스 사용

 

  - create table [테이블 명] (컬럼명1 컬럼 속성, 컬럼명2 컬럼 속성, 컬럼명3 컬럼 속성 ~) : 앞에서 지정한 데이터베이스의

    테이블 생성 후 컬럼 구성

 

  - desc [테이블 명]; : 지정한 테이블 내용 출력

 

  - insert into [테이블 명]  values(값, 값, ~) : 지정한 테이블의 컬럼에 맞춰 데이터 삽입

  - select [컬럼 명] from [테이블 명]; : 지정한 테이블 안의 지정한 컬럼 출력

 

  - 새로운 테이블 생성 후 컬럼 구성

 

  - 테이블 출력

 

  - 데이터 삽입 후 테이블 출력

 

 

2. 조건문

  - where [컬럼 명]=값; : [컬럼명]이 [값]인 경우 출력

testtb 테이블의 모든 컬럼 중 컬럼 명이 'no'인 값 중 3인 것 출력

 

  - where [컬럼 명1]=[값1] or [컬럼 명2]=[값2]; : [컬럼 명1]이 [값1]인 경우나 [컬럼 명2]가 [값2]인 경우 출력

 

  - where [컬럼 명] between [값1] and [값2] ; : [컬럼 명]이 [값1]과 [값2] 사이인 경우 출력 

 

  - where [컬럼 명] in [('값')]; : [값] 중에 [컬럼 명]이 일치하는 경우 출력

 

  - where [컬럼 명] like ['값%']; : [컬럼 명]에 일부가 [값]과 일치하는 경우 출력

  - % :  값을 지정해주지 않기 때문에 모든 값 출력

  - ex) k% = k로 시작하는 모든 값 / k_ _ = k로 시작하는 3글자

 

  - where [컬럼 명] > [값]; : [컬럼 명]이 [값]보다 큰 경우 출력

 

  - limit [값]; : [값]만큼 제한된 레코드 출력

  * 레코드의 값은 0부터 시작 → 아래는 레코드 값 0, 1, 2

 

  - limit [값1],[값2]; : [값1]에서부터 [값2]만큼의 레코드 출력

  * 0, 1, 2, 3, 4 → 5개

레코드 값 0부터 5개까지 출력
레코드값 1부터 5개까지 출력

 

  - union : 테이블 합치기

  * 뒤의 칼럼 내용을 모를 때 많이 사용

 

  * testtb 테이블에는 no 칼럼에 8 존재 X  → testtb 테이블의 칼럼값만 나오고 내용은 uniontb 테이블 내용 출력

 

  - SQL Injection : 클라이언트의 입력값을 조작하여 서버의 데이터베이스를 공격할 수 있는 공격방식

  * 1=1 은 참이므로 앞의 no=8이 없어도 모든 칼럼의 내용 출력

no=8 이 없어도 1=1 때문에 모든 내용 출력

 

  * 기본적으로는 id와 pass 가 데이터와 일치해야함

 

  * 그러나 id를 알고있을 때 ID를 입력 후 pass 칸에 1=1(true)를 입력시 값을 비교하지 않는 논리식으로 변환됨

 

  * ID를 모르는 경우도 어짜피 뒤에 오는 1=1이 True이기 때문에 모든 데이터 출력

 

'IT > MySQL' 카테고리의 다른 글

[MySQL] MySQL DB + PHP 연동  (0) 2022.05.25

관련글 더보기