mysql代码
# 创建用户表
CREATE TABLE `user`(
userid INT PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(20) NOT NULL,
`password` VARCHAR(18) NOT NULL,
address VARCHAR(100),
phone VARCHAR(11)
)CHARSET=utf8;
#创建分类表
CREATE TABLE category(
cid VARCHAR(32) PRIMARY KEY,
cname VARCHAR(100) NOT NULL
)CHARSET=utf8;
# 商品表
CREATE TABLE products(
pid VARCHAR(32) PRIMARY KEY,
`name` VARCHAR(40),
price DOUBLE(7,2),
category_id VARCHAR(32),
CONSTRAINT FOREIGN KEY(category_id) REFERENCES category(cid)
)CHARSET=utf8;
#订单表
CREATE TABLE `order`(
oid VARCHAR(32) PRIMARY KEY,
totalprice DOUBLE(12,2),
userid INT,
CONSTRAINT FOREIGN KEY(userid) REFERENCES `user`(userid)
)CHARSET=utf8;
# 订单项表
CREATE TABLE orderitem(
oid VARCHAR(32),
pid VARCHAR(32),
num INT,
PRIMARY KEY(oid,pid),
FOREIGN KEY(oid) REFERENCES `order`(oid),
FOREIGN KEY(pid) REFERENCES products(pid)
)CHARSET=utf8;
#-----------------------------------------------
#初始化数据
#用户表添加数据
INSERT INTO USER(username,PASSWORD,address,phone) VALUES('张三','123','北京昌平沙河','13812345678');
INSERT INTO USER(username,PASSWORD,address,phone) VALUES('王五','5678','北京海淀','13812345141');
INSERT INTO USER(username,PASSWORD,address,phone) VALUES('赵六','123','北京朝阳','13812340987');
INSERT INTO USER(username,PASSWORD,address,phone) VALUES('田七','123','北京大兴','13812345687');
#给商品表初始化数据
INSERT INTO products(pid,`name`,price,category_id) VALUES('p001','联想',5000,'c001');
INSERT INTO products(pid,`name`,price,category_id) VALUES('p002','海尔',3000,'c001');
INSERT INTO products(pid,`name`,price,category_id) VALUES('p003','雷神',5000,'c001');
INSERT INTO products(pid,`name`,price,category_id) VALUES('p004','JACK JONES',800,'c002');
INSERT INTO products(pid,`name`,price,category_id) VALUES('p005','真维斯',200,'c002');
INSERT INTO products(pid,`name`,price,category_id) VALUES('p006','花花公子',440,'c002');
INSERT INTO products(pid,`name`,price,category_id) VALUES('p007','劲霸',2000,'c002');
INSERT INTO products(pid,`name`,price,category_id) VALUES('p008','香奈儿',800,'c003');
INSERT INTO products(pid,`name`,price,category_id) VALUES('p009','相宜本草',200,'c003');
INSERT INTO products(pid,`name`,price,category_id) VALUES('p010','梅明子',200,NULL);
#给分类表初始化数据
INSERT INTO category VALUES('c001','电器');
INSERT INTO category VALUES('c002','服饰');
INSERT INTO category VALUES('c003','化妆品');
INSERT INTO category VALUES('c004','书籍');
#添加订单
INSERT INTO `order` VALUES('o6100',18000.50,1);
INSERT INTO `order` VALUES('o6101',7200.35,1);
INSERT INTO `order` VALUES('o6102',600.00,2);
INSERT INTO `order` VALUES('o6103',1300.26,4);
#订单详情表
INSERT INTO orderitem VALUES('o6100','p001',1),('o6100','p002',1),('o6101','p003',1);
#1>查询所有用户的订单
SELECT * FROM `user` AS u INNER JOIN `order` AS o
ON u.`userid` = o.`userid` ;
#2>查询用户id为 1 的所有订单详情
SELECT * FROM `user` AS u INNER JOIN `order` AS o
ON u.`userid`= o.`userid` INNER JOIN orderitem AS ad
ON o.`oid`=ad.`oid`
#15.2 综合练习2-【子查询】
#1>查看用户为张三的订单
SELECT * FROM (SELECT * FROM `user` WHERE username='张三') AS u INNER JOIN `order` AS o
ON u.`userid` = o.`userid`;
#2>查询出订单的价格大于800的所有用户信息。
#方法1
SELECT * FROM (SELECT * FROM `order` AS o WHERE totalprice > 800) AS tt INNER JOIN `user` AS u
ON u.`userid` = tt.`userid`;
#方法2
SELECT * FROM `user` AS u INNER JOIN (SELECT * FROM `order` AS o WHERE totalprice > 800) AS o
ON u.`userid` = o.`userid`;
#15.3 综合练习3-【分页查询】
#1>查询所有订单信息,每页显示5条数据
SELECT * FROM `order` LIMIT 0,5;
jdbc 添加数据的代码,没有添加事务
package com.qf.day1.jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
public class TestjdbcDml {
public static void main(String[] args) throws Exception{
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/compar?useUnicode=true&characterEncoding=utf8","root","740056981");
//3.获取发送SQL语句的对象 Statement
Statement sta = conn.createStatement();
//增加,修改,删除用户
String usql1 = "insert into user(username,password,address,phone) values('阿耀','123','山东省济南市','123456')";
String usql2 = "update user set username = '阿军',passwprd = '456' where userid = 1";
String usql3 = "delete from user where userid = 5";
//增加,修改,删除商品分类
String csql1 = "insert into category(cid,cname) values('c005','床上用品')";
String csql2 = "update category set cname = '办公用品' where cid='c005'";
String csql3 = "delete from catgory where cid = 'c005'";
//增加,修改,删除商品
String psql1 = "insert into products(pid,`name`,price,category_id) values('p011','黑豆',5555.55,'c004')";
String psql2 = "update products set name = '大米' where pid = 'p011'";
String psql3 = "delete from producats where pid = 'p011'";
//增加,修改,删除订单
String osql1 = "insert into `order`(oid,totalprice,userid) values('o6104',18000,2)";
String osql2 = "update order set userid = 3 where oid = 'o6104'";
String osql3 = "delete from order where oid = 'o6104'";
//增加,修改,删除订单详情
String oisql1 = "insert into orderitem(oid,pid,num) values('o6104','p011',2)";
String oisql2 = "update orderitem set num = 3 where oid = 'o6104'";
String oisql3 = "delete from orderitem where oid = 'o6104'and pid='p011'";
int user1 = sta.executeUpdate(usql1);//增加一个用户
if (user1 > 0){
System.out.println("用户新增成功");
}else {
System.out.println("用户新增失败");
}
int catgroy1 = sta.executeUpdate(csql1);//增加一个商品分类
if ( catgroy1 > 0){
System.out.println("商品分类新增成功");
}else {
System.out.println("商品分类新增失败");
}
int products1 = sta.executeUpdate(psql1);//增加一个商品信息
if (products1 > 0){
System.out.println("商品新增成功");
}else {
System.out.println("商品新增失败");
}
int order1 = sta.executeUpdate(osql1);//增加一个订单信息
if ( order1 > 0 ){
System.out.println("订单新增成功");
}else {
System.out.println("订单新增失败");
}
int orderitem1 = sta.executeUpdate(oisql1);//增加一个订单详情信息
if (orderitem1 > 0){
System.out.println("订单详情新增成功");
}else {
System.out.println("订单详情新增失败");
}
sta.close();
conn.close();
}
}
jdbc 修改数据代码,有事务的
package com.qf.day1.jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
public class TestUpdate {
public static void main(String[] args) throws Exception{
Class.forName("com.mysql.jdbc.Driver");//1.启动驱动
//2.设置数据库连接,用户名,密码 链接数据库
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/compar?useUnicode=true&characterEncoding=utf8","root","740056981");
//3.获取发送SQL语句的对象 Statement
Statement sta = conn.createStatement();
//增加,修改,删除用户
String usql1 = "insert into user(username,password,address,phone) values('阿耀','123','山东省济南市','123456')";
String usql2 = "update user set username = '阿军',password = '456' where userid = 9";
String usql3 = "delete from user where userid = 5";
//增加,修改,删除商品分类
String csql1 = "insert into category(cid,cname) values('c005','床上用品')";
String csql2 = "update category set cname = '办公用品' where cid='c005'";
String csql3 = "delete from catgory where cid = 'c005'";
//增加,修改,删除商品
String psql1 = "insert into products(pid,`name`,price,category_id) values('p011','黑豆',5555.55,'c004')";
String psql2 = "update products set `name` = '大米' where pid = 'p011'";
String psql3 = "delete from producats where pid = 'p011'";
//增加,修改,删除订单
String osql1 = "insert into `order`(oid,totalprice,userid) values('o6104',18000,2)";
String osql2 = "update `order` set userid = 3 where oid = 'o6104'";
String osql3 = "delete from order where oid = 'o6104'";
//增加,修改,删除订单详情
String oisql1 = "insert into orderitem(oid,pid,num) values('o6104','p011',2)";
String oisql2 = "update orderitem set num = 3 where oid = 'o6104'";
String oisql3 = "delete from orderitem where oid = 'o6104'and pid='p011'";
try {
conn.setAutoCommit(false);//关闭自动提交
int user1 = sta.executeUpdate(usql2);//修改一个用户
int catgroy1 = sta.executeUpdate(csql2);//修改一个商品分类
int products1 = sta.executeUpdate(psql2);//修改一个商品信息
int order1 = sta.executeUpdate(osql2);//修改一个订单信息
int orderitem1 = sta.executeUpdate(oisql2);//修改一个订单详情信息
//上述语句执行无异常我们,提交
conn.commit();//手动提交
System.out.println("修改成功");
} catch(Exception e){
System.out.println("修改失败,回滚了");
conn.rollback();//回滚
e.printStackTrace();
}finally {
//释放资源
sta.close();
conn.close();
}
}
}