MySQL常用SQL语句(Python实现学生、课程、选课表增删改查)

以基本的学生选课为例,建立选课数据库,学生、班级、选课信息三张表,并分别对表进行插删改操作:

import MySQLdb

try:
	conn = MySQLdb.connect(host = ‘localhost‘, user = ‘root‘, passwd = ‘root‘, db = ‘xuanke‘, port = 3306)
	cur = conn.cursor()

	cur.execute("CREATE DATABASE xuanke")

	cur.execute("CREATE TABLE Student (Sno VARCHAR(9) PRIMARY KEY, Sname VARCHAR(20) UNIQUE, Ssex VARCHAR(2), Sage SMALLINT, Sdept VARCHAR(20))")
	cur.execute("CREATE TABLE Course (Cno VARCHAR(4) PRIMARY KEY, Cname VARCHAR(40), Cpno VARCHAR(4), Ccredit SMALLINT, FOREIGN KEY (Cpno) REFERENCES Course(Cno))")
	cur.execute("CREATE TABLE SC (Sno VARCHAR(9), Cno VARCHAR(4), Grade SMALLINT, PRIMARY KEY (Sno, Cno), FOREIGN KEY (Sno) REFERENCES Student(Sno), FOREIGN KEY (Cno) REFERENCES Course(Cno))")

	cur.execute("INSERT INTO Student VALUES (‘200215121‘, ‘Stephen Zhou‘, ‘M‘, ‘20‘, ‘CS‘)")
	cur.execute("INSERT INTO Student VALUES (‘200215122‘, ‘Stan Qian‘, ‘M‘, ‘23‘, ‘CS‘)")
	cur.execute("INSERT INTO Student VALUES (‘200215123‘, ‘Linda Fan‘, ‘F‘, ‘21‘, ‘MA‘)")
	cur.execute("INSERT INTO Student VALUES (‘200215125‘, ‘Zac Gu‘, ‘M‘, ‘26‘, ‘IS‘)")
	cur.execute("INSERT INTO Course VALUES (‘2‘, ‘Math‘, Null, ‘2‘)")
	cur.execute("INSERT INTO Course VALUES (‘6‘, ‘Data Processing‘, Null, ‘2‘)")
	cur.execute("INSERT INTO Course VALUES (‘7‘, ‘PASCAL‘, ‘6‘, ‘4‘)")
	cur.execute("INSERT INTO Course VALUES (‘5‘, ‘Data Structure‘, ‘7‘, ‘4‘)")
	cur.execute("INSERT INTO Course VALUES (‘1‘, ‘Database‘, ‘5‘, ‘4‘)")
	cur.execute("INSERT INTO Course VALUES (‘3‘, ‘Information System‘, ‘1‘, ‘4‘)")
	cur.execute("INSERT INTO Course VALUES (‘4‘, ‘Operating System‘, ‘6‘, ‘3‘)")
	cur.execute("INSERT INTO SC VALUES(‘200215121‘, ‘1‘, ‘92‘)")
	cur.execute("INSERT INTO SC VALUES(‘200215121‘, ‘2‘, ‘85‘)")
	cur.execute("INSERT INTO SC VALUES(‘200215121‘, ‘3‘, ‘88‘)")
	cur.execute("INSERT INTO SC VALUES(‘200215122‘, ‘2‘, ‘90‘)")
	cur.execute("INSERT INTO SC VALUES(‘200215122‘, ‘3‘, ‘80‘)")

	cur.execute("INSERT INTO Student VALUES(‘200215128‘, ‘Cuan Qu‘, ‘M‘, ‘22‘, ‘IS‘)")
	cur.execute("UPDATE Student SET Sage = ‘23‘ WHERE Sno = ‘200215128‘")
	cur.execute("UPDATE Student SET Sage = Sage + 7")
	cur.execute("DELETE FROM Student WHERE Sno = ‘200215128‘")

	cur.close()
	conn.commit()
	conn.close()
except MySQLdb.Error, e:
	print ‘Mysql error msg: ‘, e
  • 显示数据库:

  • 显示所建表:

  • 显示学生表:

  • 显示课程表:

  • 显示选课信息表:

注:以上python程序中插入操作需要一步步运行,特别是课程表中‘Cpno’为先选课程,其为课程表外键并与Course.Cno参照,必须按顺序依次插入。

MySQL常用SQL语句(Python实现学生、课程、选课表增删改查)

时间: 2024-12-26 08:21:52

MySQL常用SQL语句(Python实现学生、课程、选课表增删改查)的相关文章

Mysql常用sql语句(一)- 操作数据库

21篇测试必备的Mysql常用sql语句,每天敲一篇,每次敲三遍,每月一循环,全都可记住!! https://www.cnblogs.com/poloyy/category/1683347.html 需要注意,创建数据库和创建表的语句博文都在前面哦,整个系列都是相互关联的哈,需要用到前面创建的数据库和表哦 前言 针对数据库的操作语句叫做数据定义语言(DDL)   数据库有哪些操作呢? 创建数据库 查询数据库 修改数据库 删除数据库 选择数据库 简称“增删改查“,点击右边目录即可跳转哦! ----

Mysql常用sql语句(二)- 操作数据表

21篇测试必备的Mysql常用sql语句,每天敲一篇,每次敲三遍,每月一循环,全都可记住!! https://www.cnblogs.com/poloyy/category/1683347.html 需要注意,创建数据库和创建表的语句博文都在前面哦 整个系列都是相互关联的哈,需要用到前面创建的数据库和表哦(系列博文第一篇和第二篇) 前言 针对数据表的操作语句叫做数据定义语言(DDL)   数据表有哪些操作? 创建数据表 查看表结构 查看数据表的创建语句 复制数据表 修改数据表 删除数据表 简称“

利用Java针对MySql封装的jdbc框架类 JdbcUtils 完整实现(包含增删改查、JavaBean反射原理,附源码)

最近看老罗的视频,跟着完成了利用Java操作MySql数据库的一个框架类JdbcUtils.java,完成对数据库的增删改查.其中查询这块,包括普通的查询和利用反射完成的查询,主要包括以下几个函数接口: 1.public Connection getConnection()   获得数据库的连接 2.public boolean updateByPreparedStatement(String sql, List<Object>params)throws SQLException  更新数据库

Python网络编程06----django数据库的增删改查

首先定义model如下. class UserInfo(models.Model): username=models.CharField(max_length=50,null=True,primary_key=False,db_index=True) #可以为空,不是主键,创建索引 password=models.CharField(max_length=50,error_messages={"invalid":"出错"}) #定义出错信息 gender=model

MySQL数据库(五)使用pymysql对数据库进行增删改查

折腾好半天的数据库连接,由于之前未安装 pip ,而且自己用的python 版本为3.6. 只能用 pymysql 来连接数据库,(如果有和我一样未安装 pip 的朋友请 点这里http://blog.csdn.net/qq_37176126/article/details/72824404  ),下边 简单介绍一下 连接的过程,以及简单的增删改查操作. 1.通过 pip 安装 pymysql 进入 cmd  输入  pip install pymysql 回车等待安装完成: 安装完成后出现如图

Python学习---django之ORM的增删改查180125

模型常用的字段类型参数 <1> CharField        #字符串字段, 用于较短的字符串.        #CharField 要求必须有一个参数 maxlength, 用于从数据库层和Django校验层限制该字段所允许的最大字符数.<2> IntegerField       #用于保存一个整数.<3> FloatField        # 一个浮点数. 必须 提供两个参数:    参数    描述        # max_digits    总位数(不

用基本数据结构修改后的学生信息管理系统(增删改查)

package com.xt.student.system; //创建学生类存放信息 public class Student {//声明变量private String stuNo; private String stuName; private String gender; private int age; private int score; //对变量进行封装 public String getStuNo() {return stuNo;} public void setStuNo(St

剑指架构师系列-MySQL常用SQL语句

(1)分清HAVING与WHERE的区别: HAVING 子句使你能够指定过滤条件,从而控制查询结果中哪些组可以出现在最终结果里面.WHERE 子句对被选择的列施加条件,而 HAVING 子句则对 GROUP BY 子句所产生的组施加条件. 以下的SQL语句都是基于MySQL5.6.30版本. 1.查询"1"课程比"2"课程成绩高的所有学生的学号 select a.Sno from (select Sno,score from SC where Cno=1 ) as

MySQL常用SQL语句综述

简述 之前一直使用的django的orm模型,最近想学习下原生sql语句的编写.以后工作中可能不使用django,为了更好的工作和提高自己的知识全面点,记录下常用的sql语句编写. 一.创建.删除.选择数据库 1. 如果数据库不存在就创建 CREATE DATABASE IF NOT EXISTS blog CHARACTER SET utf8 COLLATE utf8_general_ci; 2. 如果数据库存在就删除 DROP DATABASE IF EXISTS blog; 3. 切换到我