반응형

[MariaDB] 마리아DB SQL 쿼리 기본 - SELECT (MySQL)

 

DB목록 조회

SHOW DATABASES;

 

DB선택

USE DB명;

 

선택된 DB에 존재하는 테이블 정보 조회

SHOW TABLE STATUS;  -- 테이블 이름만 간단히 볼 때는 SHOW TABLES;

 

테이블 조회(SELECT)

SELECT * FROM 테이블명;

 

DB선택과 함께 테이블 조회

SELECT * FROM DB명.테이블명;

 

테이블에서 필요한 열만 조회

SELECT 열이름1, 열이름2, 열이름3 FROM 테이블명;

 

별칭 사용법 (AS)

SELECT 열이름1 AS 별칭1, 열이름2 AS 별칭2 FROM 테이블명; -- 열이름이 별칭으로 적혀서 테이블 조회됨

 

조건절 (WHERE)

SELECT * FROM 테이블명 WHERE 조건문; -- 테이블명에 있는 데이터중 조건문에 해당되는 행의 모든(*) 열 조회

 

조건절 AND, OR

SELECT * FORM 테이블명 WHERE 조건1 AND 조건2; -- 조건1, 2 모두 참인 행들만 조회

SELECT * FROM 테이블명 WHERE 조건1 OR 조건2; -- 조건1이거나 2를 만족하는 행들을 조회

 

조건절 BETWEEN...AND

/* 열이름이 시작값부터 끝값까지의 포함된 행들을 조회(값은 보통 수치) */
SELECT * FROM 테이블명 WHERE 열이름 BETWEEN 시작값 AND 끝값;

 

조건절 IN('값1', '값2', ...)

/* 열이름이 IN 뒤에 값에 포함되는 행들만 조회 */
SELECT * FROM 테이블명 WHERE 열이름 IN ('값1', '값2', '값3');

 

조건절 LIKE '%'

/* 열이름이 LIKE 뒤에 문자와 %(모든문자)를 합쳐서 해당되면 조회 */
SELECT * FROM 테이블명 WHERE 열이름 LIKE '김%' -- 열이름이 '김'으로 시작하는 모든 행 조회

 

순서정렬 (ORDER BY)

SELECT * FROM 테이블명 ORDER BY 열이름; -- 기본값이 ASC이며 열이름 기준 오름차순 정렬
SELECT * FROM 테이블명 ORDER BY 열이름 DESC; -- 열이름 기준 내림차순 정렬

 

중복제거 조회 (DISTINCT)

SELECT 지역명 FROM 동창회테이블;  -- 동창회테이블에 중복되는 지역명이 테이블 행만큼 조회됨
SELECT DISTICT 지역명 FROM 동창회테이블  -- 동창회테이블에 지역명중 중복되는 값은 1개만 조회됨

 

조회(출력) 갯수 제한 (LIMIT)

SELECT * FROM 테이블명 LIMIT 5; -- 5개 행까지만 조회

 

테이블 새이름으로 복사하기

/* DB명 안에 있는 기존테이블을 새테이블로 복사 */
USE DB명;
CREATE TABLE 새테이블이름 (SELECT 복사할열1, 복사할열2 FROM 기존테이블);

 

GROUP BY절

/* 그룹열을 중복제거 조회하고, 그룹열에 해당되는 합칠열 값을 모두 더해서(SUM) 출력 */
SELECT 그룹열, SUM(합칠열) FROM 테이블명 GROUP BY 그룹열;


/* 그룹열을 중복제거 조회하고, 그룹열에 해당되는 수량열과 가격열을 곱한(*) 값들을 모두 더해서(SUM) 출력 */
SELECT 그룹열, SUM(수량열*가격열) FROM 테이블명 GROUP BY 그룹열;

 

GROUP BY절과 함께 사용되는 집계함수

함수명

설명

AVG()

평균을 구합니다.

MIN()

최소값을 구합니다.

MAX()

최대값을 구합니다.

COUNT()

행의 개수를 구합니다.

COUNT(DISTINCT)

행의 개수를 구합니다. (중복값은 1개로 인정)

STDEV()

표준편차를 구합니다.

VAR_SAMP()

분산을 구합니다.

 

HAVING 절(GROUP BY의 조건절)

/* 그룹열을 중복제거 조회하고, 그룹열에 해당되는 합칠열 값을 모두 더한값이(SUM) 1000보다 큰 행들을 출력 */
SELECT 그룹열, SUM(합칠열) 
FROM 테이블명 
GROUP BY 그룹열
HAVING SUM(합칠열) > 1000;


/* 그룹열을 중복제거 조회하고, 그룹열에 해당되는 수량열과 가격열을 곱한(*) 값들을 모두 더한값이(SUM) 1000보다 큰 행들을 출력 */
SELECT 그룹열, SUM(수량열*가격열) 
FROM 테이블명 
GROUP BY 그룹열
HAVING SUM(수량열*가격열) > 1000;

 

 

[MariaDB] 전체보기

 

 

'MariaDB' 카테고리의 글 목록

전산 관련 경험을 기록 하는 곳

reddb.tistory.com

 

반응형
반응형

[MariaDB] HeidiSQL 사용방법 매뉴얼 3편 - GUI방식으로 사용자 계정 생성 및 권한부여하기

 

이전편에서는 HeidiSQL 포터블 설치 및 DB접속방법, GUI 방식으로 DB 및 TABLE 생성과 데이터 입력 방법, 그리고 기타 유용한 기능에 대해서 설명드렸습니다.

이번편에는 HeidiSQL의 GUI방식으로 사용자 계정을 생성하고 계정에 원하는 권한만 부여하는 방법에 대해서 설명드리겠습니다.

 

먼저 admin에 대한 권한을 설명드리겠습니다.

  1. 계정명은 admin이다. PW는 adminpw이다.

  2. 모든 데이터베이스의 모든 테이블에 권한을 준다. (*.*)

  3. 권한은 모든 권한을 부여한다. (ALL)

  4. admin은 모든PC(외부PC 포함)에서 접속 할 수 있다. (%)

위에서 정의한 admin 계정을 생성하고 권한을 부여하는 GUI 방법을 설명드리겠습니다.먼저 메뉴 - 도구 - 사용자 관리자를 선택합니다.

사용자 관리자

 

사용자 관리자 창에서 "추가"버튼을 클릭합니다.

  1. 사용자 이름에 admin 입력합니다.

  2. 호스트에서 란에 % (모든 곳에서 접속가능) 선택합니다.

  3. 암호란에 adminpw 입력합니다. 재입력란에도 똑같이 입력합니다.

  4. 접근 허용목록에는 전체권한을 선택해줍니다.

  5. 저장을 클릭하면 계정 목록에 admin % 가 추가된 것을 확인 할 수 있습니다.

사용자 관리자 추가하기

 

위 GUI 내용을 SQL문으로 변경하자면 아래 코드와 같습니다.

CREATE USER admin@'%' IDENTIFIED BY 'adminpw';  -- 계정생성 admin, % 모든곳에서 접근, pw는 adminpw
GRANT ALL ON *.* TO admin@'%' WITH GRANT OPTION; -- 계정권한부여 ALL, *.* 모든 DB.테이블, admin계정은 모든PC에서 접근가능, GRANT 권한까지 부여 

 

외부PC에서 HeidiSQL로 서버로 접속한 경우 저장 시 SQL (1045)오류가 날 수 있습니다.

이는 외부에서 서버DB에 접속하기 위해서 root@'%'에 GRANT 권한을 줬을때 마지막에 "WITH GRANT OPTION;"를 안 넣어서 생기는 문제입니다.

1045오류

 

서버에서(localhost) MriaDB에 접속 후 아래 GRANT 쿼리와 FLUSH 쿼리를 입력합니다.

( # GRANT ALL PRIVILEGES ON *.* TO root@'%' identified by 'root의비밀번호' WITH GRANT OPTION; )

( # FLUSH PRIVILEGES; )

with grant option

 

 

다음은 selecter 권한에 대해서 설명드리겠습니다.

  1. 계정명은 selecter이다. PW는 selecterpw이다.

  2. 모든 데이터베이스의 모든 테이블에 권한을 준다. (*.*)

  3. 권한은 select 권한을 부여한다. (SELECT)

  4. selecter는 임의 IP에서만 접속 할 수 있다. (예: 192.168.0.100)

사용자 관리자 창에서 "추가"버튼을 클릭합니다.

  1. 사용자 이름에 selecter 입력합니다.

  2. 호스트에서 란에 192.168.0.100 입력합니다.

  3. 암호란에 selecterpw 입력합니다. 재입력란에도 똑같이 입력합니다.

  4. 접근 허용목록에는 select을 선택해줍니다.

  5. 저장을 클릭하면 계정 목록에 selecter / 192.168.0.100 이 추가된 것을 확인 할 수 있습니다.

selecter 생성

 

위 GUI 내용을 SQL문으로 변경하자면 아래 코드와 같습니다.

CREATE USER selecter@'192.168.0.100' IDENTIFIED BY 'selecterpw';  -- 계정생성 selecter, 192.168.0.100에서만 접근, pw는 selecterpw
GRANT SELECT ON *.* TO selecter@'192.168.0.100'; -- 계정권한부여 SELECT, *.* 모든 DB.테이블, selecter계정은 192.168.0.100에서 접근가능

 

 

다음은 worker 권한에 대해서 설명드리겠습니다.

  1. 계정명은 worker이다. PW는 workerpw이다.

  2. "testDB" 데이터베이스의  "testTABLE" 테이블에 권한을 준다.

  3. 권한은 INSERT, UPDATE 권한을 부여한다.

  4. worker는 임의 IP에서만 접속 할 수 있다. (예: 192.168.0.200)

사용자 관리자 창에서 "추가"버튼을 클릭합니다.

  1. 사용자 이름에 worker 입력합니다.

  2. 호스트에서 란에 192.168.0.200 입력합니다.

  3. 암호란에 workerpw 입력합니다. 재입력란에도 똑같이 입력합니다.

  4. 객체 추가를 클릭 후 testDB의 testTABLE을 선택합니다.

  5. 접근 허용목록에는 INSERT, UPDATE를 선택해 줍니다.

  6. 저장을 클릭하면 계정 목록에 worker / 192.168.0.200 이 추가된 것을 확인 할 수 있습니다.

worker 사용자 추가
객체 추가 - 테이블 선택

 

위 GUI 내용을 SQL문으로 변경하자면 아래 코드와 같습니다.

CREATE USER worker@'192.168.0.200' IDENTIFIED BY 'workerpw';  -- 계정생성 worker, 192.168.0.200에서만 접근, pw는 workerpw
GRANT INSERT, UPDATE ON testDB.testTABLE TO selecter@'192.168.0.200'; -- 계정권한부여 INSERT UPDATE, testDB.testTABLE에만 접근, worker계정은 192.168.0.200에서만 접근가능

 

이상 HeidiSQL에 관한 포스팅을 마치겠습니다.

 

 

[MariaDB] 전체보기

 

 

'MariaDB' 카테고리의 글 목록

전산 관련 경험을 기록 하는 곳

reddb.tistory.com

반응형
반응형

[MariaDB] HeidiSQL 사용방법 매뉴얼 2편 - GUI방식으로 DB, Table 생성 및 데이터 입력방법과 기타 유용한 기능

 

이전 포스팅에서는 HeidiSQL 포터블버전을 다운받는 방법과 세션관리자에서 DB를 접속하는 방법에 대해 설명했습니다.

이번편에서는 접속한 DB에서 새로운 DB, Table을 GUI방식으로 생성하는 방법과 데이터 입력방법을 설명드리겠습니다.

또한, HeidiSQL의 기타 유용한 기능에 대해서도 설명드리겠습니다.


DB목록 세션이름에서 마우스 우클릭 후 - 새로 생성(O) - 데이터베이스(T)를 선택합니다.

데이터베이스 생성

 

데이터베이스 생성 창이 열리면 이름란에 원하는 DB명을 적어주시고 확인을 클릭합니다.

하단에 CREATE코드에는 SQL 쿼리로 DB를 생성하는 코드도 나옵니다. 

데이터베이스 생성

 

다음은 생성된 "testDB"에서 마우스 우클릭 - 새로 생성(O) - 테이블(U)를 선택합니다.

테이블 생성

 

테이블 생성창이 열리면 테이블 이름, 테이블 설명(코멘트)를 적습니다.

하단에 "추가"버튼을 클릭후 이름, 데이터유형, 길이/설정 값을 입력하고 NULL 값을 허용할거라면 체크박스를 체크해줍니다.

"저장"을 클릭하면 테이블이 생성이됩니다.

테이블 생성

 

열을 선택 후 - 마우스 우측 클릭 - 새 인덱스 생성(Y) - 기본키로 설정할 수 있습니다.

기본키 설정

 

테이블 선택 후 테이블 탭 중 "CREATE 코드"를 선택 하면 SQL 쿼리로 테이블을 만드는 코드도 나옵니다.

CREATE 코드

 

만들어진 테이블에 데이터를 입력하는 방법입니다.

테이블 클릭 후 - 데이터 탭 선택 - 데이터 창 빈공간에서 마우스 우클릭 후 - 행 삽입(I) 선택 합니다.

데이터 입력

 

마우스로 행을 클릭 후 값을 입력 합니다.

데이터 입력

 

쿼리 창에서 DB를 선택 후, 테이블을 조회해 봅니다. 데이터들이 정상적으로 조회되는 것을 확인 할 수 있습니다.

쿼리탭 테이블 조회

 

조회된 테이블 창에서 마우스 우클릭 후 "격자 행 내보내기"를 클릭하시면 파일로 다운받을 수 있습니다.

격자 행 내보내기 (파일로 출력)
격자 행 내보내기 (파일로 출력)

 

HeidiSQL의 유지보수 기능에는 DB 테이블에서 특정 문자를 찾는 기능이 있습니다.

먼저 메뉴 - 도구 - 유지보수를 선택 합니다.

유지보수

 

찾을 DB를 선택 후 - 텍스트 찾기 탭을 선택 - 찾을 텍스트 입력 후 - 찾기를 클릭합니다.

잠시 후 찾기가 끝나면 결과보기를 클릭합니다.

텍스트 찾기

 

쿼리창에 해당 텍스트를 찾는 쿼리가 입력되어서 실행된 상태가 보여집니다.

텍스트 찾기 결과

 

한줄로 길게 쓰여진 SQL 쿼리를 보다 보기 쉽게 정렬하는 기능이 있습니다.

SQL 입력창에서 마우스 우클릭 후 - SQL재구성(S)를 클릭합니다.

예약어들이 행 바꿈으로 재구성됩니다. (예약어가 소문자일 경우 대문자로 변경해줍니다.)

SQL 재구성
재구성된 SQL

 

SQL작성 시 자동완성 기능도 재공하고 있습니다.

사용방법은 쿼리를 일부 입력 후 컨트롤(Ctrl) + 스페이스(Space)를 누르면 자동완성 화면이 뜹니다. 원하는 자동완성을 방향키로 선택후 엔터를 누릅니다.

자동완성 ctrl+space

 

주석기능도 재공하고 있습니다.

마우스로 드래그 선택 후 - 마우스 우클릭 - 주석 설정/해제(N)을 클릭합니다.

주석 설정

 

간단한 필터 기능도 제공해주고 있어 select문을 대신하여 조회가 가능합니다.

테이블 선택 - 데이터탭 선택 - 필더 선택 - 필터내용 입력 - 필터 적용 클릭 합니다.

필터 적용

 

다음편에서는 GUI로 사용자 추가(CREATE USER)와 사용자 권한(GRANT)을 주는 방법에 대해 설명하겠습니다. SQL쿼리로 하는 방법 또한 함께 설명드리겠습니다.

 

 

[MariaDB] 전체보기

 

'MariaDB' 카테고리의 글 목록

전산 관련 경험을 기록 하는 곳

reddb.tistory.com

 

반응형
반응형

[MariaDB] HeidiSQL 사용방법 매뉴얼 1편 - (포터블버전)다운로드, 세션관리자(마리아DB, MySQL접속)

 

HeidiSQL(하이디SQL)은  MariaDB(마리아DB) 또는 MySQL에 접속하여 사용가능한 DB툴 입니다.

MariaDB 출시 시점부터 GUI 툴로 HeidiSQL을 기본적으로 제공되고 있습니다. MariaDB 설치 프로그램에 기본적으로 포함되어 있어 선택하여 설치도 가능하고, HeidiSQL 사이트에서 직접 다운로드해서 사용하셔도 됩니다.

HeidiSQL 홈페이지에서 다운로드시 인스톨버전 말고 포터블(Portable)버전도 다운로드를 제공하고 있습니다.

https://www.heidisql.com/

 

HeidiSQL - MariaDB, MySQL, MSSQL, PostgreSQL and SQLite made easy

What's this? HeidiSQL is free software, and has the aim to be easy to learn. "Heidi" lets you see and edit data and structures from computers running one of the database systems MariaDB, MySQL, Microsoft SQL, PostgreSQL and SQLite. Invented in 2002 by Ansg

www.heidisql.com

HeidiSQL 다운로드

 

저는 설치가 귀찮아 포터블(Portable)로 다운 후 압축을 풀고 실행파일을 실행해주었습니다.

Heidisql 포터블버전 실행

 

처음 실행 후 세션관리자 창이 뜨면 "신규"버튼을 클릭 DB정보를 입력해줍니다.

  - 필수 입력사항

  1. 호스트명/IP에 접속할 DB의 주소를 적어줍니다.

  2. 사용자란에 아이디를 적어줍니다.

  3. 암호란에 아이디에 맞는 암호를 적어줍니다.

  4. 포트란에 DBMS 포트를 넣어줍니다. (MariaDB, MySQL의 기본포트 값은 3306 입니다)

  5. 열기를 클릭합니다.

세션관리자

  - 선택 입력사항

  1. 네트워크 유형을 선택합니다. (MySQL TCP/IP가 가장 일반적인 사용유형 입니다.)

  2. 자격 증명 프롬프트: 접속할 컴퓨터에 별도의 자격 증명 처리가 필요한 경우 체크합니다.

  3. Windows 인증사용: 접속할 서버가 SQL Server일 경우에 활성화됩니다.

  4. 압축된 클라이언트/서버 프로토콜: 서버에서 압축 프로토콜이 지원될 경우 사용할 수 있습니다.

  5. 데이터베이스: 접속할 DBMS에서 사용할 데이터 베이스 목록을 세미콜론으로 구분해서 접속할 수 있습니다. 비워두면 기본적으로 모든 DB목록이 다 보여집니다.

  6. 코멘트: 별도의 설명등을 넣을 수 있습니다.

세션 이름도 변경이 가능합니다. 세션 이름에서 마우스 우클릭 후 "이름바꾸기 F2"를 선택하신 후 원하는 이름으로 바꾸시기 바랍니다.

세션관리자

 

세션관리자 고급탭에서는 SSL 사용이 가능합니다. 서버에서 DB접속시 SSL을 설정해 두셨다면 여기서 SSL 관련 보안 정보를 입력해주셔야 합니다. 

세션관리자 고급 탭

 

열기를 클릭해서 DB에 접속하시면 좌측에는 DB목록창이있습니다.

우측에는 DB목록에서 DB, 테이블 선택 시 나타나는 정보창과 쿼리 창이 있습니다.

아래에는 로깅창이 있습니다.

HeidiSQL 화면구성

 

다음편에서는 HeidiSQL에서 GUI방식으로 DB, Table 생성 및 데이터 입력방법과 기타 유용한 기능 사용방법에 대해서 말씀드리겠습니다.

 

 

[MariaDB] 전체보기

 

'MariaDB' 카테고리의 글 목록

전산 관련 경험을 기록 하는 곳

reddb.tistory.com

반응형
반응형

애드센스 계정 30일 일시 정지 해제(Google 게시자 계정이 다시 활성화됨)

 

지난 7월 25일 애드센스 30일 일시 정지 메일을 받은 후 30일 지났습니다.

(이전 포스팅 : 애드센스 계정 30일 일시 정지)

 

애드센스 계정 30일 일시 정지

애드센스 계정 30일 일시 정지 애드센스를 승인 받은지 십여일이 지난 주말 아침 애드센스 팀으로 부터 메일 한통을 받았습니다. 내용은 다름아닌 애드센스 계정 30일 일시 정지 메일이었습니

reddb.tistory.com

일시 정지 기간이 8월 23일까지라고 되어있었는데 8월24일 00시에 풀리는게 아닌 24일 12시에 일시정지가 해제 됐습니다. 아마도 구글의 시간은 미국의 시간을 기준으로 맞춰서 돌아가나 봅니다.

 

아래는 구글에서 보내온 메일입니다.

구글 애드센스 30일 일시정지 해제 메일

 

제 티스토리 블로그는 보시다시피 이제 광고가 잘 노출되고 있습니다.

하지만 기존에 쌓였던 수익은 (당연하겠지만) 모두 사라졌습니다.

아니, 오히려 -0.02$가 있네요. 내가 왜 에드샌스에 빚이 있는건지...

애드센스 잔고

 

티스토리를 시작하며 하루 중 많은 시간을 애드센스에 뺏겨왔었습니다.

티스토리에 블로그 글을 쓰는 일보다 애드센스란 무엇인가에 대해 찾아보고 학습하고 이것저것 테스트 하는 시간이 많았습니다.

아마 일시정지 30일 기간이 없었다면 저는 애드센스에 대한 테스트를 멈추지 않고 글쓰기를 등한시 했을 겁니다.

일시정지 30일 동안 포스팅한 글은 51개 입니다. 애드센스에 들일 시간과 노력을 포스팅에 녹여 생각보다 많은 포스팅을 했습니다.

일시정지 30일을 통해 제가 애드센스를 하는게 아니라 블로그를 하고자 했음을 확실히 알게됐고 이제부터는 보다 좋은 정보로 보다 쉽게 방문자에게 이해시켜 드릴 수 있는 좋은 글을 쓰고자 합니다.

 

이 글을 읽으시는 분들도 애드센스가 아닌 블로그를 하실 것을 권해드립니다.

읽어주셔서 감사합니다.

반응형