3

    科技2022-08-31  101

    文章目录

    一些笔记和链接工具连接 数据库创建表python mysql数据库插入数据插入多条数据 查询数据查询所有数据查询一条数据 删除数据修改数据更新数据库mysql命令行建表插入删除查询修改简写tips


    一些笔记和链接

    常用sql 语法查询

    更加详细的请看 我的 云笔记 我看的那本漫画书写的笔记。常用 操作 是够了的。

    我的看书笔记 写的非常详细,有需要的可以自己去看看。

    菜鸟教程 sql 教程

    mysql 常用建表操作

    最后是此文章帮我解决了问题

    mysql cmd 常用命令 (一般登录都是直接打开 sql自带的命令行工具登录就可以了)

    命令行登录方式 前提是 需要配置环境变量 C:\Program Files\MySQL\MySQL Server 8.0\bin mysql -u root -p 然后输入密码就行了

    MySQL w3c教程

    MySQL索引背后的数据结构及算法原理

    21分钟 MySQL 入门教程

    mysql 参考手册官网


    工具

    navicat可视化工具(mysql)

    连接 数据库

    import pymysql con=pymysql.connect(host='localhost',user='用户名',password='密码',database='数据库名字',port=3306) cursor = conn.cursor() # 创建一个 游标 cursor.execute("select 1") # 加载一个选择 1 等他返回 说明 连接成功 result = cursor.fetchone() print(result) # 返回一个 1 就代表连接上了 conn.close()

    创建表

    # 创建表 #导入pymysql import pymysql #创建连接 con=pymysql.connect(host='localhost',user='用户名',password='密码',database='数据库名字',port=3306) #创建游标对象 cur=con.cursor() #编写创建表的sql # sql 语句 sql=""" create table t_student( sno int primary key auto_increment, sname varchar(30) not null, age int(2), score float(3,1) ) """ try: # 执行创建表的sql cur.execute(sql) print('创建表成功') except Exception as e: print(e) print('创建表失败') finally: #关闭连接 con.close() 创建表成功

    建表

    CREATE TABLE `出口国信息` ( `出口国编码` INT ( 255 ) NOT NULL, `出口国名称` VARCHAR ( 255 ) DEFAULT NULL, `人口` INT ( 11 ) DEFAULT NULL, PRIMARY KEY ( `出口国编码` ) ) ENGINE = INNODB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci;

    可以看见 navicat软件的 sql 代码

    python mysql数据库插入数据

    插入一条

    # 插入数据 #导入模块 import pymysql #创建连接 con=pymysql.connect(host='localhost',user='用户名',password='密码',database='数据库名字',port=3306) #创建游标对象 cur=con.cursor() #编写插入数据的sql sql='insert into t_student(sname,age,score) values(%s,%s,%s)' try: # 执行sql cur.execute(sql, ('小强', 18, 99.9)) #提交事务 con.commit() print('插入成功') except Exception as e: print(e) con.rollback() print('插入失败') finally: #关闭连接 con.close()

    插入一条

    import pymysql con=pymysql.connect(host='localhost',user='用户名',password='密码',database='数据库名字',port=3306) cursor = conn.cursor() # 创建一个 游标 cursor.execute("select 1") result = cursor.fetchone() # insert into user(id,username,age,password) values(2,'bbb',20,'111111') 这里是插入数据 # sql = """ # insert into user(id,username,age,password) values(2,'bbb',20,'111111') # """ # cursor.execute(sql) # 映射到数据库 # conn.commit() # 提交到数据库 sql = """ insert into user(id,username,age,password) values(null,%s,%s,%s) """ # id指定为null,因为数据库里面已经设置为 自增长,所以就会自动增长了,%s占位字符串,这里全部都要 设置为%s 占位,因为数据库 把他作为 字符串处理 username = 'spider' age = 21 password = '123456' cursor.execute(sql, (username, age, password)) # 传一个元组进去,插入数据 conn.commit() # 提交数据 conn.close() # 关闭连接

    插入多条数据

    # 插入多条数据 #导入模块 import pymysql #创建连接 con=pymysql.connect(host='localhost',user='用户名',password='密码',database='数据库名字',port=3306) #创建游标对象 cur=con.cursor() #编写插入数据的sql sql='insert into t_student(sname,age,score) values(%s,%s,%s)' try: # 执行sql cur.executemany(sql,[('小明',19,99.8),('小红',18,99.9),('晓丽',18,99.8),('小花',19,99.6)]) #提交事务 con.commit() print('插入成功') except Exception as e: print(e) con.rollback() print('插入失败') finally: #关闭连接 con.close()

    查询数据

    import pymysql con=pymysql.connect(host='localhost',user='用户名',password='密码',database='数据库名字',port=3306) cursor = conn.cursor() # 创建一个 游标 # select username,age from user where id=1 # from 从 user查找 指定条件 where id=1 where 当id=1 的 username 和age # 另外一种查找方法 # select * from user # *代表所有的4个字段 # 这种方法第一次调用,就返回第一条数据 # 第二次调用就 返回第二条数据 ,依次往下 # sql = """ # select username,age from user where id=2 # """ # #################### fetchone ################ # 查询一条数据 # sql = """ # select * from user # """ # cursor.execute(sql) # # 这里是 所有数据打印出来 # while True: # result = cursor.fetchone() # if result: # 加条件 如果 获取到result数据 就继续 ,没有就说明取到 最后一条数据了,就结束 # print(result) # else: # break # conn.close() # ################### fetchall ############## # 查询所有数据 # sql = """ # select * from user # """ # cursor.execute(sql) # results = cursor.fetchall() # for result in results: # print(result) # conn.close() # ################# fetchmany ########### sql = """ select * from user """ cursor.execute(sql) results = cursor.fetchmany(3) # 数字几就是查询 几条数据 for result in results: print(result) conn.close()

    查询所有数据

    # 查询所有数据 #导入pymysql import pymysql #创建连接 con=pymysql.connect(host='localhost',user='用户名',password='密码',database='数据库名字',port=3306) #创建游标对象 cur=con.cursor() #编写查询的sql sql='select * from t_student where age=18' #执行sql try: cur.execute(sql) #处理结果集 students=cur.fetchall() for student in students: sno=student[0] sname=student[1] age=student[2] score=student[3] print('sno:',sno,'sname:',sname,'age:',age,'score:',score) except Exception as e: print(e) print('查询所有数据失败') finally: #关闭连接 con.close()

    查询一条数据

    # 查询一条数据 #导入pymysql import pymysql #创建连接 con=pymysql.connect(host='localhost',user='用户名',password='密码',database='数据库名字',port=3306) #创建游标对象 cur=con.cursor() #编写查询的sql sql='select * from t_student where age=18' #执行sql try: cur.execute(sql) #处理结果集 student=cur.fetchone() print(student) sno=student[0] sname=student[1] age=student[2] score=student[3] print('sno:',sno,'sname:',sname,'age:',age,'score:',score) except Exception as e: print(e) print('查询所有数据失败') finally: #关闭连接 con.close() (2, '小红', 18, 99.9) sno: 2 sname: 小红 age: 18 score: 99.9

    删除数据

    import pymysql con=pymysql.connect(host='localhost',user='用户名',password='密码',database='数据库名字',port=3306) cursor = conn.cursor() # 创建一个 游标 sql = """ delete from user where id=1 # 删除 id =1 的数据 """ cursor.execute(sql) # 加载命令 ,传如命令 # 插入.删除.更新 # 都需要执行commit操作 conn.commit() conn.close()
    # 删除数据 #导入模块 import pymysql #创建连接 con=pymysql.connect(host='localhost',user='用户名',password='密码',database='数据库名字',port=3306) #创建游标对象 cur=con.cursor() #编写删除的sql sql='delete from t_student where sname=%s' #执行sql语句 try: cur.execute(sql,('张三丰')) con.commit() print('删除成功') except Exception as e: print(e) con.rollback() print('删除失败') finally: #关闭连接 con.close()

    修改数据

    # 修改数据 #导入模块 import pymysql #创建连接 con=pymysql.connect(host='localhost',user='用户名',password='密码',database='数据库名字',port=3306) #创建游标对象 cur=con.cursor() #编写修改的sql sql='update t_student set sname=%s where sno=%s' #执行sql语句 try: cur.execute(sql,('张三丰',1)) con.commit() print('修改成功') except Exception as e: print(e) con.rollback() print('修改失败') finally: #关闭连接 con.close()

    更新数据库

    import pymysql con=pymysql.connect(host='localhost',user='用户名',password='密码',database='数据库名字',port=3306) cursor = conn.cursor() # 创建一个 游标 # 不加 where 会把 所有的 数据 改为bbb sql = """ update user set username='bbb' where id=2 """ cursor.execute(sql) # 加载命令 ,传如命令 # 插入.删除.更新 # 都需要执行commit操作 conn.commit() conn.close()

    mysql命令行

    具体可以看python 代码里面的 查询sql查询语句

    建表

    create table userinfoList( username varchar(100) , password varchar(100) );

    插入

    insert into userinfolist(username,password) values('pis','123456')

    删除

    delete from userinfolist where username='lili'

    查询

    select userName from userinfolist where password='333'

    修改

    set 代表要修改的值

    where 代表修改哪里

    # 语句1 update userinfoList set password='66666' where username='frank' # 语句2 update userinfolist set userName='frank',password='666' where userName='frank'

    简写

    如果针对所有字段的话可以 不需要写字段

    例如:

    insert into userinfolist values('pis','123456')

    tips

    字段不需要加引号但是value需要加 引号


    Processed: 0.010, SQL: 10