데이터베이스(db)

[Python] MySql 생성, 삭제, 검색 (pymysql, create, delete, search 예제 포함)

끄적끄적아무거나 2021. 6. 10. 09:40
반응형

 

목차

     

     

     

     

     

     

    데이터베이스(Database, DB) 생성(Create)


    코드>>

    import pymysql 
    
    db_connect = pymysql.connect( 
        host='localhost', 
        port=3306, user='kc', 
        passwd='toor', 
        charset='utf8'
        ) 
        
    db_connected = db_connect.cursor() 
    sql_cmd = 'create database users_db;'
    
    print(db_connected.execute(sql_cmd))


    결과>>
    print 값은 1로 나옴, 하나가 생성되었다는 의미

    그림1

    주석>>
    그림1과 같이 MySQL에서 제공하는 CMD를 이용해서 database 를 "show databases;"로 확인하였고 users_db가 생성됨을 알 수있다. 코드에서 connect를 위한 부분은 mysql을 설치 설정된 값들이다.

     

     

     

    데이터베이스(Database, DB) 삭제(Delete)


    코드>>

    import pymysql 
    db_connect = pymysql.connect( 
        host='localhost', 
        port=3306, user='kc', 
        passwd='toor', 
        charset='utf8'
        ) 
    
    db_connected = db_connect.cursor() 
    sql_cmd = 'drop database users_db;' 
    
    print(db_connected.execute(sql_cmd))


    결과>>
    print 값은 0으로 나옴, 삭제되었다는 의미

    그림2


    주석>>
    그림2과 같이 MySQL에서 제공하는 CMD를 이용해서 database 를 "show databases;"로 확인하였고 users_db가 삭제되었음 알 수있다. 코드에서 connect를 위한 부분은 mysql을 설치 설정된 값들이다.

     

     

    테이블(Table) 만들기


    코드>>

    import pymysql 
    db_connect = pymysql.connect( 
        host='localhost', 
        port=3306, 
        db = 'users_db', 
        user='kc', 
        passwd='toor', 
        charset='utf8'
        ) 
    
    db_connected = db_connect.cursor() 
    sql_cmd = ''' 
    CREATE TABLE user_info ( ID INT(12) UNSIGNED NOT NULL AUTO_INCREMENT, USER_ID VARCHAR(100) NOT NULL, USER_EMAIL VARCHAR(100) NOT NULL, PRIMARY KEY(ID) ); 
    ''' 
    print(db_connected.execute(sql_cmd))


    결과>>

    그림3


    주석>>
    테이블을 확인 하는 방법은 다음과 같다.
    1. "show databases;" 로 db를 확인한다.
    2. "use users_db;" 로 db를 선택한다.
    3. "show tables;"로 테이블을 확인한다.
    4. "desc user_info;"로 테이블 내용을 확인한다.

     

     

     

    테이블(Table)에 값 입력(저장)하기


    코드>>

    import pymysql 
    
    db_connect = pymysql.connect( host='localhost', port=3306, db = 'users_db', user='kc', passwd='toor', charset='utf8') 
    db_connected = db_connect.cursor() 
    sql_cmd = 'INSERT INTO user_info (USER_ID, USER_EMAIL) VALUES (%s, %s)' 
    db_connected.execute(sql_cmd,("kc", "kc@email.com")) 
    db_connected.execute(sql_cmd,("jpark", "jpark@email.com")) 
    db_connect.commit()


    결과>>

    그림4


    주석>>
    앞서 테이블을 확인하는 방법을 보았다. 여기서 테이블에 값을 확인하기 위해서 CMD 창에서 "select * from user_info"를 하면 user_info 테이블에 들어 있는 모든 값을 읽어 온다.

    코드에서 commit 실행을 cursor 값으로 실수로 입력하다 보니 DB 테이블의 ID 값이 5번 6번이 되었다.

     

     

     

    테이블(Table)에 데이터 검색하기(Search)


    코드>>

    import pymysql
    
    db_connect = pymysql.connect( host='localhost', port=3306, db = 'users_db', user='kc', passwd='toor', charset='utf8') 
    db_connected = db_connect.cursor() 
    sql_cmd = 'SELECT * FROM user_info where USER_ID = %s' 
    db_connected.execute(sql_cmd,("kc")) 
    print(db_connected.fetchall())


    결과>>

    ((5, 'kc', 'kc@email.com'),)


    주석>>
    fetchall 하였지만 결과가 하나이기 때문에 하나만 나왔다.

     

     

     

    테이블(Table)에 데이터 변경/업데이트 하기 (update)


    코드>>

    import pymysql 
    
    db_connect = pymysql.connect( host='localhost', port=3306, db = 'users_db', user='kc', passwd='toor', charset='utf8') 
    db_connected = db_connect.cursor() 
    sql_cmd = 'UPDATE user_info SET USER_ID = %s WHERE USER_EMAIL = %s' 
    db_connected.execute(sql_cmd,("modified_kc", "kc@email.com")) 
    db_connect.commit() 
    db_connect.close() 


    결과>>

    그림5


    주석>>
    코드에서 where 부분에서 변경하고자 하는 데이터를 찾고 set으로 변경할 부분을 변경하는 것이다.

     

     

     

     

     

    테이블(Table)의 내용 삭제하기(Delete, Drop)


    코드>>

    import pymysql 
    
    db_connect = pymysql.connect( host='localhost', port=3306, db = 'users_db', user='kc', passwd='toor', charset='utf8') 
    db_connected = db_connect.cursor() 
    sql_cmd = 'delete from user_info WHERE USER_ID = %s' 
    db_connected.execute(sql_cmd,("modified_kc")) 
    db_connect.commit() 
    db_connect.close() 


    결과>>

    그림6


    주석>>
    코드에서 from 에서 테이블명을 입력하고 where에서 삭제하고자 하는 데이터를 찾는다. 결과와 같이 내용이 삭제 되었다.


    반응형