下面是一个简易商城的几张表的创建方式
drop database if exists shop ; create database shop CHARACTER SET 'utf8' COLLATE 'utf8_general_ci'; -- 授权 -- 将数据库shop的所有操作权限授予root用户 grant all on shop.* to 'root'@'localhost' identified by '123456'; use shop; -- 用户表 create table t_user( id int(10) primary key auto_increment, username varchar(50) comment '用户名', passwd varchar(50) comment '密码', nickname varchar(50) comment '昵称', type int(3) comment '用户类型' )ENGINE=InnoDB DEFAULT CHARSET=utf8; -- 收货地址表 create table t_address( id int(10) primary key auto_increment, name varchar(50) comment '收件人', phone varchar(50), postcode varchar(50), detail varchar(255) comment '详细地址', user_id int(10), constraint foreign key(user_id) references t_user(id) ); -- 订单表 create table t_orders( id int(10) primary key auto_increment, buy_date datetime comment '下单时间', pay_date datetime comment '付款时间', confirm_date datetime comment '确认时间', state int(3), user_id int(10), addr_id int(10), constraint foreign key(user_id) references t_user(id), constraint foreign key(addr_id) references t_address(id) ); -- 商品类别表 create table t_category( id int(10) primary key auto_increment, name varchar(50) ); -- 商品表 create table t_goods( id int(10) primary key auto_increment, name varchar(100) comment '商品名', intro text comment '商品简介', price double, img varchar(100) comment '图片地址', stock int(10) comment '库存', category_id int(10), constraint foreign key(category_id) references t_category(id) ); -- 商品订单多对多关联表 create table t_goods_orders( id int(10) primary key auto_increment, goods_id int(10), orders_id int(10), constraint foreign key(goods_id) references t_goods(id), constraint foreign key(orders_id) references t_orders(id) ); -- 购物车不存数据库 #注意 -- (双长划) 注释风格要求在两个长划后至少有一个空格!
导入到mysql数据库 source sql路径;
-- 查询地址的同时,将用户信息也查询出来 -- 查询出来发现,投影部分有两个id,需要额外处理
java语言中的sql语句 String sql="select *,t1.id as a_id,t2.id as u_id from t_address t1 left join t_user t2 on(t1.user_id=t2.id) where user_id=? ";