比方说,我想要在新建的mrsoft数据库里面创建一个表。
表名为: books. 然后为它增加5个字段,分别是: id(主键)、name(图书名称)、category(图书分类)、price(图书合格)、publish_time(出版时间)。
创建books的SQL语句如下:
sql = '''
CREATE TABLE books (
id int(8) NOT NULL AUTO_INCREMENT,
name varchar(50) NOT NULL,
category varchar(50) NOT NULL,
price decimal(10,2) DEFAULT NULL,
publish_time date DEFAULT NULL,
PRIMARY KEY (id)
) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
'''
首先创建表名: CREATE TABLE books。然后上面也说了,需要增加5个字段。
id(主键) 整数类型,长度为8 非空。 主键为: Key(钥匙)
name(图书名称),实际长度类型为50,非空。
category(图书分类),实际长度为50,非空。
price(图书价格),定点数类型,其标准格式是DECIMAL(M,D),其中M为长度,D为小数位数。长度为10,小数位数为2位。默认为空值
publsih_time(出版时间),date为时间,默认为空值。
建好表之后,对主键增加约束: 使用PRIMARY KEY(id) .
ENGINE=MyISAM (默认引擎为MyISAM,其中MyISAM是基于传统的ISAM类型)
AUTO_IMCREMENT=1 (这个是修饰主键primary key,自动增长1.举个简单例子,你的数据库记录有一条记录,departmentid为1,当你添加一条记录时,department自动增加1,新增为2)
DEFAULT CHARSET=utf8 (默认字符集为utf8编码)
mysql数据表中的主键(primary key)有如下几种约束:
1、PRIMARY KEY 约束唯一标识数据库表中的每条记录。
2、主键必须包含唯一的值。
3、主键列不能包含 NULL 值。
4、每个表都应该有一个主键,并且每个表只能有一个主键。
创建表之前可以使用下面语句:
DROP TABLE IF EXISTS ‘books’
如果mrsoft数据库中已经存在对象books.那么先删除books.然后再创建books数据表
具体代码如下:
# 创建数据表
# 引入pymysql数据库
import pymysql
# 打开数据库链接
db = pymysql.connect('localhost','root','123456','mrsoft')
# 使用cursor方法创建一个游标对象cursor
cursor = db.cursor()
#使用execute()方法执行SQL,如果表存在则删除
cursor.execute('DROP TABLE IF EXISTS books')
# 使用预处理语句创建表
sql = '''
CREATE TABLE books (
id int(8) NOT NULL AUTO_INCREMENT,
name varchar(50) NOT NULL,
category varchar(50) NOT NULL,
price decimal(10,2) DEFAULT NULL,
publish_time date DEFAULT NULL,
PRIMARY KEY (id)
) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
'''
# 执行SQL语句
cursor.execute(sql)
# 关闭数据库链接
db.close()
运行代码后,mrsoft数据库下就已经创建了一个books表,打开Navicat F5 刷新一下,发现mrsoft数据库下面多了一张books表,右键单击books.选择设计表,如下:

创建数据表完成
本文介绍了如何在MySQL中创建名为books的数据表,包括表结构设计,如id、name、category、price和publish_time字段的详细说明,以及主键设置、引擎类型、字符集等关键配置。同时,提供了在已有表的情况下,如何使用DROP TABLE IF EXISTS语句安全创建表的示例。

2402





