3.29

本文详细介绍了一个在线商店的数据库设计,包括用户、商品、分类、订单等关键表的结构及关系,展示了如何通过SQL语句进行数据初始化,并提供了基本的数据查询示例。
练习

DROP DATABASE SHOP;
CREATE DATABASE SHOP CHARACTER SET UTF8;


#创建用户表
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)
);

#创建分类表
 CREATE TABLE CATEGORY (
	CID VARCHAR(32) PRIMARY KEY, 
	CNAME VARCHAR(100) NOT NULL #分类名称
);

#商品表
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)
);

#订单表
CREATE TABLE ORDERS(
	OID VARCHAR(32) PRIMARY KEY,
	TOTALPRICE DOUBLE(12,2),
	USERID INT,
	CONSTRAINT FOREIGN KEY(USERID) REFERENCES `USER`(USERID)#外键
);

#订单详表
CREATE TABLE ORDERITEM(
	OID VARCHAR(32),#订单id
	PID VARCHAR(32),#商品id
	NUM INT,#购买商品数量
	PRIMARY KEY(OID,PID),
	CONSTRAINT FOREIGN KEY(OID) REFERENCES ORDERS(OID),
	CONSTRAINT FOREIGN KEY(PID) REFERENCES PRODUCTS(PID)
);

#初始化数据

#用户表添加数据
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 orders VALUES('o6100',18000.50,1);
INSERT INTO orders VALUES('o6101',7200.35,1);
INSERT INTO orders VALUES('o6102',600.00,2);
INSERT INTO orders VALUES('o6103',1300.26,4);

#订单详情表
INSERT INTO orderitem VALUES('o6100','p001',1),('o6100','p002',1),('o6101','p003',1);

#1.1
SELECT *
FROM ORDERS;
#1.2
SELECT B.`USERID`,A.`OID`,A.`PID`,A.`NUM`
FROM ORDERITEM AS A
INNER JOIN ORDERS AS B
ON A.`OID` = B.`OID`
WHERE USERID = 1;
#2.1
SELECT *
FROM ORDERS 
WHERE USERID = (SELECT USERID FROM USER WHERE USERNAME = '张三');
#2.2
SELECT *
FROM USER
WHERE USERID 
IN 
(SELECT USERID FROM ORDERS WHERE TOTALPRICE > 800);
#3.1
SELECT *
FROM ORDERS
LIMIT 0,5;
package t1;

import com.mysql.jdbc.Driver;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;

public class TestJDBC {
    public static void main(String[] args) throws Exception {

        Class.forName("com.mysql.jdbc.Driver");


        String url = "jdbc:mysql://localhost:3306/companydb?useUnicode=true&characterEncoding=utf8";
        String user = "root";
        String password = "1234";
        Connection connection = DriverManager.getConnection(url,user,password);


        Statement statement = connection.createStatement();


        String sql1 = "INSERT INTO t_countries(COUNTRY_ID,COUNTRY_NAME)VALUES('AL','阿尔巴尼亚');";
        String sql2 = "UPDATE t_employees SET FIRST_NAME='TOM', LAST_NAME = 'Jackson' WHERE EMPLOYEE_ID = '206';";
        String sql3 = "DELETE FROM t_employees WHERE EMPLOYEE_ID = '206'";

        int result = statement.executeUpdate(sql1);
        int result2 = statement.executeUpdate(sql2);
        int result3 = statement.executeUpdate(sql3);


        if(result > 0 && result2 > 0 && result3 > 0){
            System.out.println("新增成功!");
        }else{
            System.out.println("新增失败");
        }


        statement.close();
        connection.close();

    }
}
该数据集通过合成方式模拟了多种发动机在运行过程中的传感器监测数据,旨在构建一个用于机械系统故障检测的基准资源,特别适用于汽车领域的诊断分析。数据按固定时间间隔采集,涵盖了发动机性能指标、异常状态以及工作模式等多维度信息。 时间戳:数据类型为日期时间,记录了每个数据点的采集时刻。序列起始于2024年12月24日10:00,并以5分钟为间隔持续生成,体现了对发动机运行状态的连续监测。 温度(摄氏度):以浮点数形式记录发动机的温度读数。其数值范围通常处于60至120摄氏度之间,反映了发动机在常规工况下的典型温度区间。 转速(转/分钟):以浮点数表示发动机曲轴的旋转速度。该参数在1000至4000转/分钟的范围内随机生成,符合多数发动机在正常运转时的转速特征。 燃油效率(公里/升):浮点型变量,用于衡量发动机的燃料利用效能,即每升燃料所能支持的行驶里程。其取值范围设定在15至30公里/升之间。 振动_X、振动_Y、振动_Z:这三个浮点数列分别记录了发动机在三维空间坐标系中各轴向的振动强度。测量值标准化至0到1的标度,较高的数值通常暗示存在异常振动,可能与潜在的机械故障相关。 扭矩(牛·米):以浮点数表征发动机输出的旋转力矩,数值区间为50至200牛·米,体现了发动机的负载能力。 功率输出(千瓦):浮点型变量,描述发动机单位时间内做功的速率,取值范围为20至100千瓦。 故障状态:整型分类变量,用于标识发动机的异常程度,共分为四个等级:0代表正常状态,1表示轻微故障,2对应中等故障,3指示严重故障。该列作为分类任务的目标变量,支持基于传感器数据预测故障等级。 运行模式:字符串类型变量,描述发动机当前的工作状态,主要包括:怠速(发动机运转但无负载)、巡航(发动机在常规负载下平稳运行)、重载(发动机承受高负荷或高压工况)。 数据集整体包含1000条记录,每条记录对应特定时刻的发动机性能快照。其中故障状态涵盖从正常到严重故障的四级分类,有助于训练模型实现故障预测与诊断。所有数据均为合成生成,旨在模拟真实的发动机性能变化与典型故障场景,所包含的温度、转速、燃油效率、振动、扭矩及功率输出等关键传感指标,均为影响发动机故障判定的重要因素。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
<think>嗯,用户想要查找Flutter 3.29版本的特性及更新日志。我需要先看看提供的引用内容。引用[1]提到的是Flutter 2.293.29的更新,但看起来可能有笔误,因为通常版本号不会跳跃这么大。引用[2]则讨论了组件库的更新、构建工具链调整、Web平台的变化以及官方包停止维护的情况。 首先,用户可能混淆了版本号,比如将2.29写成3.29,或者引用中的信息有误。根据引用[1],Flutter 3.29确实存在,包含Impeller、Cupertino和DevTools的更新。引用[2]提到了一些重大变更,比如移除Flutter Gradle插件,Web平台强制使用CanvasKit或WebAssembly,以及部分官方包停止维护。 接下来,需要整理这些信息,确保回答结构清晰。可能需要指出版本号的潜在混淆,并分点列出更新内容,如开发工具优化、性能提升、重大变更等。同时,用户可能需要注意事项,比如升级建议和替代方案。 还要注意用户可能关心升级后的兼容性问题,比如三方库的支持和稳定性问题,这些在引用[2]中都有提到。需要将这些内容自然地融入回答中,并添加引用标识。最后,生成相关问题,帮助用户深入理解。</think>### Flutter 3.29 版本特性及更新日志 根据提供的引用内容,Flutter 3.29 版本的主要更新集中在开发工具优化、性能提升和平台适配调整等方面。以下是关键特性梳理: --- #### 1. **开发工具优化与性能提升** - **Impeller 渲染引擎改进**:进一步优化图形渲染性能,减少动画和复杂 UI 的卡顿现象[^1]。 - **DevTools 增强**:调试工具支持更细粒度的性能分析,例如内存泄漏检测和渲染管线可视化[^1]。 - **Cupertino 组件更新**:完善 iOS 风格组件的交互细节,提升与原生体验的一致性。 #### 2. **构建工具链调整** - **移除 Flutter Gradle 插件**:自 3.19 版本弃用后,3.29 版本正式移除旧插件,需迁移至基于 Kotlin 的 Android Gradle Plugin (AGP) 公共 API[^2]。 - **Web 平台渲染模式变更**:正式弃用 HTML Renderer,强制使用 CanvasKit 或 WebAssembly 渲染,提升跨平台一致性。 #### 3. **官方 Package 维护计划** - **停止维护的包**:包括 `flutter_markdown`、`palette_generator` 等 6 个官方包将于 2025 年 4 月 30 日后停止支持,需转向社区维护的分叉版本[^2]。 #### 4. **其他注意事项** - **稳定性验证**:新版本可能未经过大规模验证,存在潜在兼容性问题,建议非必要情况下暂缓升级。 - **三方库依赖风险**:依赖的第三方库可能尚未适配最新版本,升级前需逐一确认兼容性[^2]。 --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值