상세 컨텐츠

본문 제목

[MySQL] 다운로드 | 서버초기화 | 명령어 | 암호변경 | 사용자생성 | 권한부여 | 경로지정 | TABLE | 기본구조 | 실습

IT/DataBase

by o_zeew 2024. 4. 29. 17:44

본문

24.04.29 51일차

 

https://www.mysql.com/

 

MySQL

MySQL HeatWave is a fully managed database service for transactions, real- time analytics across data warehouses and data lakes, and machine learning services, without the complexity, latency, and cost of ETL duplication. It is available on OCI, AWS, and A

www.mysql.com

 

MySQL

쿼리 작성

 - 대소문자를 구별하지 않지만 비교문의 문자열은 대소문자를 구별함

 - 문자열은 작은 따옴표 사용

 

SQL 명령의 분류

DDL, DCL, DML, DQL 로 나뉘지만 굳이 구분하여 외울 필요X (가끔 회사에서 구분하는 경우도 있음)

 

DDL : CREATE(구조 생성), ALTER(구조 변경), DROP(삭제)

DCL : GRANT(권한 부여), REVOKE(권한 회수)

DML : INSERT(생성), UPDATE(수정), DELETE(삭제), MERGE(병합), CALL(

DQL : SELECT(조회)

DTL : COMMIT(확정), ROLLBACK(작업 취소, ctrl+z랑 동일)

 

 

MySQL 다운로드

사이트 하단의 다운로드
C드라이브 아래에 mysql 폴더 생성 후 넣기
해당 폴더에서 검색창에 cmd입력

 

*데이터베이스는 실시간으로 수정을 많이 하기 때문에 일반 USB에 담으면 수명이 급격하게 떨어짐(SSD 제외)

 

Mysql 서버 초기화

- C:\mysql\bin\mysqld --initialize-insecure (암호 설정없이 초기화)

 

정상적으로 서버가 실행되었다면 mysqld를 입력하면 해당 명령 프롬프트창에서 커서가 움직이지 않음

(실습때만 photoble 창을 사용하기 때문에 이렇게 사용)

 - c:\mysql\bin\mysqld  (mysql 서버 시작)

해당 창은 끄지 않아야한다

 * 위의 커서가 움직인다면

 작업관리자 - 서비스 - MYSQL80 - MYSQL80에서 설정 변경 후 mysqld 입력

 

 

명령어

dir : 현재 디렉토리의 목록 보기

cls : 화면을 깨끗하게 정리

cd \경로명 : 최상위 경로에 있는 "경로명"으로 이동

cd 경로명 : 현재 경로의 하위 경로인 "경로명"으로 이동

cd ..\경로명 : 현재 경로의 상위 경로로 이동 후 지정한 "경로명"으로 이동

 

 - 새로운 창에서 c:\mysql\bin > mysql -u root  (mysql 서버 접속)

 

select user(); : 현재 접속해서 사용하는 유저 검색

 

select database(); : 데이터베이스 검색

 * 세미콜론을 깜빡했을 때는 이어서 치면 된다

사용하는 데이터베이스가 없음(NULL)

 

show databases; : 현재 존재하는 데이터베이스 확인

 

use database명 : 해당 데이터베이스를 사용

exit : 종료

 

 

 


사용자 암호 변경

[ALTER USER root@localhost IDENTIFIED BY "비밀번호"; : root 유저의 암호 변경 (root@localhost가 공식 이름)

비밀번호 변경 후 나가기
다시 로그인 시 암호 입력하지 않으니 에러뜸

-p : 비밀번호 입력 옵션

 


사용자 추가 및 암호변경

유저 생성 : CREATE USER 아이디@호스트 [IDENTIFIED BY 암호];

 * 유저는 root 만 생성할 수 있음(일반 유저가 일반 유저 생성 불가)

확인

 


권한 부여

권한 부여 : GRANT [권한종류 | ALL] PRIVILEGES ON db명.테이블명 TO 아이디@호스트;

즉시 적용 : flush privileges;

현재 hong은 mysql에 권한이 없음
hong에게 모든 db의 모든 object에 대한 권한 부여 및 즉시 적용
적용 완료

 


경로 지정

기존 경로(%path%)에 새로운 경로를 연결(;)

아무 경로에서나 사용 가능

 


샘플데이터 사용

mysql -u 유저명 -p < 파일명 : mysql에 파일 추가

사용자와 데이터베이스를 한번에 확인 가능
db의 테이블 확인

 


TABLE

테이블 목록 확인 : SHOW TABLES;

테이블명 변경 : RENAME TABLE 원본테이블명 TO 변경테이블명

비어있는 테이블

desc 테이블명 : 테이블 안의 구조 확인

Null : 공백의 허용 여부 

 

auto_increment : 자동 증가

sale table
product table

emp 테이블을 만들면서 다른 테이블에 있는 정보 10개만 가져오기

 

drop table 테이블명 : 테이블 삭제

 


기본 구조

SELECT * | 컬럼명들

FROM 테이블명

WHERE 조건

GROUP BY : ~별(지역별, 성별, 나이별)

HAVING 조건

ORDER BY 컬럼명 [ASC | DESC]

LIMIT 시작위치, 개수

 

별칭 사용

 


실습

1. offices(사무실테이블)의 구조를 조회하시오.

 

2. 사무테이블에서 사무실코드(officeCode), 연락처(phone)을 조회

 

3. 주문정보(orders)에서 주문번호(orderNumber), 주문일(orderDate), 선적일(shippedDate)를 조회

 

4. 지불테이블(payments)에서 고객번호(customerNumber), 지불일자(paymentDate), 지불액(amount)를 조회

 

5. 지불액이 10,000원 미만인 정보의 고객번호, 지불일자, 지불액을 조회

 

6. 지불액이 10000~15000인 정보의 고객번호, 지불일자, 지불액을 조회

&& 대신 and를 사용한다
between도 사용 가능

 

 6-1. 지불일자 순으로 오름차정렬하여 조회

 

 6-2. 조회할 구역 설정

0번째에서 20개만 출력

 

7. 직원의 이름(firstName)이 'p'로 시작되는 직원들의 정보 조회

 

8. 이메일 주소가 ".com"으로 끝나는 직원들의 이름과 이메일주소를 조회

 

9. 연락처에 "555"가 포함되어있는 사무실(offices) 정보를 조회

 

관련글 더보기