千锋逆战班,mysql小练习及jdbc的应用

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();
        }


    }
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章