MySQL
-
[Docker] mysql 볼륨 설정Server&Infra/Docker 2024. 9. 20. 22:32
이번 게시글에서는 도커 mysql에 볼륨을 설정하여, 볼륨에 데이터가 보존되는지 확인해볼 것이다. 목표.1. docker에서 mysql 이미지를 다운로드 받아 볼륨을 설정하고 컨테이너를 실행한다.2. mysql 컨테이너에 확인용 데이터를 주입한다.3. 기존 컨테이너를 내리고, 새로운 컨테이너에 볼륨을 설정하고 실행한다.4. 볼륨에 데이터가 보존되어있는지 확인한다. docker hub에서 mysql 이미지를 다운로드 받는다. 실습을 위해 mysql 5.7 버전을 사용한다.https://hub.docker.com/_/mysql/tags?page_size=&ordering=&name=5.7 # docker pull mysql:5.7 제대로 다운로드 되었는지 확인하고 mysql 컨테이너를 실행한다. ..
-
[mysql] order by 시 null값을 목록 끝으로 정렬DataBase/SQL 2022. 12. 22. 20:22
mysql에서 데이터 조회간 null값은 제일 끝으로 정렬 처리하는 방법을 알아보자. select * from tb_userinfo order by age asc; 위와 같은 상황에 age가 null일 경우 상단에 모여있는 모습을 볼 수 있다. 이런경우에 NULL 값을 뒤로 정렬시키기 위해서는 아래의 쿼리를 사용하면 문제를 해결할 수 있다. select * from tb_userinfo order by age is null asc, age asc; 만약 나이 기준으로 내림차순으로 정렬하고 싶다면 asc에서 desc로 바꿔주면 간단하게 해결된다. select * from tb_userinfo order by age is null asc, age desc;
-
조인(Join)DataBase/SQL 2022. 11. 13. 10:00
조인이란 두개 이상의 테이블을 엮어서 원하는 데이터를 추출할 수 있도록 사용되는 개념으로 마치 하나의 테이블인 것 처럼 보여준다. 조인의 종류 INNER JOIN SELECT 조회할 컬럼 FROM 테이블1 (INNER) JOIN 테이블2 ON 테이블1.컬럼 = 테이블2.컬럼 [WHERE 추가조건] -- inner join(교집합) select mem_idx, mem_userid, mem_name, mem_hp, mem_gender, pro_age, pro_mbti from tb_member inner join tb_profile on tb_member.mem_idx = tb_profile.pro_idx; OUTER JOIN SELECT 조회할 컬럼 FROM 테이블1 FULL OUTER JOIN 테이블2 ..
-
데이터 제어어(DCL)DataBase/SQL 2022. 11. 12. 20:40
데이터 제어어(DCL : Data Control Language) 데이터 베이스에 접근하거나 권한을 주는 등의 역할을 하는 언어를 말하며, 데이터의 보안, 무결성, 회복등의 정의하는데 사용한다. 명령어 - GRANT(권한 부여) : 특정 데이터 베이스 사용자에게 작업의 권한을 부여한다. - REVOKE(권한 철회) : 특정 데이터 베이스 사용자에게 작업의 권한을 철회한다. 권한 부여 GRANT 권한 ON 테이블 TO 사용자 [WITH GRANT OPTION]; GRANT UPDATE ON 학생 TO 장길산 [WITH GRANT OPTION]; -- 장길산에게 학생테이블에 대한 UPDATE에 대한 권한을 부여하라 권한 철회 REVOKE 권한 ON 테이블 FROM 사용자 [CASCADE CONSTRAINT]..
-
데이터 조작어(DML)DataBase/SQL 2022. 11. 12. 20:10
데이터 조작어(DML : Data Manipulation Language) 데이터 베이스에 입력된 레코드를 조회하거나 입력, 삭제, 갱신의 역할을 하는 언어를 말한다. 데이터 베이스 사용자가 질의어를 통해 데이터를 실질적으로 처리하는 데 사용하는 언어이다. 명령어 - SELECT(조회) : 데이터를 조회한다. - INSERT(입력) : 데이터를 삽입한다. - UPDATE(갱신) : 데이터를 수정한다. - DELETE(삭제) : 데이터를 삭제한다. 데이터 조회 SELECT [ * | DISTINCT ] 속성1, 속성2 FROM 테이블명 WHERE 조건 GROUP BY 기준 HAVING 그룹 조건 ORDER BY 속성[ASC | DESC]; * : 모든 컬럼 * WHERE 조건 = : 같다 : 다르다 is ..
-
데이터 정의어(DDL)DataBase/SQL 2022. 11. 10. 21:51
데이터 정의어(DDL : Data Definition Language) 데이터를 정의하는 언어로서 데이터를 담는 그릇을 의미한다. 데이터 베이스를 정의하고 테이블을 생성하는 등 데이터를 담을 수 있는 골격을 결정하는 역할을 한다. 명령어 - CREATE(생성) : 데이터 베이스, 테이블을 생성한다. - ALTER(수정) : 테이블을 수정한다. - DROP(삭제) : 데이터 베이스, 테이블을 삭제한다. - TRUNCATE(초기화) : 테이블 내 데이터를 초기화한다. 테이블 생성 create table 테이블명( 컬럼명1 데이터타입 [제약조건], 컬럼명2 데이터타입 [제약조건], 컬럼명3 데이터타입 [제약조건], ... 컬럼명n 데이터타입 [제약조건] ); * 데이터타입 1. 숫자타입 정수 : tinyint..
-
SQL(Structured Query Language)DataBase/SQL 2022. 11. 8. 20:10
SQL은 관계형 데이터 베이스에서 데이터를 저장하고 처리하는 등 관리하기 위해 설계된 특수 목적의 프로그래밍 언어이다. SQL은 영어키워드를 사용하여 배우기 쉽고 국제적으로 널리 사용되는 쿼리 언어라는 장점이 존재하며, 대소문자를 구별하지 않고 문자열을 저장할 때 ( ‘ ' ) 싱글따옴표만을 사용한다. SQL 명령어 개발자가 관계형 데이터베이스에 저장된 데이터를 조작하는 데 사용하는 특정 키워드 또는 SQL 문으로 다음과 같이 분류한다. 종류 설명 데이터 정의어(DDL) 데이터를 정의하는 언어로서 데이터를 담는 그릇을 의미. 데이터 조작어(DML) 데이터베이스에 저장된 자료들을 입력, 수정, 삭제, 조회하는 언어. 데이터 제어어(DCL) 데이터 보안, 무결성 유지, 병행제어, 회복을 위해 관리자가 사용하..