SQL 공부 사이트

Posted by misdomino
2022. 10. 31. 22:05 공부/MySQL
반응형

https://blog.naver.com/hidal_magicnote/222895789178
SQL 문법, 함수
  https://www.w3schools.com/mysql/default.asp
  MySQL Tutorial

  https://dev.mysql.com/doc/refman/8.0/en/functions.html
  MySQL 8.0 Reference Manual - Chapter 12 Functions and Operators

  https://mode.com/sql-tutorial/introduction-to-sql/
  The SQL Tutorial for Data Analysis


https://blog.naver.com/ds_selee/222508805418
SQL 테스트 

  https://leetcode.com/problemset/database/
  Leetcod - Database
  당연히 제일 먼저는 리트코드죠!! 데이터 베이스 섹션에 가시면 여러 문제들을 확인해보실 수 있어요!
  SQL 문제들은 무료 버전이 몇개 없어서 저는 친구랑 프리미엄 같이 결재해서 현재 문제 풀고 있는 중이에요!

  https://www.stratascratch.com/blog/mysql-interview-questions/
  StrataScratch
  이건 저도 얼마전에 안 사이트인데 문제들이 꽤 좋더라구요!!
  실제 프로덕트 관련된 문제들을 연습할 수 있어서 좋은 것 같아요!

반응형

ERD 표기법

Posted by misdomino
2022. 8. 22. 22:05 공부/MySQL
반응형

https://itpenote.tistory.com/594?category=898785
개념 ER 모델
상세 ER 모델
테이블명세서 

 

**http://wiki.gurubee.net/pages/viewpage.action?pageId=28116182

http://wiki.gurubee.net/pages/viewpage.action?pageId=28115103

http://wiki.gurubee.net/pages/viewpage.action?pageId=26743251 전체 목차

http://wiki.gurubee.net/pages/viewpage.action?pageId=26743462

https://ppomelo.tistory.com/51

Chen vs IE/Crow's Foot 

 


https://vertabelo.com/blog/chen-erd-notation/
Chen Notation

https://vertabelo.com/blog/crow-s-foot-notation/

https://vertabelo.com/blog/crow-s-foot-notation-in-vertabelo/

Crow’s Foot Notation

https://vertabelo.com/blog/barkers-erd-notation/
Barker’s Notation

 

https://vertabelo.com/blog/a-data-model-for-an-online-musical-equipment-shop/

ERD example

 

 

 

반응형

[MySQL]MySQL Community 버전, 외부 접속 허용 설정 방법

Posted by misdomino
2022. 7. 21. 16:38 공부/MySQL
반응형

1단계: 사용자 계정이 외부의 IP에서 접속이 가능한다

출처: 
https://jminie.tistory.com/101
https://luminitworld.tistory.com/82?category=975147

1) MySQL 사용자 생성
mysql> create user 'jm'@'%' identified by 'password';

MySQL에 접속한다.
본인이 원하는 이름의 사용자를 만들고 비밀번호를 설정한다.

사용자를 생성할 때 접근 허용 범위를 다음과 같이 설정할 수 있다.
  'Username'@'%'  : 해당 사용자는 외부에서 접근 가능
  'Username'@'localhost'  : 해당 사용자는 내부에서만 접근 가능
  'Username'@'xxx.xxx.xxx.xxx'  : 해당 사용자는 지정한 ip주소로만 접근 가능
 
사용자 확인
mysql> show databases;               // 현재 database를 보여줌
mysql> select user, host from user;  // mysql database의 사용자 목록 출력

2) 데이터베이스 생성
mysql> create database jmDB
mysql> show databases;

3) 데이터베이스 권한 부여
mysql> grant all privileges on jmDB.* to 'jm'@'%';
mysql> flush privileges;
mysql> show grants for 'jm'@'%';    // 해당 사용자에 대한 권한을 보여줌



2단계: 방화벽을 열어준다
출처:
https://walkingfox.tistory.com/66
mysql community 버전에서 외부 접속 가능하게 하기

1) 제어판의 Windows Defender 방화벽을 찾아서 들어갑니다. (윈도우 검색에서 '방화벽'이라고 검색해도 됩니다.) 
   그후 고급 설정을 클릭합니다.

2) 창이 뜨면 '인바운드 규칙'을 누르고 다음으로 '새 규칙'을 누릅니다.

3) '프로그램' 선택된 것을 확인한 후에 '다음'버튼을 누릅니다.
 
4) '찾아보기'버튼을 눌러 MySQL이 설치된 폴더를 찾아서 mysqld.exe를 선택하여 줍니다.
   저의 경우에는 "%ProgramFiles%\MySQL\MySQL Server 8.0\bin\mysqld.exe" 에 있습니다.
 
5) '연결 허용'이 선택된 것을 확인하고 '다음'버튼을 누릅니다.

6) 그림과 같이 모두 체크를 한 후에 '다음'버튼을 누릅니다.

7) 마지막으로 규칙에 대한 이름(나는 MySQL)을 적당히 적은 후에 '마침'버튼을 눌러 모든 단계를 마무리합니다.



반응형

[MySQL] 명령 프롬프트 창에서 MySQL DB 백업 및 복원 방법

Posted by misdomino
2022. 7. 21. 15:55 공부/MySQL
반응형

MYSQL DB 백업하기

 

명령 프롬프트(CMD) 창에서

> mysqldump -u [사용자 계정] -p [패스워드] [원본 데이터베이스명] > [생성할 백업 DB명].sql


 
MYSQL DB 복원하기
명령 프롬프트(CMD) 창에서 
> mysql -u [사용자 계정] -p [패스워드] [복원할 DB] < [백업된 DB].sql
 

출처:
https://server-talk.tistory.com/30

 

반응형

[오라클]파이썬 오라클 연동 프로그래밍 - 한글 테스트

Posted by misdomino
2021. 12. 28. 14:57 공부/MySQL
반응형

1. 오라클 데이터베이스에서 한글 데이터 환경을 만든다.

 

select * from emp;

update emp
set ename = '한글이름'
where empno = 7369;

 

select * from emp;

 

2. 아나콘다 주피터 노트북에서, 파이썬 오라클 연동 프로그램을 실행한다.   

한글 안깨지고 잘 나오네...

 

반응형

[오라클][파이썬]ModuleNotFoundError: No module named 'cx_Oracle'

Posted by misdomino
2021. 12. 28. 14:31 공부/MySQL
반응형

파이썬 오류 메시지 -

ModuleNotFoundError: No module named 'cx_Oracle'

 

오류 해결 - 

cx_Oracle 라이브러리를 설치한다.
셀 시작 부분에 느낌표(!)를 추가하면, 주피터 노트북은 명령 프롬프트에서 입력한 것처럼 처리한다.
!pip install cx_Oracle

 

반응형

[오라클] 파이썬에서 오라클 데이터베이스 연동하는 프로그램

Posted by misdomino
2021. 12. 28. 14:25 공부/MySQL
반응형

아나콘다 주피터 노트북에서 작성해서 실행한다.

 

selMemberOra.ipynb

import cx_Oracle

con = cx_Oracle.connect("사용자이름", "비밀번호","호스트이름:포트/서비스이름")
cur = con.cursor()

cur.execute("SELECT empno, ename, job, sal FROM emp")

while (True) :
    row = cur.fetchone()
    if row == None :
        break;
    data1 = row[0]
    data2 = row[1]
    data3 = row[2]
    data4 = row[3]
    print("%5d   %10s   %10s   %5d" % (data1, data2, data3, data4))

con.close()

 

 

 

 

 

 

출처:

https://rk1993.tistory.com/entry/Python파이썬에서-Oracle-DB-연동하는-방법

반응형

[오라클] 데이터형식 및 샘플 테이블 생성 SQL 스크립트

Posted by misdomino
2021. 12. 28. 14:03 공부/MySQL
반응형

-----------------------------------------------------------------

오라클 주요 데이터형식

 

문자 데이터형식

CHAR(n)          고정길이 문자 / 최대 2000byte / 디폴트 값 1byte 
VARCHAR2(n)   가변길이 문자 / 최대 4000BYTE / 디폴트 값 1byte 

 

숫자 데이터형식
NUMBER(P,S)    가변숫자 / P (1 ~ 38, 디폴트 : 38) / S (-84 ~ 127, 디폴트 값 : 0)  / 최대 22byte 

 

날짜 데이터형식
DATE              BC 4712년 1월 1일부터 9999년 12월 31일, 연, 월, 일, 시, 분, 초까지 입력 가능 


 

-----------------------------------------------------------------

샘플 테이블 생성 SQL 스크립트

 

scott 계정으로 접속한다 

 

-- DROP TABLE EMP;
-- DROP TABLE DEPT;
-- DROP TABLE BONUS;
-- DROP TABLE SALGRADE;
-- DROP TABLE DUMMY;

-- 테이블 생성 후 데이터 입력하기

CREATE TABLE EMP (
EMPNO  NUMBER(4) NOT NULL,
ENAME  VARCHAR2(10),
JOB  VARCHAR2(9),
MGR  NUMBER(4),
HIREDATE  DATE,
SAL  NUMBER(7, 2),
COMM  NUMBER(7, 2),
DEPTNO  NUMBER(2)
);

INSERT INTO EMP VALUES (7369, 'SMITH', 'CLERK', 7902,TO_DATE('1980-12-17', 'YYYY-MM-DD'), 800, NULL, 20);
INSERT INTO EMP VALUES (7499, 'ALLEN', 'SALESMAN', 7698,TO_DATE('1981-02-20', 'YYYY-MM-DD'), 1600, 300, 30);
INSERT INTO EMP VALUES (7521, 'WARD', 'SALESMAN', 7698,TO_DATE('1981-02-22', 'YYYY-MM-DD'), 1250, 500, 30);
INSERT INTO EMP VALUES (7566, 'JONES', 'MANAGER', 7839,TO_DATE('1981-04-02', 'YYYY-MM-DD'), 2975, NULL, 20);
INSERT INTO EMP VALUES (7654, 'MARTIN', 'SALESMAN', 7698,TO_DATE('1981-09-28', 'YYYY-MM-DD'), 1250, 1400, 30);
INSERT INTO EMP VALUES (7698, 'BLAKE', 'MANAGER', 7839,TO_DATE('1981-05-01', 'YYYY-MM-DD'), 2850, NULL, 30);
INSERT INTO EMP VALUES (7782, 'CLARK', 'MANAGER', 7839,TO_DATE('1981-06-09', 'YYYY-MM-DD'), 2450, NULL, 10);
INSERT INTO EMP VALUES (7788, 'SCOTT', 'ANALYST', 7566,TO_DATE('1982-12-09', 'YYYY-MM-DD'), 3000, NULL, 20);
INSERT INTO EMP VALUES (7839, 'KING', 'PRESIDENT', NULL,TO_DATE('1981-11-17', 'YYYY-MM-DD'), 5000, NULL, 10);
INSERT INTO EMP VALUES (7844, 'TURNER', 'SALESMAN', 7698,TO_DATE('1981-09-08', 'YYYY-MM-DD'), 1500, 0, 30);
INSERT INTO EMP VALUES (7876, 'ADAMS', 'CLERK', 7788,TO_DATE('1983-01-12', 'YYYY-MM-DD'), 1100, NULL, 20);
INSERT INTO EMP VALUES (7900, 'JAMES', 'CLERK', 7698,TO_DATE('1981-12-03', 'YYYY-MM-DD'), 950, NULL, 30);
INSERT INTO EMP VALUES (7902, 'FORD', 'ANALYST', 7566,TO_DATE('1981-12-03', 'YYYY-MM-DD'), 3000, NULL, 20);
INSERT INTO EMP VALUES (7934, 'MILLER', 'CLERK', 7782,TO_DATE('1982-01-23', 'YYYY-MM-DD'), 1300, NULL, 10);

CREATE TABLE DEPT(
DEPTNO  NUMBER(2),
DNAME  VARCHAR2(14),
LOC  VARCHAR2(13) 
);

INSERT INTO DEPT VALUES (10, 'ACCOUNTING', 'NEW YORK');
INSERT INTO DEPT VALUES (20, 'RESEARCH', 'DALLAS');
INSERT INTO DEPT VALUES (30, 'SALES', 'CHICAGO');
INSERT INTO DEPT VALUES (40, 'OPERATIONS', 'BOSTON');

CREATE TABLE BONUS(
ENAME  VARCHAR2(10),
JOB  VARCHAR2(9),
SAL  NUMBER,
COMM  NUMBER
);

CREATE TABLE SALGRADE(
GRADE NUMBER,
LOSAL NUMBER,
HISAL NUMBER
);

INSERT INTO SALGRADE VALUES (1, 700, 1200);
INSERT INTO SALGRADE VALUES (2, 1201, 1400);
INSERT INTO SALGRADE VALUES (3, 1401, 2000);
INSERT INTO SALGRADE VALUES (4, 2001, 3000);
INSERT INTO SALGRADE VALUES (5, 3001, 9999);

 

-- SQL 실행 결과 확인

SELECT * FROM EMP;

SELECT * FROM DEPT;

SELECT * FROM BONUS;

SELECT * FROM SALGRADE;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

데이터형식 출처:

https://coding-factory.tistory.com/416

 

 

반응형

[오라클]ORA-65096: 공통 사용자 또는 롤 이름이 부적합합니다

Posted by misdomino
2021. 12. 28. 13:58 공부/MySQL
반응형

system 계정으로 접속해서 실행한다.

-- DROP USER c##scott CASCADE;
create user scott identified by tiger;

오류 메시지 -
ORA-65096: 공통 사용자 또는 롤 이름이 부적합합니다.

오류 해결 - 
create user c##scott identified by tiger;

오라클 12c 이상은
(12c부터 등장한 CDB, PDB 개념 때문에)
사용자 이름에 c##을 붙여야 한다.

grant connect, resource, dba to c##scott;





출처:
https://coding-factory.tistory.com/413

반응형