MySQL 8

[MySQL] SQL기본 문법 정리 | 테이블 조회/생성/수정/삭제

생각 안나서 다시 정리해보는 SQL 기본 문법! DB 다루기 -- 데이터 베이스 보기 show databases; -- sqlDB가 존재하는 경우 우선 지우기 drop database if exists sqlDB; -- 데이터베이스 생성 create database sqlDB; -- 데이터베이스 선택 use sqlDB; ✨윈도우 환경의 mysql에서는 데이터베이스의 이름에 대소문자를 구분하지 않지만, 될 수 있으면 대소문자를 구분해서 사용하는 것이 가독성 측면에서 좋다 테이블 생성 CREATE TABLE db명.테이블명( 컬럼명1 INT PRIMARY KEY AUTO_INCREMENT, -- 기본키 숫자 자동 증가 설정 컬럼명2 CHAR(15) NOT NULL, 컬럼명3 INT, PRIMARY KEY(컬..

KDT 수업/MySQL 2023.05.09

28. DB를 이용한 단어장 만들기

26.DAO, DTO, VO 에서 만들었던 단어장 만들기 프로그램을 변형해서 DB에 단어를 저장하는 단어장을 만들어보기 # DTO 역할의 클래스 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 import..

KDT 수업/Python 2023.03.22

27. 파이썬과 MySQL 연동

오늘은 jupyter notebook 에서 작성했다 1. mysqlclient 파이썬에서는 MySQL 서버와 통신할 수 있는 파이썬용 데이터베이스 커넥터의 종류가 여러가지 있음 PyMySQL, mysqlclient 가 가장 많이 사용되는 커넥터 사용법은 비슷하나 속도가 빠른 mysqlclient를 권장하고 있음 mysqlclient을 사용하기 위해 설치해준다 !pip install mysqlclient 그다음 import를 써서 MySQL데이터베이스를 불러온다 import MySQLdb db에 연결해준다 # host: IP주소, localhost, 127.0.0.1 # user: 유저, root # password: 비밀번호, 1234 # db: 데이터베이스, kdt db = MySQLdb.connect..

KDT 수업/Python 2023.03.22

인덱스(index)

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

KDT 수업/MySQL 2023.03.21

뷰(View)

View 뷰(View) 데이터베이스에 존재하는 일종의 가상의 테이블을 의미함 실제 테이블처럼 행과 열을 가지고 있지만, 데이터를 직접 저장하고 있지는 않음 MySQL에서 뷰는 다른 테이블이나 다른 뷰에 저장되어 있는 데이터를 보여주는 역할만을 수행함 즉, 뷰를 사용하면 여러 테이블이나 뷰를 하나의 테이블처럼 볼 수 있다! 뷰를 만드는 이유 복잡한 SQL코드를 간결하게 만들기 위해 삽입, 삭제, 수정 작업에 제한 사항을 가짐 특정 사용자에게 테이블 전체가 아닌 필요한 필드만을 보여줄 수 있음 # create view 뷰이름 as 쿼리... use kdt; select * from member; select userid, username, hp, gender from member; #공개하려는거 create..

KDT 수업/MySQL 2023.03.21

Day4: MySQL 사용자 추가하기

1. 사용자 추가하기 MySQL 8.0 Command 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'; flush privileges; # 새로운 세팅을 적용함 ✔️ 할당 권한 상세 옵션 create, drop, alter: 테이블에 대한 생..

KDT 수업/MySQL 2023.03.21

Day3: MySQL 데이터 정규화, 다중테이블 연산(Join / Union / 서브쿼리)

먼저 저번 수업때 만들어둔 테이블을 불러온다 use kdt; select * from member; desc member; 새로운 테이블을 생성한다 # 프로필 테이블 생성 create table profile( userid varchar(20) not null, height double, weight double, blood varchar(10), mbti varchar(10), foreign key(userid) references member(userid) ); select * from profile; insert를 이용해 데이터를 입력해준다 # 멤버 테이블에 없는 아이디는 들어가지지 않는다 insert into profile values('ryuzy', 180, 70, 'AAA', 'ISTP'); ..

KDT 수업/MySQL 2023.03.20

Day2: MySQL 연산자 / 제약조건

1. 산술 연산자 + - * / mod : 나머지 연산 div : 몫을 구하는 연산 2. 비교 연산자 = : 같다, 조건절 > = > 덧셈 150 select 100 + 50 as '덧셈연산'; select 100 + 50 as 덧셈; -- '' 안붙여도 상관없음 select 100 + 50 덧셈; select userid as 아이디, username as 이름, hp as 휴대폰번호 from member; null 과 ' ' select null; -- 데이터가 없음, insert되지 않은 것 select ''; -- 해당 셀에 ''데이터가 삽입된 것 select 100 = null; # 결과가 null -> 연산할 수 없음 select 100 + ''; # 결과: 100 -> 연산할 수 있음 조건절..

KDT 수업/MySQL 2023.03.16