在Mysql中建立一个数据库cart,在库中建立两个表,分别是:goods(商品表),order(订单表)。
本教程用命令创建数据库,用命令创建数据库习惯了,比用PhpMyAdmin快,因为用phpMyAdmin每项设置都要点鼠标选择。
点右下角的wamp/MySQL/MySql控制台,输入密码,进入命令执行界面,
输入:
~~~
CREATE DATABASE cart DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
~~~
回车执行,即建成一个cart数据库,笔者测试过代码。
/*创建数据库命令格式*/
CREATE DATABASE 数据库名 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
使用utf8格式,可以让数据库支持多国语言。
接着建goods表,因为是学习,所以将goods表建的简单一些,主要包含以下几个字段:id(编号)、name(名称)、brand(品牌)、price(价格)、count(数量)等。
下面是E-R图:
![](https://box.kancloud.cn/7edf064934baed99fef182a3f3b49ed0_377x197.gif)
创建goods表命令行如下:
~~~
CREATE TABLE IF NOT EXISTS goods(
id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50) NOT NULL DEFAULT '',
brand VARCHAR(50) NOT NULL DEFAULT '',
price DECIMAL(10,2) UNSIGNED NOT NULL DEFAULT '0.00',
count INT(20) UNSIGNED NOT NULL DEFAULT '0'
)ENGINE=MyISAM DEFAULT CHARSET=utf8;
~~~
代码测试过,成功建表。
解析:
创建表的格式:
CREATE TABLE [ IF NOT EXISTS] 表名(字段名 属性);
注:最后一行,没有逗号(,),切记,否则命令建表时出错。
id 行
INT表示整形,长度为10;
UNSIGNED表示将数字类型无符号化,只保存正值;
NOT NULL表示不为空。
AUTO_INCREMENT表示自动增长型,每次插入数据,自动加1,非常方便。
PRIMARY KEY表示设置此字段为关键字。
* * * * *
name和brand行
VARCHAR ,字符型,长度50.
NO NULL,不能为空值。当插入新数据时,如果字段没有值,系统自动写入空字符串。
DEFAULT '',表示默认值为空字符串。
* * * * *
price行
DECIMAL,定点数。
DECIMAL(M,D),其中M表示十进制数字总的个数,D表示小数点后面数字的位数。
DECIMAL(10,2),总长度为10,小数点后保留2位。
UNSIGNED表示只保存正值;
NOT NULL表示不为空。
DEFAULT '0.00'
* * * * *
count行
INT表示整形,长度为10;
UNSIGNED表示只保存正值;
NOT NULL表示不为空。
DEFAULT '0'表示默认值为0.
注意:
count行是最后一行,后边不能加逗号“,”,否则出错。
* * * * *
ENGINE=MyISAM DEFAULT CHARSET=utf8;
ENGINE=MyISAM表示数据表引擎为MyISAM,这个必须要加上,否则会用引擎InnoDB。笔者观察,ecshop用的是MyISAM,所以建议用MyISAM.
DEFAULT CHARSET默认字符集为utf8;
* * * * *
插入四行数据,便于后边测试。
插入数据的命令格式:
INSERT INTO 表名(字段1,字段2,字段3,...) VALUES(数据1,数据2,数据3,...);
插入值为字符时,加引号,整数或小数点等,则直接写。
在记事本中写出以下代码,完成后,选中,复制。
~~~
INSERT INTO goods(name,brand,price,count) VALUES('商用台式机LN001','联想',5888.00,100);
INSERT INTO goods(name,brand,price,count) VALUES('数码相机CM058','三星',3699.00,50);
INSERT INTO goods(name,brand,price,count) VALUES('笔记本TN001','戴尔',7788.50,100);
INSERT INTO goods(name,brand,price,count) VALUES('昂达8寸平板','昂达',399.00,500);
~~~
用命令插入测试数据,比较快。进入mysql控制台,输入账号密码,
mysql>show databases; //显示数据库.
mysql>use cart; //使用cart库.
mysql>show tables; //显示cart库的表.
mysql>(点鼠标右键,选择弹出菜单“粘贴")回车,执行。
成功后,会提示:Query OK...
*注:细心朋友可能发现,插入字段中没有id,这是因为id有”AUTO_INCREMENT"属性,会自动序号,自动增加。*
* * * * *
建订单表(orders)
字段:ddnumber(订单号)、 cname(姓名)、address(地址)、mtel(手机号)、spc(session_goodsid)、slc(session_goodsnum)、yprice(运费)、totalprice(总价)、createtime(下单时间)
E-R图:
![](https://box.kancloud.cn/a82ac579d90f08925b9249464eb096ac_364x290.gif)
* * * * *
~~~
CREATE TABLE IF NOT EXISTS orders(
id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
cname VARCHAR(50) NOT NULL DEFAULT '',
address VARCHAR(50) NOT NULL DEFAULT '',
mtel VARCHAR(50) NOT NULL DEFAULT '',
spc INT(10) UNSIGNED NOT NULL DEFAULT '0',
slc INT(10) UNSIGNED NOT NULL DEFAULT '0',
yprice DECIMAL(10,2) UNSIGNED NOT NULL DEFAULT '0.00',
totalprice DECIMAL(10,2) UNSIGNED NOT NULL DEFAULT '0.00',
ddnumber VARCHAR(50) NOT NULL DEFAULT '',
createtime DATETIME NOT NULL
)ENGINE=MyISAM DEFAULT CHARSET=utf8;
~~~
各行注释参考goods表,不再赘述。
* * * * *
## 天行健,君子当自强不息!
* * * * *