분류 전체보기44 SQL 기초(3) Join 서브쿼리문에 이어 조회할 컬럼이 같은 테이블 내에 있지 않은 경우 Join을 사용하여 데이터를 조회할 수 있다. join의 형태는 1. inner join(일반형식) select 컬럼1, 컬럼2, ... , 컬럼n from 테이블1, 테이블2, ... 테이블n where 테이블1의 PK = 테이블2의 FK and 테이블2 PK = 테이블n의 FK inner join(표준 형식) select 컬럼1, 컬럼2, ... , 컬럼n from 테이블1 inner join 테이블2 on(테이블1 PK = 테이블2 FK(관계조건) and 일반조건n) 위와 같은 형태로 사용한다. 서브쿼리문과 달리 where문에 PK와 FK를 연결하여 사용한다. 서브쿼리와 같이 PK와 FK로 연결되지 않았어도, 데이터가 동일하다면 연결.. SQL 기초 2023. 11. 28. SQL 기초(2) - select (subquery) select문은 다른 CRUD작업을 할 때 먼저 사용하여 데이터를 확인한 후에 작업을 이어나가는 것이 정신건강에 좋다. 같은 테이블내에서는 편하게 select문을 사용할 수 있지만, 다른 테이블에 있는 다른 컬럼을 함께 조회하려면 subquery를 사용하거나 join을 사용해야 한다. subquery는 select나 from, where 등 어느 부분에서도 사용할 수 있다. 기본적인 형태는 select 컬럼1 , (select 컬럼2 from 테이블2 where 테이블1의 PK키 = 테이블2의 FK키) from 테이블1 위와 같은 형태이다. 테이블이 달라 from에는 테이블 1을 사용하고, select문안에 서브로 select 문을 한 번 더 사용한다. 여기서 조건이 걸리는데 관계형 데이터베이스를 사용할.. SQL 기초 2023. 11. 28. SQL 기초 (1) 환경 RDBMS :mariaDB os : mac m1 tool : DBeaver SQL이란? Structured Query Language의 약자로, 데이터베이스에서 데이터를 다룰 때 사용하는 언어이다. SQL을 사용하여 데이터베이스에서 원하는 데이터만을 조회하거나 수정, 삭제가 가능하다. 이는 데이터를 분석하고, 효율적으로 사용할수 있게 된다. SQL을 사용하기 위해서는 데이터베이스 관리 시스템(DBMS)을 활용해야 한다. 흔히 DBMS에 속하는 RDBMS(Relational DateBase Management System의 약자)를 사용하는데, 차이는 관계형 모델을 기반으로 테이블들이 서로 엮여있어 효율적으로 구성 및 관리가 가능하다. RDBMS에는 크게 3가지를 사용한다. 1. Oracle - 오라.. SQL 기초 2023. 11. 27. mac os 터미널 비밀번호 환경 : macOS Sonoma 14.1.1 (M1) 오늘은 mysql를 사용하려고 brew로 설치하다가 나온 깡깡짓이다. 원래는 mariadb를 사용하려고 했는데, 맥에서는 안된다고 주워들어서 mysql로 넘어갔다. 설치를 한 후 분명 남들과 똑같이 한것 같은데 나는 실행이 되지 않았다. 서버를 실행 한후, uroot에 명령어를 사용하면 계속 아래와 같은 에러가 발생하였다. ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) 이렇게 해보고 저렇게 해보다가 도움을 외쳤다. 그러자 옆자리 맥동료가 와서 도와주었다. 우선 sudo 명령어를 사용할때는 root 계정의 비밀번호를 입력해야한다. 몰랐.. 맥린이의 깡깡짓 2023. 11. 20. python 도서관리프로그램(difine)(2) 2023.11.20 - [python] - python 도서관리프로그램(define)(1) 이전글에 이어서 작성한다. 이번에는 도서 관련 기능들을 만들어보자. 전글에서 작성했던것 처럼 이용자가 키워드를 입력하여 동작하는 형태로 코드를 구현하였다. 도서의 데이터 형태는 dictionary를 사용하였다 book = {} 도서들을 묶은 데이터의 형태는 list를 사용하였다. book_list = [] 우선 이용자가 키워드를 입력할 수 있도록 함수를 정의하였다. def input_menu(): return input(""" 원하시는 메뉴를 눌러주세요. I : 도서 입고 R : 도서 반납 L : 도서 대출 C : 도서 상태 확인 B : 전체 도서 목록 Q : 프로그램 종료 """).upper() 소문자로 입력하여.. python 2023. 11. 20. python 도서관리프로그램(define)(1) 함수를 사용하여 도서관리 프로그램을 만들어보려고 한다. 우선 조건을 정해봤는데, 1. 회원을 등록하고, 인증 시에 도서와 관련된 기능들을 사용할 수 있다. 2. 도서의 정보는 도서번호, 도서제목, 도서재고수량, 대출된 도서의 수량, 도서의 전체권수를 담고 있다. 3. 도서가 입고가 되지 않았을 때, 빌릴 수 없고 대출 중인 도서가 없을 때 반납을 할 수 없다. 서비스를 이용하기 위한 회원인증 시스템을 먼저 만들어보자. 회원의 정보는 회원번호만 받아서 저장할 것이다. 회원 데이터의 변수는 user_list로 정했다. 우선 변수를 선언한다. user_list = [] # 시작시 입력받기 def start_menu() : return input(""" 원하시는 메뉴를 선택해주세요. S = 회원등록 C = 회원.. python 2023. 11. 20. python 기초 (함수(function)) 어느 문법이나 함수는 중요하다. 함수란 무엇일까? 학창 시절을 생각해 보면 y = f(x)의 형태로 사용했던 것 같다. 우리가 문법을 사용하면서 함수를 사용하는 이유는 무엇일까? 아마 편하게 코드를 작성하기 위해서가 가장 큰 이유가 아닐까싶다. 함수를 사용하지 않으면 똑같은 코드를 몇 번이고 작성해야 할 것이다. 그렇다면 함수를 사용하는 방법을 확인해 보자 우선 함수를 정의할 때는 다음과 같은 형태로 선언해 준다. def 함수명(변수1, 변수2...) : 실행문1 실행문2... return 결과값 def를 키워드를 사용하여 함수를 선언하는데 함수명은 함수가 어떤 것을 담당하는지 생각하고 작성하도록 하자. 함수가 한두 개일 때는 괜찮지만 개수가 늘어나면 헷갈리기 시작한다. 함수 안에서 선언된 변수는 함수밖.. python 2023. 11. 20. python 기초(정규식(Regular Expression)) 정규식은 모든 나라에서 공통으로 사용된다. 패턴이 많아서 사용할 때마다 헷갈리기 쉽다. 정규식을 사용하는데 쉽게 와닿는곳은 회원가입을 할 때이다. 메일주소나 휴대폰 번호를 입력할 때, 정규식을 사용한다. @이가 꼭 들어가야 한다던지, 전화번호 중간과 끝이 4자리씩 들어간다던지 할 때이다. 정규표현식 패턴은 아래와 같다. # * 대괄호 ([]) : 대괄호 안에 있는 문자중에 하나라도 매치되면 추출 * 점(.) : 앞뒤 문자의 사이에 보통 주로 사용, 하나의 문자를 의미 * 반복(*) : 앞의 문자가 0번 이상 반복될 때 추출 * 반복(+) : 앞의 문자가 1번 이상 반복될 때 추출 * 반복({m, n}) : 앞의 문자가 최소 m번, 최대 n번 반복될 때 추출 * 시작(^)과 끝($) : 각 문자열의 시작과.. python 2023. 11. 16. python 기초 (예외 처리) 파이썬에서 예외처리는 java와 유사했다. 사용하는 형태는 # 예외처리 - 오류를 처리 할 수 있게끔 지원 한다. - try : 실행문1, 실행문2.... - except 발생오류 as 오류변수 : 에러가 났을 때에 실행 할 실행문... 위와 같은 형태로 사용한다. java는 try와 catch를 사용하는데, python에서는 except를 사용한다. 이런 건 나중에 통일되면 좋을 것 같다. a = [1, 2, 3, 4, 5] b = 6 try : print(a.index(b)) except : print('인덱스 오류') 결과 : '인덱스 오류' 위와 같은 방식으로 사용한다. 예외 처리를 할때 except를 최대한 세부적으로 작성하는 것이 좋다. 하나로 뭉쳐 예외처리를 하면 에러가 발생했을때 수정해야 .. python 2023. 11. 16. python 기초(제어문 - while) 제어문에서 while문은 if문이나 for문과 성격이 약간 다르다. 다른 조건문은 조건이 만족되면 실행하지만 while문은 우선 실행을 하고, 조건이 맞거나 break등을 이용하여 멈추도록 한다. 예를 들어 조건을 이용하는 방식에는 jajang = 0 while jajang python 2023. 11. 16. python 기초(제어문 - for) 제어문에서 가장 많이 쓰이는 것은 for문이다. for문은 for i in (변수, 함수, 데이터)의 형태로 사용한다. in 뒤에있는 데이터를 i에 할당하며, in뒤에 있는 데이터의 길이만큼 동작한다. ls = [1, 2, 3, 4, 5] for i in ls: print(i) 결과 : 1 2 3 4 5 위처럼 리스트의 길이만큼 동작하는 것을 볼 수 있다. for문은 두 가지 방식으로 사용할 수 있는데, 첫 번째 방법은 값을 이용하는 것이고, 또 하나의 방법은 인덱스 번호를 이용해서 추출할 수 있다. 값을 이용하는 방식은 위의 코드처럼 사용한다. 인덱스 번호를 이용하는 방법은 range함수를 사용하는 것이다. range(0 , 10 , 2)의 형태로 사용한다. 함수의 매개변수는 3개가 들어가져 있는데, .. python 2023. 11. 15. python 기초(튜플) 튜플은 리스트와 유사한 형태로 보인다. 리스트와 차이점은 리스트보다 빠르고, 데이터를 변경할 수 없다는 것이다. 사용할 때는 ()기호를 사용한다. a = (1,2,3,4) print(a, type(a)) 결과 : (1,2,3,4) 위와 같이 튜플은 ()로 감싸서 사용하며, 데이터가 변하지 않고 반복해서 사용할때 유용하다. 짧은 코드에서는 차이가 느껴지지 않을 수도 있지만 코드가 길어지면 속도에서 차이가 나니 최적화를 위해 사용하도록 하자. python 2023. 11. 15. 이전 1 2 3 4 다음