精华内容
下载资源
问答
  • python的mysql数据库建立表与插入数据操作示例
    2020-12-10 12:14:17

    本文实例讲述了python的mysql数据库建立表与插入数据操作。分享给大家供大家参考,具体如下:

    mysql数据库建立表

    一 代码

    import pymysql

    # 打开数据库连接

    db = pymysql.connect("localhost","root","root","db_test01" )

    # 使用 cursor() 方法创建一个游标对象 cursor

    cursor = db.cursor()

    # 使用 execute() 方法执行 SQL,如果表存在则删除

    cursor.execute("DROP TABLE IF EXISTS EMPLOYEE")

    # 使用预处理语句创建表

    sql = """CREATE TABLE EMPLOYEE (

    FIRST_NAME CHAR(20) NOT NULL,

    LAST_NAME CHAR(20),

    AGE INT,

    SEX CHAR(1),

    INCOME FLOAT )"""

    cursor.execute(sql)

    print("CREATE TABLE OK")

    # 关闭数据库连接

    db.close()

    二 运行结果

    CREATE TABLE OK

    mysql数据库插入数据

    一 代码

    import pymysql

    # 打开数据库连接

    db = pymysql.connect("localhost","root","root","db_test01" )

    # 使用cursor()方法获取操作游标

    cursor = db.cursor()

    # SQL 插入语句

    sql = "INSERT INTO EMPLOYEE(FIRST_NAME, \

    LAST_NAME, AGE, SEX, INCOME) \

    VALUES ('%s', '%s', '%d', '%c', '%d' )" % \

    ('Mac', 'Mohan', 20, 'M', 2000)

    try:

    # 执行sql语句

    cursor.execute(sql)

    # 执行sql语句

    db.commit()

    print("insert ok")

    except:

    # 发生错误时回滚

    db.rollback()

    # 关闭数据库连接

    db.close()

    二 运行结果

    y =======

    insert ok

    希望本文所述对大家Python程序设计有所帮助。

    更多相关内容
  • 各位屏幕前的读者朋友大家早上中午晚上凌晨好,本文是《码出规范》专题的第十六篇,MySQL 数据库建表规范。文中参考阿里巴巴最新发布的《Java开发手册》,结合《springboot2.x独门秘籍》专题中的项目开发进度,...

    e2696c761218

    e2696c761218

    各位屏幕前的读者朋友大家早上中午晚上凌晨好,本文是《码出规范》专题的第十六篇,MySQL 数据库建表规范。文中参考阿里巴巴最新发布的《Java开发手册》,结合《springboot2.x独门秘籍》专题中的项目开发进度,学以致用,让你在开发中码出高效,码出质量。本专题所得收入均捐赠公益事情,希望用技术情怀帮助更多的人。

    e2696c761218

    e2696c761218

    关于MySQL数据库相关的规范,总计分为四篇文章来讲解,本文是第一篇:建表规范。

    强烈推荐做后端开发的程序员朋友认真学习学习MySQL数据库,因为工作以后首先接触到、并且工作头两年用到最多的一定是MySQL数据库。

    【强制】表达是与否概念的字段,必须使用 is_xxx 的方式命名,数据类型是 unsigned tinyint(1 表示是,0 表示否)。

    说明:任何字段如果为非负数,必须是 unsigned。

    注意:POJO 类中的任何布尔类型的变量,都不要加 is 前缀,所以,需要在设置从 is_xxx到 Xxx 的映射关系。数据库表示是与否的值,使用 tinyint 类型,坚持 is_xxx 的命名方式是为了明确其取值含义与取值范围。

    正例:表达逻辑删除的字段名 is_deleted,1 表示删除,0 表示未删除。

    【强制】表名、字段名必须使用小写字母或数字,禁止出现数字开头,禁止两个下划线中间只出现数字。数据库字段名的修改代价很大,因为无法进行预发布,所以字段名称需要慎重考虑。

    说明:MySQL 在 Windows 下不区分大小写,但在 Linux 下默认是区分大小写。因此,数据库名、表名、字段名,都不允许出现任何大写字母,避免节外生枝。

    正例:aliyun_admin,rdc_config,level3_name

    反例:AliyunAdmin,rdcConfig,level_3_name

    【强制】表名不使用复数名词。

    说明:表名应该仅仅表示表里面的实体内容,不应该表示实体数量,对应于 DO 类名也是单数形式,符合表达习惯。

    【强制】禁用保留字,如 desc、range、match、delayed 等,请参考 MySQL 官方保留字。

    【强制】主键索引名为 pk_字段名;唯一索引名为 uk_字段名;普通索引名则为 idx_字段名。

    说明:pk_ 即 primary key;uk_ 即 unique key;idx_ 即 index 的简称。

    【强制】小数类型为 decimal,禁止使用 float 和 double。

    说明:在存储的时候,float 和 double 都存在精度损失的问题,很可能在比较值的时候,得到不正确的结果。如果存储的数据范围超过 decimal 的范围,建议将数据拆成整数和小数并分开存储。

    【强制】如果存储的字符串长度几乎相等,使用 char 定长字符串类型。

    【强制】varchar 是可变长字符串,不预先分配存储空间,长度不要超过 5000,如果存储长度大于此值,定义字段类型为 text,独立出来一张表,用主键来对应,避免影响其它字段索引效率。

    【强制】表必备三字段:id, create_time, update_time。

    说明:其中 id 必为主键,类型为 bigint unsigned、单表时自增、步长为 1。create_time, update_time的类型均为 datetime 类型。

    10.【推荐】表的命名最好是遵循“业务名称_表的作用”。

    正例:alipay_task / force_project / trade_config

    11.【推荐】库名与应用名称尽量一致。

    12.【推荐】如果修改字段含义或对字段表示的状态追加时,需要及时更新字段注释。

    13.【推荐】字段允许适当冗余,以提高查询性能,但必须考虑数据一致。冗余字段应遵循:

    1) 不是频繁修改的字段。

    2) 不是 varchar 超长字段,更不能是 text 字段。

    3) 不是唯一索引的字段。

    正例:商品类目名称使用频率高,字段长度短,名称基本一不变,可在相关联的表中冗余存储类目名称,避免关联查询。

    14.【推荐】单表行数超过 500 万行或者单表容量超过 2GB,才推荐进行分库分表。

    说明:如果预计三年后的数据量根本达不到这个级别,请不要在创建表时就分库分表。

    15.【参考】合适的字符存储长度,不但节约数据库表空间、节约索引存储,更重要的是提升检索速度。

    正例:如下表,其中无符号值可以避免误存负数,且扩大了表示范围。

    对象

    年龄区间

    类型

    字节

    表示范围

    150 岁之内

    tinyint unsigned

    1

    无符号值:0 到 255

    数百岁

    smallint unsigned

    2

    无符号值:0 到 65535

    恐龙化石

    数千万年

    int unsigned

    4

    无符号值:0 到约 42.9 亿

    太阳

    约 50 亿年

    bigint unsigned

    8

    无符号值:0 到约 10 的 19 次方

    一如既往,期待您的真知灼见…,《码出规范》系列文章以及大厂内部资料将持续更新,如需获取资料或实战案例源码,欢迎点击我的主页呼叫我,乐意为你解决开发中的疑难杂症。

    e2696c761218

    展开全文
  • 数据库建表规范建议

    千次阅读 2016-09-23 09:02:18
    1. 数据库建表 参考《MySQL性能调优与架构设计》这本书。 1.1 统一使用支持事务处理的InnoDB存储引擎,字符编码utf-8,编码核对utf8_general_ci 1.2 表间关系尽量不要用id主键关联,例如订单与会员管理,可以用...

    代码review若干建议

    1.    数据库建表

    参考《MySQL性能调优与架构设计》这本书。

    1.1 统一使用支持事务处理的InnoDB存储引擎,字符编码utf-8,编码核对utf8_general_ci

    1.2 表间关系尽量不要用id主键关联,例如订单与会员管理,可以用会员的唯一编号。

    数据库迁移的时候可能会丢失id主键。

    1.3 适当的建立索引。索引建立技巧参考书籍或baidu

    1.4 适当的冗余字段,根据产品需求做冗余,如果有多个字段需要冗余,建议不要冗余了,一般冗余另外一张表的1~2个字段,哪些些字段可冗余,下面表的案例有些字段冗余多了。

    1.5 范式和反范式权衡使用,有些数据需要作为快照

    1.6 表是有主次之分的。例如订单,会建一张主要的订单信息表,相关业务都是围绕这个表扩展的,例如选品,支付,退货……一系列可扩展。到了支付系统里面,又会建立支付流水这张主表,其他的附加信息可以扩展。

    1.7 表中数据不要存null这样的值,null处理麻烦事多,搞不好还会大大的影响性能,建议可以为null的值转换成not null default ‘’ 。

    1.8 必要的唯一约束,唯一约束就是唯一索引。

    1.9 表名命名:业务名称_表名称[_功能]。

    例如,线下订单:off_order 线下订单项:off_order_item

    表主键id的注释必须说明表的注释.例如:线下订单表主键id

    Powerdesigner工具只做表间关系图。不作为最终的sql生成器。

    手动把sql写好。

    CREATE TABLE `off_order` (
    `id` bigint(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
    `order_no` varchar(50) NOT NULL COMMENT '订单编号',
    `order_type` tinyint(4) NOT NULL DEFAULT '0' COMMENT '订单类型;1.零售,2批发',
    `member_mobile` varchar(50) NOT NULL DEFAULT '' COMMENT '会员手机号码',
    `member_no` varchar(50) NOT NULL DEFAULT '' COMMENT '会员卡号',
    `member_name` varchar(50) NOT NULL DEFAULT '' COMMENT '会员姓名',
    `store_no` varchar(50) NOT NULL DEFAULT '' COMMENT '网点编号',
    `store_name` varchar(50) NOT NULL DEFAULT '' COMMENT '网点名称',
    `store_mobile` varchar(50) NOT NULL DEFAULT '' COMMENT '网点联系手机号码',
    `store_contact` varchar(50) NOT NULL DEFAULT '' COMMENT '网点联系人姓名',
    `area_name` varchar(50) NOT NULL DEFAULT '' COMMENT '县域名称',
    `area_addr` varchar(50) NOT NULL DEFAULT '' COMMENT '县域地址',
    `order_amount` decimal(6,2) NOT NULL DEFAULT '0.00' COMMENT '订单金额',
    `pay_way` tinyint(4) NOT NULL DEFAULT '0' COMMENT '订单支付方式,1。现金支付; 2.会员卡支付;3.会员现金支付',
    `pay_status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '订单支付状态:0未支付;1支付中;2支付成功;3支付失败',
    `terminal_serial` varchar(50) NOT NULL DEFAULT '' COMMENT '终端机序列号',
    `create_user_id` bigint(11) NOT NULL DEFAULT '0' COMMENT '创建用户Id',
    `create_datetime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '订单创建时间',
    `STATUS` tinyint(4) NOT NULL DEFAULT '0' COMMENT '记录状态,0,有效订单;1。订单已删除',
    PRIMARY KEY (`id`),
    UNIQUE KEY `order_no` (`order_no`)
    ) ENGINE=InnoDB AUTO_INCREMENT=23195 DEFAULT CHARSET=utf8

    1. 数据库字段说明:_time代表后缀 *代码匹配合适的文字

    字段

    字段名称

    数据库类型

    Java类型

    注释

    主键

    id

    Bigint

    Long

    线下订单主键id

    订单编号

    order_no

    Varchar(可变长度)

    String

    订单编号

    时间

    _time

    timestamp

    Date

    时间,日期(都是用这个类型,其他类型不合适)

    类型

    _type

    tinyint

    Integer

    *类型。1.批发,2零售(类型要枚举)

    状态

    _status

    tinyint

    Integer

    *状态。1.已支付,2未支付(状态要枚举)

    标记

    delete_mark

    bit

    Boolean

    记录是否已删除。

    金额

    _ amount

    decimal(8,2)

    bigdecimal

    *金额。

    价格

    _ price

    decimal(8,2)

    BigDecimal

    *价格

    线下:off 线上:online 订单:order 商品:good 记录:record 明细:detail

    金额:amount 支付:payment 状态:status 类型:type 图片地址:img_url

    区域:area 行政区:district 活动:activity 账户:account  sku 销售:Sales

    供应商:supplier 品牌:brand 平台:platform 种类:Category

    规格:specification 网点店铺:store 广告:ad 用户:user 子项:item

    库存:Stock 退货:Refund 操作:operation 时间time 编码:code

    父级:parent 子级:sub 主:main 主键:id 编号:no 历史: history

    价格:price 原始:original 实际:reality 卖家:seller 买家:buyer

    代理:agent 省province 市city 县county 区district    地址address

    发货:send 创建:create 收货:receive 标志:mark 备注remark

    2. 代码编辑

    去复习一下java基础的书籍,写代码可以写先写简单的中文步骤或代码流程图,这些步骤最后就是最好的注释,这样写代码我相信就算只写一半,第二天再来写都不会忘记。养成好的代码习惯非常重要。

    1、码面向对象的思想。读代码都一块一块读的,快速定位。命名百度一下,有最佳命名方案的。

    2、controller层接收参数,进行参数校验,然后把参数直接给service层处理。不要太多的逻辑处理,命名与业务相关,与service对应,接口url量采用restful,全部小写支持restful风格。

    3、service逻辑处理的关键,每个service都应该对应良好的单元测试。方便别人和自己调试你的接口,命名与业务相关。

    4、Dao要基本不需要涉及到业务逻辑。命名也基本不与业务相关。

    6、变量命令写全一点,一般一个对象也就在一个业务里面用一次而已,都是简写,相当于把代码做了混淆。

    5、码后要junit测试,调试,调整代码。对自己写的代码多做review。

    展开全文
  • 数据库建表3大范式

    2019-06-24 10:06:23
    数据库建表3大范式什么是范式范式的基本分类第一范式第二范式第三范式反三范式 什么是范式 范式是指:设计数据库表的规则(Normal Form)​ 好的数据库设计对数据的存储性能和后期的程序开发,都会产生重要的影响。建立...

    什么是范式

    范式是指:设计数据库表的规则(Normal Form)​ 好的数据库设计对数据的存储性能和后期的程序开发,都会产生重要的影响。建立科学的,规范的数据库就需要满足一些规则来优化数据的设计和存储

    范式的基本分类

    目前关系数据库有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴斯-科德范式(BCNF)、第四范式(4NF)和第五范式(5NF,又称完美范式)。满足最低要求的范式是第一范式(1NF)。在第一范式的基础上进一步满足更多规范要求的称为第二范式(2NF),其余范式以次类。一般说来,数据库只需满足第三范式(3NF)就行了。

    第一范式

    即数据库表的每一列都是不可分割的原子数据项,而不能是集合、数组、记录等非原子数据项。即实体中的某个属性有多个值时,必须拆分为不同的属性。在符合第一范式(1NF)表中每个列的值只能是表的一个属性或一个属性的一部分。简而言之,第一范式每一列不可再拆分,称为原子性。第一范式:表中每一列不能再拆分
    在这里插入图片描述
    ![在这里插入图片描述](https://img-blog.csdnimg.cn/20190624095801232.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80Mzg0OTc1NQ==,size_16,color_FFFFFF,t_70
    小结:如果不遵守第一范式,查询出数据还需要进一步处理(查询不方便)。遵守第一范式,需要什么字段的数据就查询什么数据(方便查询)。

    第二范式

    第二范式(2NF)要求数据库表中的每个实例或记录必须可以被唯一地区分。选取一个能区分每个实体的属性或属性组,作为实体的唯一标识。例如在员工表中的身份证号码即可实现每个员工的区分,该身份证号码即为候选键,任何一个候选键都可以被选作主键。在找不到候选键时,可额外增加属性以实现区分。​ 第二范式(2NF)要求实体的属性完全依赖于主关键字。所谓完全依赖是指不能存在仅依赖主关键字一部分的属性。如果存在,那么这个属性和主关键字的这一部分应该分离出来形成一个新的实体,新实体与原实体之间是一对多的关系。为实现区分通常需要为表加上一个列,以存储各个实例的唯一标识。简而言之,第二范式就是一张表只描述一件事情,表中的每一个字段都依赖于主键

    在这里插入图片描述
    小结:如果不准守第二范式,数据冗余,相同数据无法区分。遵守第二范式减少数据冗余,通过主键区分相同数据。

    第三范式

    在2NF基础上,任何非主属性不依赖于其它非主属性(在2NF基础上消除传递依赖)第三范式(3NF)是第二范式(2NF)的一个子集,即满足第三范式(3NF)必须满足第二范式(2NF)。简而言之,第三范式(3NF)要求一个关系中不包含已在其它关系已包含的非主关键字信息。
    

    在这里插入图片描述
    小结:如果不准守第三范式,可能会有相同数据无法区分,修改数据的时候多张表都需要修改(不方便修改)。遵守第三范式通过id可以区分相同数据,修改数据的时候只需要修改一张表(方便修改)。

    反三范式

    • 在三范式的基础上进行的改造和优化,适应于现代化的开发方式
    • 通过添加冗余字段的方式(可推导字段)
    • 进行数据库保存和更新的时候就需要维护冗余字段
    展开全文
  • 数据库建模 极简易用数据库建模过程精细提炼,化繁为简,省去不必要的操作,只留下最需要的,直截了当的展现给...自带案例自带参考案例,以耳熟能详的[学生信息管理]为原型参考,让用户能够快速了解PDMan。 ...
  • 1、MySQL安装目录解释 bin:可执行文件。 include:放置了软件的.h头文件。 lib:放置了库文件 share:放置了字符集等信息 my-default.ini 这是配置文件:用来修改服务器的配置。一般修改完毕后要重新...数据库管理系统...
  • 计算机后端-PHP视频教程. php与mysql加强- 08. php加强36-综合建表案例.wmv
  • 本节内容:mysql数据库动态创建表所谓动态创建表:即表的字段名和字段数均不固定,根据需求来创建。第一步.创建相关表复制代码 代码示例:/*---建立所有指标信息的临时表---*/drop table if exists ...
  • 尝试在你选定的数据库平台中建立实体型所对应的表,并想办法往其中插入数据,验证你所设计的模型的合理性。 答:列出所有的实体型: 用户(用户ID,个人简介,用户名,所在行业) 问题(问题ID,用户ID,发布时间,...
  • SQLite是一种嵌入式数据库,它的数据库就是一个文件,且SQLite是遵守ACID的关系数据库管理系统,它包含在一个相对小的C程序库中,与许多其它数据库管理系统不同,SQLite不是一个客户端/服务器结构的数据库引擎,而是...
  • 1、数据库和实例 DM数据库服务是由“数据库”和“实例”组成。这两个概念还是有着很大的差别,甚至可以说它们是两个完全不同的实体。 1.1 数据库简介 在有些情况下,数据库的概念包含的内容会很广泛。如在单独...
  • 1、新建学生表这节课我们来把和数据库以及jdbc相关的内容完成,首先,进行数据库建表。数据库呢,我们采用MySQL数据库,我们可以通过navcat之类的管理工具来轻松建表。首先,我们得建一个数据库,名字叫db_student。...
  • 2:编写建表向导窗体…… 3:火车票预定程厅… 124 巩固练习… 第6章 MD窗体应用程序设计… 核心技能部分…… 130 6.1 SD窗体和MD窗体应用程序简介. 错误!未定义书签。 6.2 单文档应用程序的创建 30 62.1菜单栏( ...
  • 1、新建学生表这节课我们来把和数据库以及jdbc相关的内容完成,首先,进行数据库建表。数据库呢,我们采用MySQL数据库,我们可以通过navcat之类的管理工具来轻松建表。首先,我们得建一个数据库,名字叫db_student。...
  • JSP案例-仿淘宝,并采用了DWR技术来改善用户体验,分享给大家学习。
  • 数据库图书管理建表与修改表

    千次阅读 2021-01-19 20:24:39
    根据调研选定实体及相应属性画出E-R图​2、将E-R模型转换为对应...3. 建数据库及表,定义各属性的域 。并完成主码、外码的定义。根据上面的表结构,要求:① 对每个属性选择合适的数据类型;② 定义每个表的主码、...
  • 贴吧类网站数据库建表自析

    千次阅读 2016-04-13 14:21:13
    贴吧类网站数据库表分析
  • mysql 建表语句 及完整案例

    万次阅读 多人点赞 2017-12-28 17:35:10
    以下是我们公司关于爬取机票信息 保存的表格案例: CREATE TABLE `mf_fd_cache` ( `id` bigint(18) NOT NULL AUTO_INCREMENT, `dep` varchar(3) NOT NULL DEFAULT '', `arr` varchar(3) NOT NULL ...
  • SQL_qq数据库 首先建库导入三张表 QQuser表 Relation表 BaseInfo表 外键 建立关系
  • 京东网站建表案例

    2020-08-22 13:52:00
    建表语句 品类表 use shop; create table t_group( id int unsigned not null primary key auto_increment comment'主键', g_id int unsigned not null comment'品类编号', `name` varchar(200) not null default ''...
  • 数据库操作案例

    2022-04-28 10:37:03
    请用 create index 语句在数据库 db_test 的表 content 中,根据留言标题列的前三个 字符采用默认的索引类型创建一个升序索引 CREATE INDEX index_subject ON content(subject(3)ASC); 2 请使用 select into......
  • 北大青鸟数据库项目-----宠物商店 1宠物商店Java 源代码(DAO) 2数据库建表结构以及表中内容,都有展示 3效果展示图 数据库信息修改src目录下database.properties 文件
  • 优化是个大话题,可以从索引,建表和SQL 调优(SQL Tuning)方面入手,这个我们来分析下建表时需要注意的优化点。 我一般会问候选人,“你有没有设计过数据表?”,大多数回答是设计过,接着我会比较阴险地问下:...
  • 1、说明:创建数据库 CREATE DATABASE database-name 2、说明:删除数据库 drop database dbname 3、说明:备份sql server --- 创建 备份数据的 device USE master EXEC sp_addumpdevice 'disk', 'testBack', 'c:\...
  • 本文主要向大家介绍了MySQL数据库之MySQL创建数据表的实例教程 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助。MySQL创建数据表创建MySQL数据表需要以下信息:表名表字段名定义每个表字段语法以下...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 13,471
精华内容 5,388
关键字:

数据库建表案例