일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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()
- glob
- MySqlDB
- MySQL
- fileinput
- __getitem__
- fnmatch
- View
- zipfile
- locals()
- remove()
- choice()
- CSS
- decode()
- HTML
- 파이썬
- randrange()
- count()
- discard()
- 오버라이딩
- __len__
- shuffle()
- __sub__
- node.js
- shutil
- Database
- JS
- items()
- mro()
- __annotations__
- Today
- Total
목록MySQL (14)
흰둥이는 코드를 짤 때 짖어 (왈!왈!왈!왈!왈!왈!왈!왈!왈!왈!왈!)

인덱스(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; #..

orders 테이블 select * from orders; insert로 복사 create table orders2( no int not null, userid varchar(20) not null, product varchar(100) not null, cnt int default 1, regdate datetime default now(), foreign key(userid) references member(userid) ); 먼저 orders와 컬럼이 똑같은 orders2 테이블을 생성한다. insert into orders2(select * from orders); select * from orders2; orders에 존재하는 데이터를 모두 복사하여 orders2에 저장하였다. create로 복..

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 ..

서브쿼리(Sub Query) 다른 쿼리 내부에 포함되어 있는 select 문을 의미 서브쿼리를 포함하고 있는 쿼리를 외부쿼리라고 부르고, 서브쿼리는 내부쿼리라고도 부름 서브쿼리는 괄호()로 감싸져서 표현 서브쿼리는 메인쿼리 컬럼 사용이 가능하며, 메인쿼리는 서브쿼리 컬럼을 사용하지 못함 select, where, from, having 절 등에서 사용할 수 있음 product 테이블 select * from product; where 절 # 100001의 가격보다 크거나 같은 price를 가지고 있는 상품의 모든 정보 select * from product where price >= (select price from product where code='100001'); select 절 # 코드, 이름, ..

product, product_new 테이블 select * from product; select * from product_new; 유니온(union) 합집합을 나타내는 연산자로, 중복된 값을 제거함 서로 같은 종류의 테이블(컬럼이 같아야 함)에서만 적용이 가능 # select 컬럼명1, 컬럼명2.. 테이블1 union select 컬럼명1, 컬럼명2.. from 테이블2 select code, name, price from product union select code, name, price from product_new; 중복이 되는 100001번 하나가 제외되어 출력된다. select code, name, price, regdate from product union select code, name..