学校的达标课考核测试题目较为基础的一个考核题,京东售卖项目。

达标题目要求,一个主表三个分类表根据主表创建,两个外键表及拆分一个子表。

下面是数据库创建过程:

create database jingdong char set = utf8;use jingdong;# 商品表
create table goods(id int unsigned primary key auto_increment not null,name varchar(150) not null,cate_name varchar(40) not null, #类别名brand_name varchar(50) not null, #品牌名price decimal(10,3) not null default 0,is_show bit not null default 1, #是否显示is_saleoff bit not null default 0 #是否售馨);insert into goods values (0,'r510vc 15.6英寸笔记本','笔记本','华硕','3399',default,default),(0,'y400n 14.0英寸笔记本电脑','笔记本','联想','4999',default,default),(0,'g150th 15.6英寸笔记本','游戏本','雷神','8499',default,default),(0,'x550cc 15.6英寸笔记本','笔记本','华硕','2799',default,default),(0,'x240 超级本','超级本','联想','4880',default,default),(0,'u330p 13.3英寸超级本','超级本','联想','4299',default,default),(0,'svp13226scb 触控超级本','超级本','索尼','7999',default,default),(0,'ipad mini 7.9英寸平板电脑','平板电脑','苹果','1998',default,default),(0,'ipad air 9.7英寸平板电脑','平板电脑','苹果','3388',default,default),(0,'ipad mini 配备retina显示屏','平板电脑','苹果','2788',default,default),(0,'ideacentre c340 20英寸一体电脑','台式机','联想','3499',default,default),(0,'vostro 3800-r1206 台式电脑','台式机','戴尔','2899',default,default),(0,'imac me086ch/a 21.5英寸一体电脑','台式机','苹果','9188',default,default),(0,'at7-7414lp 台式电脑 linux','台式机','苹果','3699',default,default),(0,'z220sff f4f06pa工作站','服务器/工作站','惠普','4288',default,default),(0,'powereedge ii服务器','服务器/工作站','戴尔','5388',default,default),(0,'mac pro专业级台式电脑','服务器/工作站','苹果','28888',default,default),(0,'hmz-t3w 头戴显示设备','笔记本配件','索尼','6999',default,default),(0,'商务双肩背包','笔记本配件','索尼','99',default,default),(0,'x3250 m4机架式服务器','服务器/工作站','ibm','6888',default,default),(0,'商务双肩背包','笔记本配件','索尼','99',default,default);# 订单表
create table orders(id int unsigned primary key  auto_increment not null ,order_data_time datetime not null ,customers_id int unsigned not null
);# 顾客表
create table customers(id int unsigned primary key auto_increment not null ,name varchar(150) not null ,address varchar(150) not null ,tel varchar(20) not null ,passwd varchar(30) not null
);# 订单详情表
create table order_detail(id int unsigned auto_increment primary key not null ,quality int unsigned not null ,order_id int unsigned not null ,good_id int unsigned not null
);# 设置外键
alter table orders add foreign key (customers_id) references customers(id);
alter table order_detail add foreign key (order_id) references orders(id);
alter table order_detail add foreign key (good_id) references goods(id);-- 拆分商品类子表
-- 操作
CREATE TABLE IF NOT EXISTS goods_brand(id INT UNSIGNED PRIMARY KEY NOT NULL auto_increment,name VARCHAR(48) NOT NULL
)SELECT brand_name AS name FROM goods GROUP BY brand_name;-- 同步两表数据
UPDATE goods g INNER JOIN goods_brand b ON g.brand_name = b.name SET g.brand_name = b.id;-- 操作三 修改字段名(保证数据属性一致)
-- 通过一个表的字段来存储另一个表的主键时候,两个字段的数据必须相同
ALTER TABLE goods CHANGE brand_name brand_id INT UNSIGNED NOT NULL;-- 操作四添加外键
ALTER TABLE goods ADD FOREIGN KEY (brand_id) REFERENCES goods_brand(id);-- 拆分子表操作1创建商分类表,将总表中的数据插入进去 create table if not exists goods_cates ( id int unsigned primary key auto_increment not null, name varchar(50) not null );select cate_name as name from goods group by cate_name;
-- 为指定字段间接插入数据 insert into goods_cates(name) select cate_name from goods group by cate_name; -- 操作2同步数据 update goods as g inner join goods_cates as c on g.cate_name =c.name set g.cate_name =c.id; 

python连接部分:

# python 进行数据库查询
from pymysql import *class JD(object):def __init__(self):self.conn = connect(host="localhost", port=3306, user='root',password='root', db='jingdong', charset='utf8')self.cursor = self.conn.cursor()def __del__(self):self.cursor.close()self.conn.close()def executr_sql(self, sql):self.cursor.execute(sql)for temp in self.cursor.fetchall():print(temp)def show_all_items(self):sql = 'select * from goods'self.executr_sql(sql)def show_cates(self):sql = 'select name from goods_cates'self.executr_sql(sql)def show_brands(self):sql = 'select name from goods_brand'self.executr_sql(sql)@staticmethoddef print_menu():print("--------京东数据库操作--------")print("1.查询所有商品")print("2.查询所有商品分类")print("3.查询所有商品品牌分类")print("4.退出")num = input("请输入对应功能序列号:")return numdef run(self):while True:num = self.print_menu()if num == "1":# 显示所有商品self.show_all_items()elif num == "2":# 显示所有商品分类self.show_cates()elif num == "3":# 显示所有商品品牌分类self.show_brands()elif num == "4":# 退出breakelse:print("输入指令有误,请重新输入:")def main():# 创建对象jd = JD()# 调用run方法jd.run()if __name__ == "__main__":main()

python打印前17行数据输出:

from pymysql import *
def main():conn = connect(host="localhost",port=3306,user='root',password='root',database='jingdong',charset='utf8')cs1 = conn.cursor()count = cs1.execute('select id,name from goods limit 0,17',)print("受影响的行数:", count)print(cs1.fetchall())for i in range(count):res = cs1.fetchone()print("------")print(res)cs1.close()conn.close()
if __name__ == '__main__':main()

MySQL练习:达标数据库创建及连接python(京东项目)相关推荐

  1. MySQL云数据库+微信小程序+Python做项目

    MySQL云数据库+微信小程序+Python做项目 文章目录 MySQL云数据库+微信小程序+Python做项目 云数据库部分 Python连接云数据库 微信小程序连接云数据库 云数据库部分 大学生如 ...

  2. SQLAlchemy的使用---外键ForeignKey数据库创建与连接

    SQLAlchemy的使用---外键ForeignKey数据库创建与连接 # 一对多建表操作 from sqlalchemy.ext.declarative import declarative_ba ...

  3. 使用 MySQL Workbench为现有 MySQL 或 MariaDB 数据库创建ER图

    本文将向您展示如何使用 MySQL 工作台为现有 MySQL 或 MariaDB 数据库创建图表. 对数据库进行反向工程 要从现有数据库创建关系图,您需要使用逆向工程功能来创建模型. 了解 MySQL ...

  4. MySQL跨不同数据库创建视图

    MySQL跨不同数据库创建视图 语法: create view 视图所在库库名.视图名称 as ( SELECT 表所在库库名.表名.列名 AS 列的重命名..... FROM 表所在库库名.表名); ...

  5. jmeter连接MySQL出错_MySQL数据库之jmeter连接mysql数据库报错Cannot create PoolableConnectionFactory...

    本文主要向大家介绍了MySQL数据库之jmeter连接mysql数据库报错Cannot create PoolableConnectionFactory  ,通过具体的内容向大家展现,希望对大家学习M ...

  6. c 连接mysql批量存储数据库_C语言连接操作MySQL数据库的方法

    C语言连接操作MySQL数据库的方法 2014-07-13 16:20来源:中国存储网 导读:C语言连接mysql数据库,需要相应的头文件和lib文件,如果你安装Mysql数据库,会在安装目录下找到这 ...

  7. 使用MySQL Workbench进行数据库创建

    MySQL Workbench是一款专门为了MySQL设计的ER和数据库建模工具. 我们可以使用它进行设计和创建数据库图表,以及可以进行复杂的MySQL数据迁移等多种功能. MySQL在计算机行业中是 ...

  8. oracle mysql 同义词_Oracle数据库创建同义词(synonym)详细讲解

    1.1数据库创建同义词(synonym) Oracle的同义词(synonyms)从字面上理解就是别名的意思,和视图的功能类似,就是一种映射关系.它可以节省大量的数据库空间,对不同用户的操作同一张表没 ...

  9. Django的数据库创建、连接与迁移

    一.Django默认初始数据库为sqlite3数据库: 开始创建sqlite3数据库: 连接数据库: file的文件路径需与自己的路径一致: 二.Django创建MySQL数据库: 1.安装MySQL ...

最新文章

  1. C语言 函数(做个笔记)
  2. idea中配置maven的骨架本地下载方式
  3. azkaban工作流调度器及相关工具对比
  4. Android中的AsyncTask异步加载图片
  5. WPF安装打印机驱动后PrintDialog 执行打印事件
  6. 北师大计算机试题五答案,北京师范大学计算机软件及理论2022考研招生分析、参考书、真题等复习指导解析...
  7. vsftpd常用操作
  8. Java课程设计【学生信息管理系统】
  9. 浅析Spring.net 中的Aop使用
  10. 伺服电机PID控制及增益调节
  11. 锐捷交换机常用命令速查
  12. 微信公众号实现人脸识别功能
  13. 虚拟服务器网络未识别,vm虚拟机未识别的网络
  14. 数模2021暑期培训
  15. 清橙OJ A1036.分解质因数
  16. 学习汇编语言-输入十进制数转为十六进制和二进制
  17. JS的DOM操作3--删除事件,注册事件与冒泡⭐⭐⭐(附带动图案例)
  18. 用python画带有正负值的条形图
  19. python怎么导入数据集keras_keras使用Sequence类调用大规模数据集进行训练的实现
  20. 为什么计算机编程全用英语,为什么所有编程都是英文的?为什么不能中文程序?...

热门文章

  1. 蓝迪游戏正式开放源代码
  2. 神经肿瘤组学基础知识、工作流程及应用
  3. 你是一名【合格】前端工程师吗
  4. 分布式消息中间件应用实践
  5. 南信大的计算机科学与技术专业,南信大计算机科学与技术、测绘工程专业通过中国工程教育专业认证...
  6. 【视频直播场景下P2P对等网技术①】挑战与形式化分析
  7. Diary for simple things.
  8. appium命令版安装
  9. 兼容IE8的旋转角度
  10. JavaScript语言精粹读书笔记