코딩공부/DB

mysql 데이터베이스 기본 명령어

표자 2022. 12. 6. 20:32
728x90
반응형

mysql

# 데이터베이스를 만들겠다.
create database firstBase;

# 해당 데이터 베이스를 사용하겠다
use firstBase;

# 테이블 생성
create table student(
    id int primary key auto_increment,  #칼럼명 자료형 제약조건 , (primary key -> (not null&& unique) auto_increment-> 자동으로 숫자를 늘려준다 ex) 1,2,3,4
    name varchar(50),                   #칼럼명 자료형 (varchar(50) => 문자를 50자 까지)
    age int,
    email varchar(50)
);
#city 테이블 생성
create table city(
    id int primary key auto_increment,
    city_name varchar(50)
);

#검색기능
select *                                                            #모든 걸 선택 찾겠다 ->
from student;                                                       #student 테이블에서.

select*
from city;

#테이블에 자료 추가
insert into student(name,age,email) values('김민수',92,'저도 몰라요');  #student(컬럼명1,컬럼명2,...) values(앞에 적은 컬럼명의 값! 같은 순서대로) 일부 컬럼만 선택해서 값 입력 가능
insert into student values(null,'aa',12,'adsa');                   #앞의 컬럼명 조건을 안 주면 values뒤에 모든 컬럼에 대한 값을 다 넣어야한다.
# city table data insert
insert into city values(null,'서울');
insert into city values(null,'경기');

#테이블에 칼럼추가
alter table student add city_name varchar(50);                      # student 테이블에 칼럼 추가
alter table city add city_id int;                                   # city 테이블에 칼럼 추가

# student에 city_id에 not null 조건을 주기 위해 일단 student에 city_id에 데이터 삽입
update student set city_id =1;

#테이블에 제약조건 추가
alter table student add constraint foreign key(city_id) references city(city_id);            #제약조건 추가 foreign key 넣기
alter table student modify city_id int not null;                                             #student 테이블에 city_id칼럼에 not null 조건 추가

# 삭제문
delete from student where id = 1;                                  #where 조건문 -> where 컴럼명 = 컬럼값;


# 포린키명 변경
# alter table student
#     drop foreign key "기존키명";
#
# alter table student
#     add constraint "바꿀키명"
#         foreign key (city_id) references city (city_id);

# 조인문
select s.name, c.city_name
from student s left join city c on s.city_id = c.city_id
where s.name = '김민수';

CRUD

from flask import Flask, render_template, request, jsonify
app = Flask(__name__)

import pymysql
db = pymysql.connect(host="localhost",
                     port=3306,
                     user="lee",
                     db='aa',
                     password='spartatest',
                     charset='utf8')
# db = config.DB_URL

curs = db.cursor()

@app.route("/members/lee/get", methods=["GET"])
def lee_sl():
  sql = """select * from student"""

  curs.execute(sql)  # execute안에 있는 sql쿼리문을 실행시킨다.
  curs.fetchall()
  db.commit()
  print('get 완료')
  return render_template("index.html")

@app.route("/members/lee/up", methods=["POST"])
def lee_up():
  datas = request.get_json()
  name = datas['name']
  id = datas['id']
  sql = """update student set name='%s' where id = '%s'""" %(name,id)
  curs.execute(sql)

  curs.fetchall()
  db.commit()
  print("업데이트 완료")
  return render_template("index.html")

@app.route("/members/lee/in", methods=["POST"])
def lee_a():
  params = request.get_json()
  name = params['name']
  age = params['age']
  email = params['email']
  city_id = params['city_id']

  sql ="""insert into student values (null,'%s' , '%s' ,'%s' , '%s')""" %(name,age,email,city_id)

  curs.execute(sql)  # execute안에 있는 sql쿼리문을 실행시킨다.
  curs.fetchall()
  db.commit()
  print('insert 완료')
  return render_template("index.html")

@app.route("/members/lee/del", methods=["Delete"])
def lee_d():
  params = request.get_json()
  id = params['id']
  sql = """delete from student where id = '%s'""" %(id)

  curs.execute(sql)  # execute안에 있는 sql쿼리문을 실행시킨다.
  curs.fetchall()
  db.commit()
  print('삭제완료')
  return render_template("index.html")



if __name__ == '__main__':
    app.run('0.0.0.0', port=5000, debug=True)
728x90
반응형