일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- inplace()
- shutil
- View
- MySqlDB
- count()
- randrange()
- __len__
- __sub__
- __getitem__
- JS
- fileinput
- items()
- remove()
- Database
- node.js
- choice()
- shuffle()
- __annotations__
- mro()
- CSS
- zipfile
- 파이썬
- fnmatch
- HTML
- glob
- discard()
- 오버라이딩
- locals()
- decode()
- MySQL
- Today
- Total
목록MySQL (15)
흰둥이는 코드를 짤 때 짖어 (왈!왈!왈!왈!왈!왈!왈!왈!왈!왈!왈!)

MySQL use kdt; create table tb_machine( m_num int auto_increment primary key, m_name varchar(50) unique, m_price int not null, m_cnt int default 0 ); DTO class MachineDTO: def __init__(self, mNum, mName, mPrice, mCnt): self.mNum = mNum self.mName = mName self.mPrice = mPrice self.mCnt = mCnt def setMNum(self, mNum): self.mNum = mNum def getMNum(self): return self.mNum def setMName(self, mName): ..

In [1]: class Words: def __init__(self, eng, kor, lev=1): self.eng = eng self.kor = kor self.lev = lev def setEng(self, eng): self.eng = eng def getEng(self): return self.eng def setKor(self, kor): self.kor = kor def getKor(self): return self.kor def setLev(self, lev): self.lev = lev def getLev(self): return self.lev In [2]: import MySQLdb class WordsDao: def __init__(self): self.db = None def c..

1. mysqlclient pyMySQL은 pythone으로 만들어진 라이브러리며 자료가 많지만 속도적으로 c언어로 만들어진 mysqlclient 클라이언트가 더 빠르다. 파이썬에서는 MySQL 서버와 통신할 수 있는 파이썬용 데이터베이스 커넥터의 종류가 여러가지 있음 PyMySQL, mysqlclient를 가장 많이 사용함 사용법은 비슷하나 속도가 빠른 mysqlclient를 권장하고 있음 In [1]: !pip install mysqlclient Collecting mysqlclient Downloading mysqlclient-2.1.1-cp38-cp38-win_amd64.whl (178 kB) Installing collected packages: mysqlclient Successfully in..

인덱스(index) 테이블의 동작속도(조회)를 높여주는 자료구조 데이터의 위치를 빠르게 찾아주는 역할 MYI(MySQL Index)파일에 저장 인덱스를 설정하지 않으면 Table Full Scan이 일어나 성능이 저하되거나 장애가 발생할 수 있음 조회속도는 빨라지지만 update, insert, delete의 속도는 저하될 수 있음 MySQL에서는 primary key, unique 제약조건을 사용하면 해당 컬럼에 index가 적용됨 인덱스는 하나 또는 여러 개의 컬럼에 설정할 수 있음 where절을 사용하지 않고 인덱스가 걸린 컬럼을 조회하면 성능에 아무런 효과가 없음 가급적 update가 안되는 값을 설정하는 것이 좋음 oreder by, group by와 index oreder by 인덱스컬럼, 일..

트랜젝션(Transaction) 분할이 불가능한 업무처리의 단위 한꺼번에 수행되어야 할 연산 모음 commit 모든 작업들을 정상 처리하겠다고 확정하는 명령어로서, 해당 처리 과정을 DB에 영구적으로 저장 rollback 작업 중 문제가 발생되어 트랜젝션의 처리과정에서 발생한 변경사항을 모두 취소하는 명령어 start transaction 블록안의 명령어들은 하나의 명령어처럼 처리됨 ... 성공하던지, 실패하던지 둘 중 하나의 결과가 됨 문제가 발생하면 rollbak; 정상 적인 처리가 완료되면 commit; 트랜젝션의 특징 원자성: 트랜젝션이 데이터베이스에 모두 반영되던가, 아니면 전혀 반영되지 않아야 함 일관성: 트랜젝션의 작업 처리 결과가 항상 일관성이 있어야 함 독립성: 어떤 하나의 트랜젝션이라도..

뷰(View) 가상의 테이블을 생성 실제 테이블처럼 행과 열을 가지고 있지만, 데이터를 직접 저장하고 있지는 않음 뷰를 만드는 이유 SQL 코드를 간결하게 만들기 위함 삽입, 삭제, 수정 작업에 제한 사항을 가짐 내부 데이터를 전체 공개하고 싶지 않을 때 현재 member테이블 select * from member; 뷰 생성 # create view 뷰이름 as 쿼리 ... create view vw_member as select userid, username, hp, gender from member; select * from vw_member; 문제 member의 userid, username, hp와 profile의 mbti를 출력하는 뷰(vw_memberprofile)를 만들고 select만 할 ..

1. 사용자 추가하기 MySQL 8.0 Commane Line Client 'root' 계정으로 로그인 로컬에서 접속 가능한 사용자 추가하기 create user '사용자명'@'localhost' identified by '사용자 비밀번호'; create user 'apple'@'localhost' identified by '1111'; DB 권한 부여하기 # grant all privileges on *.* to '사용자'@'localhost'; # 모든 DB에서 접근 가능 # grant all privileges on 데이터베이스명.* to '사용자'@'localhost'; grant all privileges on *.* to 'apple'@'localhost'; flush privileges; #..

member 테이블 select * from member; concat 복수의 문자열을 연결해주는 함수 select concat('안녕', '하세요') as concat; select concat(address1, ' ', address2, ' ', address3) as address from member where userid='orange'; left, right 왼쪽 또는 오른쪽에서 길이만큼 문자열을 가져옴 select left('ABCDEFGHIJKLMN', 5); select userid, left(email, 5) as email from member where userid='apple'; substring 문자열의 일부를 가져옴 # substring(문자열, 시작위치, 길이) select ..