数据库相关知识

数据库相关知识

Sql语句

结构化查询语句,非过程性语言。

Sql分类

数据定义语句

数据处理语句

数据控制语句

数据查询语句

 

 

 

 

对数据库的操作(CRUD

创建 CREATE DATABASE test CHARACTER SET utf8 COLLATE utf8_bin;

查询数据库  SHOW databases;

SHOW CREATE DATABASE test

删除数据库:drop database test;

修改数据库:alter database test character set gbk;

使用数据库:use test;

 

powerDesigner数据库表关系设置

 

对表的操作(CRUD

创建班级表语句:

create table class

(

   class_id             integer(32) not null,

   class_Name           varchar(32),

   calss_SDate          bigint(32),

   primary key (class_id)

);

建表约束:(单表约束)---为了保证数据完整性.

* 主键约束 :primary key.可以唯一确定表中一条记录的字段.(非空唯一).主键是整形可以使用auto_increment.

* 唯一约束 :unique.创建表中这个字段的时候,这个字段不允许出现重复的值.

* 非空约束 :not null.代表创建表中的这个字段的时候,不可以向这个字段插入空值.

 

查看表:show tables;

desc class;  查看具体的表结构

修改表:

* alter table 表名 add字段名 类型(长度)约束; ---修改表添加字段.

* alter table 表名 modify字段名 类型(长度)约束; ---修改表修改字段的类型长度和约束.

* alter table 表名 drop字段名; ---修改表删除表中这个字段.

* alter table 表名 change旧的字段名 新的字段名 类型(长度)约束; ---修改表修改字段名

* rename table 旧表名 to新表名; ---修改表名.

* alter table 表名 character set字符集; ---修改表的字符集.

删除表:

drop table class ;

对表数据的(CRUD)

插入数据

INSERT INTO class (class_id , class_Name , calss_SDate) VALUES(1,'一班','20170820')

INSERT INTO class (class_id , class_Name , calss_SDate) VALUES(2,'二班','20140820');

INSERT INTO class (class_id , class_Name , calss_SDate) VALUES(3,'三班','20150820');

INSERT INTO class (class_id , class_Name , calss_SDate) VALUES(4,'四班','20160820');

修改记录

UPDATE class SET class_Name='171' WHERE class_id = 1;

UPDATE class SET class_Name='142' WHERE class_id = 2;

UPDATE class SET class_Name='153' WHERE class_id = 3;

UPDATE class SET class_Name='172' , calss_SDate='20170820' WHERE class_id = 4;

删除记录

DELETE FROM class WHERE class_id=2;

查询记录

SELECT * FROM class WHERE class_id=3

SELECT DISTINCT * FROM class (去重复字段查询)

SELECT class_Name AS className FROM class c WHERE c.class_id=3(取别名查询)

条件查询之条件表达式

where子句后的运算符:

* > ,< ,>= ,<= ,= ,<>

* in :一组值.

* like :模糊查询.

* 使用占位符: _%

* _代表的是一个字符: where name like '_';

* %代表的是任意个字符: where name like '%';

* % :以张开头.

* %:以张结尾.

* %%:包含张即可.

* is null

* and , or ,not

SELECT * FROM class WHERE class_name LIKE '%17%'

SELECT * FROM class WHERE class_id IN(1,3)

SELECT * FROM class WHERE calss_SDate < '20170820'

SELECT * FROM class WHERE class_name LIKE '%17%' AND class_id IN (1,3)

查询并排序

SELECT * FROM class WHERE class_id IN (1,4)  ORDER BY class_id desc

Asc表顺序,desc表逆序

 

聚集函数

Coun()计算数据总条数

SELECT COUNT(*) FROM class

Sum() 求和

SELECT SUM(class_id) FROM class WHERE class_name LIKE '%17%'

Avg()平均

SELECT AVG (class_id) FROM class WHERE class_name LIKE '%17%'

Max()总数

SELECT MAX(class_id) FROM class

Min()最小

SELECT MIN(class_id) FROM class

 

分组统计

* select * from where条件 group by列名;

SELECT SUM(class_id) ,calss_SDate FROM class WHERE class_id IN(1,3,4) GROUP BY calss_SDate

 

多表关联查询

创建班级、学生、老师、科目表

drop table if exists class;

 

/*==============================================================*/

/* Table: class                                                 */

/*==============================================================*/

create table class

(

   class_id             integer(32) not null,

   class_Name           varchar(32),

   calss_SDate          bigint(32),

   primary key (class_id)

);

 

drop table if exists student;

 

/*==============================================================*/

/* Table: student                                               */

/*==============================================================*/

create table student

(

   stu_id               integer(32) not null,

   class_id             integer(32),

   stu_name             varchar(64),

   stu_sex              bit,

   stu_age              integer(6),

   stu_year             year(4),

   primary key (stu_id)

);

 

alter table student add constraint FK_Reference_3 foreign key (class_id)

      references class (class_id) on delete restrict on update restrict;

 

drop table if exists teacher;

 

/*==============================================================*/

/* Table: teacher                                               */

/*==============================================================*/

create table teacher

(

   teacher_id           integer(32) not null,

   techer_name          varchar(32),

   teach_id             integer(32),

   teacher_age          integer(3),

   primary key (teacher_id)

);

 

alter table teacher add constraint FK_Reference_2 foreign key (teach_id)

      references course (cou_id) on delete restrict on update restrict;

 

drop table if exists course;

 

/*==============================================================*/

/* Table: course                                                */

/*==============================================================*/

create table course

(

   cou_id               integer(32) not null,

   cou_name             varchar(16),

   primary key (cou_id)

);

 

drop table if exists teacherAndClass;

 

/*==============================================================*/

/* Table: teacherAndClass                                       */

/*==============================================================*/

create table teacherAndClass

(

   teacher_id           integer(32) not null,

   class_id             integer(32) not null,

   ischief              bit,

   primary key (teacher_id, class_id)

);

 

alter table teacherAndClass add constraint FK_Reference_4 foreign key (class_id)

      references class (class_id) on delete restrict on update restrict;

 

alter table teacherAndClass add constraint FK_Reference_5 foreign key (teacher_id)

      references teacher (teacher_id) on delete restrict on update restrict;

 

 

一对一的关系

一个班级只能有一个班主任,在班级的一方设置一个唯一的外键关联一名老师,且一名老师也只能是一个班级的班主任。

一对一的建表原则:

* 唯一外键对应:

* 假设一对一的双方任意一方是多.(假设为一对多).需要在多的一方创建外键指向一的一方的主键.但同时将这个外键设置为唯一的unique.

* 主键对应:

* 在任意的一方的主键上添加一个外键约束.指向另一方的主键.

一对多的关系

一个班级有多个学生,一个科目有多个老师,这些都是一对多的关系

建表原则:

多表之间约束:(约束:保证数据的完整性)

* 外键约束:

* alter table employee add foreign key(dno) references dept(did);

***** 一对多的建表原则:

* 在多的一方创建一个字段,作为外键指向一的一方的主键.

多对多的关系

一个老师可以教多个班级、一个班级可以有多个老师。

创建一个中间表:(第三张表),中间表中需要有两个字段.分别作为外键指向多对多双方的主键.

对表的联合查询

笛卡尔积查询

Select * from student , class

内连接查询

查询两个表的交集,只包含来自两张表的连接字段相等的记录

 

显示内连接:SELECT * FROM student stu INNER JOIN class cl ON (stu.class_id = cl.class_id)

隐式内连接:

Select * from student stu ,class cl where stu.class_id =cl.class_id

左外连接

查询结果:是左边表的全部以及两个表的交集。

Select * from student stu ,class cl where stu.class_id =cl.class_id

右外连接

查询结果:右边表的全部以及两个表的交集

SELECT * FROM student stu RIGHT JOIN class cl ON (stu.class_id = cl.class_id)

子查询

指的是一条语句的查询结果需要依赖另一条语句的查询结果。

查询某班主任老师名下的同学。

//通过该名称查询老师id

SELECT teacher_id FROM teacher WHERE techer_name = '四老师'

//查询班级id信息

SELECT class_id FROM class  WHERE teacher_id =(SELECT teacher_id FROM teacher WHERE techer_name = '四老师')

//查询同学信息通过班级id

SELECT * FROM student WHERE class_id = (SELECT class_id FROM class  WHERE teacher_id =(SELECT teacher_id FROM teacher WHERE techer_name = '四老师'))

 

 

补充信息:
限制查询数量:
SELECT * FROM student LIMIT 5;

BETWEEN 操作符选取介于两个值之间的数据范围内的值

查询年龄22-23的学生

SELECT * FROM student WHERE stu_age BETWEEN 22 AND 23

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在风能领域,准确预测风速对于风电场的运行与管理至关重要。Matlab作为一个强大的数学计算和数据分析平台,被广泛应用于风速预测模型的构建。本文将深入探讨基于四种风速——随机风、基本风、阵风和渐变风的组合风速预测技术。 我们来理解这四种风速类型: 1. **随机风**:随机风是指风速呈现出随机性的变化,通常由大气湍流引起。在建模中,通常通过统计方法如高斯分布或Weibull分布来模拟这种不确定性。 2. **基本风**:基本风速是指在无特定扰动条件下的平均风速,它是长期观测结果的平均值,通常用于结构设计和风能评估。 3. **阵风**:阵风是短时间内风速显著增强的现象,对建筑物和风力发电机造成的主要威胁之一。阵风的预测涉及到风的脉动特性分析。 4. **渐变风**:渐变风是指风速随时间和空间逐渐变化的过程,常见于风向转变或地形影响下的风场变化。 在Matlab中,利用这四种风速类型进行组合预测,可以提高预测的准确性。预测模型可能包括以下几个步骤: 1. **数据收集与预处理**:收集历史风速数据,包括随机风、基本风、阵风和渐变风的数据,进行异常值检测、缺失值填充以及数据标准化。 2. **特征工程**:提取风速变化的相关特征,如平均值、标准差、极值、频率分布等,这些特征可能对预测有重要影响。 3. **模型选择**:可以选择多种预测模型,如时间序列分析(ARIMA、状态空间模型等)、机器学习算法(线性回归、决策树、支持向量机、神经网络等)或深度学习模型(LSTM、GRU等)。 4. **模型训练**:利用历史数据训练选定的模型,调整模型参数以优化性能,例如通过交叉验证来避免过拟合。 5. **模型验证与评估**:使用独立的测试集验证模型预测效果,常见的评估指标有均方误差(MSE)、平均绝对误差(MAE)和决定系数(R²)。 6. **组合预测**:结合四种风速的不同模型预测结果,可以采用加权平均、集成学习(如bagging、boosting)等方式,以提升整体预测精度。 7. **实时更新与动态调整**:实际应用中,模型需要不断接收新的风速数据并进行在线更新,以适应风场环境的变化。 通过以上步骤,可以构建一个综合考虑各种风速特性的预测系统,这对于风电场的功率输出预测、风电设备的维护计划以及电网调度都具有重要价值。然而,需要注意的是,每个风场的地理环境、气候条件和设备状况都有所不同,因此模型的建立应根据实际情况进行定制和优
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值