My SQL day02

matlab 约束函数,【优化求解】MATLAB约束优化之惩罚函数法 一、算法原理之前我们了解过的算法大部分都是无约束优化问题,其算法有:黄金分割法,牛顿法,拟牛顿法,共轭梯度法,单纯性法等。但在实际工程问题中,大多数优化问题都属于有约束优化问题。惩罚函数法就可以将约束优化问题转化为无约束优化问题,从而使用无约束优化算法。约束优化问题大致分为三类:等式约束、不等式约束、等式+不等式约束。其数学模型为:等式约束s.t不等式约束s.t等式+不等式约束问题s.ts.t惩罚... 阅读详情

1.SQL 

1.1 SQL 介绍

SQL,它的全称叫Structured Query Language,结构化的查询语言。之所以出现这个东西,是为了统一/屏蔽不同数据库厂商生产的数据库产品之间的差异。

1.2 简单DDL

比如更改表名

alter table 表名 rename 新表名;

如 alter table teacher rename t_teacher;

更改字段名

alter table 表名 change 列名 新列名 数据类型;

更改表的列名 和 数据类型 当然数据类型可以不改,但是必须得写,

如 alter table t_teacher change name teacher_name varchar(20);

添加字段

alter table 表名add 列名类型;

如 alter table t_teacher add birthday datetime; 默认添加到尾部

alter table t_teacher add birthday datetime after teacher_name; 把列添加到指定列的后面

alter table t_teacher add sex2 char(2) first; 添加到第一列,需要把表关掉,刷新一下,再打开才能显示出来

删除字段

alter table 表名 drop 列名;

如 alter table t_teacher drop birthday;

更改字段类型(尽量不要更改)

alter table 表名 modify 列名 新数据类型;

如 alter table t_teacher modify sex2 varchar(20);

alter table 表名 modify 列名 数据类型 comment '该列的注释说明';  更改类型的同时,还能添加注释说明

查看建表语句

show create table 表名;

1.3 DDL 增强

实体完整性(主键)

我们的java类,对应的就是一张表,成员变量对应一个字段,一个类对象对应一条数据,那么对象都有一定的唯一性

比如判断对象是否相等,我们通常使用equals()方法和hashCode()方法,那么怎么在数据库中表示数据的唯一性呢?主键

主键通常用于唯一确定表中的一条记录,设置为主键的字段是不能为NULL并且不能重复的。

主键可以设置在一个字段上,也可以设置在多个字段上。(但大多数场景都是设置在一个字段上,这个字段通常是业务主键或者流水号)

主键设置可以划分为两种

第一种 : 创建表语句时,添加主键约束

第二种 : 创建表完成之后,通过alter添加主键约束

下面是使用方式

第一种 : 创建表语句时,添加主键约束

 create table person(

        id int ,

        name varchar(100),

        income decimal(18,2),

        primary key (id,name)

    );

上面代码设置了两个主键

 create table person1(

        id int ,

        name varchar(100),

        income decimal(18,2),

        primary key (id)

    );

上面代码设置了一个主键

如果只有一列主键,也可以直接写在字段后面

 create table person2(

        id int primary key,

        name varchar(100) ,

        income decimal(18,2)

      );

第二种 : 创建表完成之后,通过alter添加主键约束

语法 :  alter table 表名 add primary key(列名,列名...);

create table person3(

        id int ,

        name varchar(100),

        income decimal(18,2)

      );

比如要对person3表添加id列主键

 alter table person3 add primary key(id);

演示示例:主键约束

主键自增

上面我们已经对表添加了主键,主键值不能为空且不能重复,那么问题来了...

如果主键的值让客户输入的话,很容易就重复了,比如888,666等数字大家都喜欢使用,导致一直输入不正确,非常不方便

所以又有了自增的概念,所谓自增,望文知意,就是自动增加,不用我们输入值

但是自增的列,必须为主键列,关键字 auto_increment

设置自增的两种方式 :

第一种 : 建表时,添加自增

第二种 : 创建表之后,添加自增

下面是使用方式

第一种 : 建表时,添加自增

create table person4(

       id int auto_increment ,

       name varchar(200),

        primary key(id)

);

测试语句 :

insert into person4(name)values('测试');

并未输入id的值,但是可以自动填充

第二种 : 创建表之后,添加自增

语法 : alter table 表名modify 主键列名 类型 auto_increment;

create table person5(

       id int ,

       name varchar(200),

        primary key(id)

);

alter table person5 modify id int auto_increment;

测试语句 :

insert into person5 (name)values('测试');

并未输入id的值,但是可以自动填充

设置自增的起始值

语法 : alter table 表名auto_increment=值;

create table person6(

       id int auto_increment ,

       name varchar(200),

        primary key(id)

);

alter table person6 auto_increment=10000;

测试语句 :

insert into person6 (name)values('测试');

Id值从10000开始

演示示例:主键自增

关联完整性(外键)

对应java代码来说,外键就是类的关联关系(一个类的成员变量是另外一个类的对象引用)

像这种一个类的变量可以找到另外一个类对象的这种关联关系,在数据库中怎么体现呢? 外键

一个表中的外键列,需要参照另一个表的主键值生成,并且一个表的外键列的值和另一个表的主键值的数据类型必须一致,

然后就可以通过这个表中的外键 去找另一个表的主键,能找到主键就能根据主键找到对应的一行数据

常用于有关联关系的两个表中

外键列的值,必须是关联表中的已有主键值,也可以为空

具体外键中的查询,现在不考虑,到DQL的时候咱们再说,现在子查询都还没讲,所以先了解什么是外键

设置外键有两种方式 :

第一种 : 创建表时添加外键约束

第二种 : 创建完表之后,添加外键约束

下面是使用方式

第一种 : 创建表时添加外键约束

create table teacher(

    id int ,

    name varchar(20),

    primary key (id)

);

create table student (

    id int ,

    name varchar(20),

    teacher_id int ,

    primary key (id),

    foreign key (teacher_id) references teacher(id)

);

注意 : 引用student中添加外键列,指向teacher表,所以必须先创建teacher表才行

测试语句

添加一个讲师

insert into  teacher (id,name) values(1,'张老师');

添加一个学生小明,学生通过teacher_id可以指向张老师

insert into  student (id,name,teacher_id) values(1,'小明',1);

添加一个学生小红,teacher_id没有设置值

insert into  student (id,name) values(2,'小红');

添加一个小黑,teacher_id指向一个不存在的讲师,报错

insert into  student (id,name,teacher_id) values(3,'小黑',2);

第二种 : 创建完表之后,添加外键约束

create table student1 (

    id int ,

    name varchar(20),

    teacher_id int,

    primary key (id)

);

create table teacher1(

    id int ,

    name varchar(20),

    primary key (id)

);

语法 : alter table 表名 add foreign key (外键列列名) references 指向的表名 (主键列列名);

alter table student1 add foreign key (teacher_id) references teacher1 (id);

测试语句

添加一个讲师

insert into  teacher1 (id,name) values(1,'张老师');

添加一个学生小明,学生通过teacher_id可以指向张老师

insert into  student1 (id,name,teacher_id) values(1,'小明',1);

添加一个学生小红,teacher_id没有设置值

insert into  student1 (id,name) values(2,'小红');

添加一个小黑,teacher_id指向一个不存在的讲师,报错

insert into  student1 (id,name,teacher_id) values(3,'小黑',2);

演示示例:外键约束

唯一约束unique

唯一约束是指定table的列或列组合不能重复,保证数据的唯一性。

唯一约束不允许出现重复的值,但是可以为多个null.

设置unique约束有两种方式 :

第一种 : 创建表时,添加unique约束

第二种 : 创建表之后,添加unique约束

下面是使用方式

第一种 : 创建表时,添加unique约束

   create table temp (

    id int ,

    `name` varchar(20),

    unique(id)

);

或

   create table temp (

    id int  unique ,

    `name` varchar(20)

);

添加一条没有id的数据

insert into temp (name)values('张三');

再添加一条没有id的数据,可以添加(唯一约束,又不是不为空约束)

insert into temp (name)values('李四');

添加一条id为1 的数据

insert into temp (id,name)values(1,'王五');

再添加一条id为1的数据,报错,因为已经有了id为1了,不可重复

insert into temp (id,name)values(1,'赵六');

第二种 : 创建表之后,添加unique约束

   create table temp1 (

    id int ,

    `name` varchar(20)

);

alter table temp1 add unique (id);

添加一条没有id的数据

insert into temp1 (name)values('张三');

再添加一条没有id的数据,可以添加(唯一约束,又不是不为空约束)

insert into temp1 (name)values('李四');

添加一条id为1 的数据

insert into temp1 (id,name)values(1,'王五');

再添加一条id为1的数据,报错,因为已经有了id为1了,不可重复

insert into temp1 (id,name)values(1,'赵六');

演示示例:unique约束

非空约束 not null与 默认值 default

所有的类型的值都可以是null,包括int、float 等数据类型,设置为not null的字段,必须填入数据

经常和default一起使用,当不填写数据的时候,把默认值设置成指定的值

设置not null 与 default有两种方式 :

第一种 : 创建表时,添加约束

第二种 : 创建表之后,添加约束

下面是使用方式

第一种 : 创建表时,添加约束

create table temp2(

    id int not null,

    `name` varchar(30) default  'abc',

       sex varchar(10) not null default '男'

);

测试语句 :

只添加id值,可以,因为name和sex都有默认值

insert into temp2 (id) values (1);

如果设置了值,默认值就不再设置

insert into temp2 (id,name,sex) values (2,'张三','女');

注意 : 没有添加id的值,而id又设置不能为空,并且也没有默认值,所以报错

insert into temp2 (name,sex) values ('李四','女');

第二种 : 创建表之后,添加约束

语法 : alter table 表名 modify 列名 数据类型 not null  default 默认值;

create table temp3(

    id int,

    `name` varchar(30) ,

       sex varchar(10)

);

alter table temp3 modify id int not null ;

alter table temp3 modify name  varchar(30)   default  'abc';

alter table temp3 modify sex varchar(10) not null  default '男';

测试语句 :

只添加id值,可以,因为name和sex都有默认值

insert into temp3 (id) values (1);

如果设置了值,默认值就不再设置

insert into temp3 (id,name,sex) values (2,'张三','女');

没有添加id的值,而id又设置不能为空,并且也没有默认值,所以报错

insert into temp3 (name,sex) values ('李四','女');

演示示例:非空和默认值约束

Check扩展约束

CHECK:检查约束(MySql不支持),检查字段的值是否为指定的值

一般用于性别等,对列的值做一些限制,比如 性别列的值只能是男或者女

但是MySQL这里给舍弃了,不再支持,所以六大约束就成了五大约束

1.4 基础DQL

DQL : Data Query Language,数据查询语言,主要用于查询表。

它通常用来从一张表或者多张表(视图或者子查询等)中按指定的条件筛选出某此记录。涉及到的命令有select。

语法 :

select 列限定 from 表限定 where 行限定;

示例代码 :

create table teacher(

              id int,

              `name` varchar(30)

);

insert into teacher (id,name) values (1,'张老师');

insert into teacher (id,name) values (2,'王老师');

最简单粗暴的一个DQL :

select * from teacher;

会查询到teacher表中所有的数据

如果想查看所有行的name

select name from teacher;

如果想查看id为1的讲师姓名

select name from teacher where id = 1;

演示示例:基础的DQL

  1.  条件判断

上面一个简单的DQL查询时,我们使用到了where行限定,后面写的是id=1

但是如果这一个条件不满足我们判断的条件呢?比如 id=1 且 name=’张老师’ 就怎么怎么样

所以我们的条件判断,是用于where后面的

示例代码 :

create table student(

       id int,

       `name` varchar(30),

       score decimal(18,2)

);

insert into student(id,name,score) values (1,'张三',99.2);

insert into student(id,name,score) values (2,'李四',97.9);

insert into student(id,name,score) values (3,'王五',98);

insert into student(id,name) values (4,'赵六');

insert into student(id,name,score) values (5,'小明',98);

and

且,和,的意思,一般用于 必须符合两个添加的判断,等同于java中的 &&

语法 :

select 列限定 from 表限定 where A表达式 and B表达式;

如 : 查询学生表中,name是张三且成绩大于90分

select * from student where name='张三' and score > 90;

只会查询出符合两个条件的学生

or

或的意思,一般用于 符合一个添加判断的情况下,等同于java中的 ||

语法 :

select 列限定 from 表限定 where A表达式 or B表达式;

如 : 查询学生表中,name是张三 或 成绩大于90分

select * from student where name='张三' or score > 90;

只要符合两个条件中的任何一个条件,就可以

注意 : 如果 一个语句中,同时出现了and和or的话,and优先级高

关系表达式

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

> : 大于

< : 小于

>= : 大于等于

<= : 小于等于

= : 相等

<> : 不等于

注意 : = 和 <> 额外留意,和java中有所不同,java中判断相等用 == , 这里只用 = , java中判断不相等用 != , 这里使用 <>

如 : 查询学生表中,成绩大于90分的

select * from student where  score > 90;

如 : 查询学生中,成绩为空的学生

错误 判断为空不能使用 = null ,应该使用 is null

select * from student where score = null;

select * from student where  score is null;

如 : 查询学生中,成绩不为空的学生

错误 判断不为空 不能使用 <>null,应该使用 is not null

select * from student where  score  <> null;

select * from student where  score is not  null;

注意 : 判断是否为空,应该使用is null,而不是 = null , 同理,判断不为空应该使用 is not null ,而不是 <>null,并且and和or同时出现的话,and优先级比or要高

between  and

在...之间

语法 :

select 列限定 from 表限定 where 列名 between 值1 and 值1;

如 : 查询学生表中 成绩在98到100之间 (包含98和100)

select * from student where score >= 98 and score<=100; 

等价于

select * from student where score between 98 and 100;

In

在指定数据中

语法 :

select 列限定 from 表限定 where 列名 in(值1,值2....);

如 : 给出一个数据集合(1,3,10,20),获取学生id在这个数据集合中的学生信息

select * from student where id in (1,3,10,20);

模糊查询like

我们经常会用到搜索功能,比如百度,搜索功能实现,就是使用like模糊查询技术点

其中 % 匹配任意个数的任意字符

 _ 匹配单个任意字符

语法 :

select 列限定 from 表限定 where 列名 like  '值' ;

如 : 把name中,把姓张的查询出来

select * from student where  name like '张%';

如 : 把 name中,姓名有两个字的查询出来

select * from student where  name like '__';

如果想要查询 _ 或者 % 需要转义  \%   \_

演示示例:条件判断

课堂练习2:条件判断

Order by 排序

排序,望文知意,能够让我们查询的数据进行排序展示
       语法 :

select 列限定 from 表限定 order by 列名 asc/desc;

Asc : 升序

Desc : 降序

如 : 查询所有学生信息,以成绩降序

select * from student order by score desc;

如 : 查询所有学生信息,按成绩降序,如果成绩相同,按照id升序

select * from  student order by score desc , id asc;

Limit

限制条数,通常和order by一起使用,因为我们使用排序之后,再去获取前几条数据,比较有价值,比如成绩前三名

语法 :

select 列限定 from 表限定 limit 条数;

select 列限定 from 表限定 limit 开始值(不包含) ,条数;

如 : 查询学生表,分数前三名的信息

select * from  student order by score desc limit 3;

如 : 查询学生表,分数第二名和第三名

select * from  student order by score desc limit 1,2;

演示示例:排序和limit

  1.  单表查询(组函数)

MYSQL中有一类特殊的函数,用于统计,或者分组统计,

分组关键字使用 group by

常用组函数有 :

count(*) : 总条数

max(字段名) : 最大值

min(字段名) : 最小值

avg(字段名) : 平均值

sum(字段名) : 总和

示例数据

create table student (

    id int ,

    name varchar(20),

    teacher_id int,

    score decimal(18,2) ,

    primary key (id)

);

create table teacher(

    id int ,

    name varchar(20),

    primary key (id)

);

insert into teacher (id,name)values(1,'张老师');

insert into teacher (id,name)values(2,'王老师');

insert into student (id,name,teacher_id,score)values(1,'张三',1,90);

insert into student (id,name,teacher_id,score)values(2,'李四',2,88.9);

insert into student (id,name,teacher_id,score)values(3,'王五',1,45.7);

insert into student (id,name,teacher_id,score)values(4,'赵六',1,84);

insert into student (id,name,teacher_id,score)values(5,'小明',2,92.5);

insert into student (id,name,teacher_id,score)values(6,'小红',2,47);

语法 :

select  count(*),max(字段名),min(字段名)... from 表名 group by 字段名;

如 : 查看学生表共有多少学生

select  count(*)  from   student;

如 : 查看学生表中分数大于90分的有多少学生

select  count(*)  from   student where score > 90;

Group by

如 : 查询每个老师分别带了多少学生(显示老师id即可)

select teacher_id, count(*) as stu_count  from student group by teacher_id;

如 : 查询每个老师带的学生中的最高分数

select teacher_id, count(*) as stu_count,max(score) as stu_max_score from student group by teacher_id;

如 : 查询每个老师所带学生的总成绩与平均分

select teacher_id, sum(score) as sum,avg(score) as avg from student group by teacher_id;

Having

刚才我们使用group by 和 组函数,可以对数据进行分组查询,并且也可以查询到平均值等数据

但是有时候我们也需要做一些判断,比如求出平均值了,我只想要平均值 大于60分的平均分数,这时候用where就不行了

select teacher_id, avg(score) as avg from student  where avg > 60  group by teacher_id;

这个时候就需要使用having进行过滤

select teacher_id, avg(score) as avg from student group by teacher_id having avg > 60;

演示示例:组函数和过滤

  1. 子查询

子查询又叫嵌套查询。它通常可以位于SELECT后面 FROM后面 WHERE后面,共三种使用场景。当我们查询一个表没有办法实现功能的时候,就需要使用子查询

上面我们讲到了分组查询,可以查询每个老师所带学生的最低分,

但是我们刚才查出来之后,我们只能看到teacher_id,但是我们并不知道teacher_id对应的是那个老师,这个时候我们最好是显示老师的名字是比较好的,可以用子查询实现

场景一 : select后面

语法 :

select 字段名,(查询语句) from 表名;

如  : 查询所有学生的信息并显示老师的名字

select *,(

                      select name from teacher where id=teacher_id  

                  ) as teacher_name from student ;

如 : 查询每个老师的学生的 最大分数,最小分数,平均分数,分数总和,学生人数,老师名字

select max(score),min(score),sum(score),avg(score),count(*),(

        select name from teacher where id=teacher_id

        ) as teacher_name from student group by teacher_id ;

注意 :

当位于SELECT后面时,要注意

1.一定要在两个表之间找好对应关系(teacher.id必须是主键或者必须保证teacher.id在teacher表中是唯一的)

2.子查询中只能有一个字段(子查询的结果必须是一行一列)

使用子查询的时候,建议大家养成使用别名的好习惯,这样可以让我们的查询语句更加清晰。别名可以用来命令新字段,也可以用来命名新表.

场景二 : from后面

还是学生表student,我们要将成绩进行分级,并且显示汉字的分级与字母的分级。这里可以使用子查询。相当于给student“新增”了2个字段

如 : 使用子查询 对成绩划分等级, score<60 ,评级C 并且是差,score>=60 且 score<80 评级B并且是良,score>=80 评级是A并且是优

select *,

case rank

when 'A' then '优'

when 'B' then '良'

when 'C' then '差'

end rank_ch

from (

select *,

case

when score < 60 then 'C'

when score >=60 and score <80 then 'B'

when score >=80 then 'A'

end as rank

from student

) a;

注意 :

当位于FROM后面时,要注意

1.我们可以把子查询当成一张表

2.必须要有别名,因为子查询优先被执行,子查询的别名,可以让别的查询当做表或者列去操作

场景三 : where后面

如 : 在不知道teacher_id 和 老师名字的对应关系的情况下,想查询出张老师下面的所有学生信息

select * from student where teacher_id in (

select id from teacher where name='张老师'

);

注意 :

当位于WHERE后面时,要注意

  1. 多条数据要用in而不要用=,如果确定子查询的结果为一行一列的话,就可以用 = 等于
  2. 如果返回结果为多行一列的话 要用 in , 一列是必须的,必须是一列

3.子查询中的SELECT后面只能有一个字段(多个字段的话会报错)

5. Union与 union all

合并查询,合并查询的结果

Union 会去除重复项

Union all 不会去除重复项

如 : 查询出 teacher_id = 1 的所有学生信息

select * from student where teacher_id=1;

如 : 查询出 学生分数大于60的所有学生信息

select * from student where score > 60;

如 : 查询出 学生分数大于60 或 teacher_id = 1 的所有学生信息(去除重复)

// 用 or 实现

select * from student where teacher_id=1 or score > 60;

// 用 union实现

select * from student where teacher_id=1

                         union

select * from student where score > 60;

如 : 查询出 学生分数大于60 或 teacher_id = 1 的所有学生信息(可重复)

select * from student where teacher_id=1

                         union all

select * from student where score > 60;

总结和注意 :

union / union all

它俩的作用是把两张表或者更多表合并成一张表

前者会去重(去重的依据是,UNION时SELECT出来的字段如果对应相等则认为是同一条记录,这的逻辑我们可以参考Java equals)

但是or 尽管两行数据每个字段都相等,也不会去重

后者则不会去重,它会保留两张表中的所有记录,但是它性能高(因为去重操作要花时间),

尽量使用union all,把去重这个工作交给代码去完成,这样可以减少MYSQL服务器的压力

使用union / union all的时候要注意:

1.参与合并的表,它们SELECT出来的字段数量必须一致(强制规则)

2.参与合并的表,它们SELECT出来的字段的类型建议一一对应(非强制,但是最好遵循这条规则)

3.参与合并的表,它们SELECT出来的字段的顺序建议一致(非强制,但是最好遵循这条规则)

select version() ;显示当前MySQL软件的版本

select database();显示当前所处数据库是哪个

select  char_length('中国');返回字符个数。

select  length('中国');返回字符所占字节数,MySQL中,一个UTF8编码的汉字占3个字节

select  concat(  'a',  'b',  'c',  'd');返回  'abcd'。字符串拼接函数

select  concat_ws(  '=',  'a',  'b',  'c');返回  'a=b=c'。字符串拼接函数,第一个是拼接间隔符

select   upper('abcd');返回ABCD。将参数中所有小写字母转换为大写

select  lower('ABCD');返回abcd。将参数中所有大写字母转换为小写

select  substring(  '系统信息类',  1,  3  );返回  系统信。第2个参数代表从1开始的第几个字符,第3个参数代表截取字符个数

select  trim('  abc  ');返回 abc。用于删去参数左右的所有空格

select  curdate();返回当前日期

select  curtime();返回当前时间

select  now();返回当前日期时间

select  unix_timestamp();返回当前日期时间对应的时间戳(单位秒)

select  unix_timestamp('2018-05-24 20:00:00');返回参数指定的日期时间对应的时间戳(单位秒)

select  from_unixtime(1527163397);返回参数指定时间戳(单位秒)对应的日期时间

select  datediff(  '2018-05-23',  now()  );返回两个参数对应日期相差的天数(用第一个参数减第二个参数)

select  adddate( now(), -2 );返回指定天数前/后的日期时间(第一个参数是日期时间,第二个参数是天数,向后加是正数,向前减是负数)

select year('2019-02-24');返回2019 获得年份

select month('2019-02-24')  返回2 获得月份

select day('2019-02-24')  返回 24 获取日

select  if(  <判断条件>,  <条件为真时的返回值>,  <条件为假时的返回值>  );相当于Java中的三目运算符<判断条件>  ?  <条件为真的返回值>  :  <条件为假的返回值>。

如select  if(1=1,  2,  3);返回2。

select  ifnull(<表达式或者字段>,  <表达式或者字段为NULL时的返回值>);通常用于给有可能有NULL的情况下的提供默认值。

select ifnull(null,'无名氏') ; null这里可以写列名 就会把该列值为null的 以无名氏显示

select ifnull(name,'无名氏') from teacher ;

史上最简单的 MySQL 教程(十五)「列属性 之 自动增长」 自动增长自动增长:auto_increment,当对应的字段,不给值,或者是默认值,或者是null的时候,就会自动的被系统触发,系统会从当前字段中取已有的最大值再进行+1操作,得到新的字段值。自增长通过跟主键进行搭配使用,其特点为: 任何字段要做自增长,前提其本身必须是一个索引,即key栏有值; 自增长字段必须是数字(整型); 每张表最多有一个自增长字段。 执行如下 SQL 语句,进行测试:-- 自 阅读详情

相关推荐

结构优化软件:HyperStudy_(10).约束与惩罚函数

在结构优化过程中,约束函数和惩罚函数是确保设计满足特定要求的关键工具。通过合理地定义约束函数和选择惩罚函数方法,可以有效地引导优化算法找到最优解。调整惩罚系数和其他参数也是优化过程中不可或缺的一步,可以通过动态调整策略来提高优化效果。希望上述内容和代码示例能够帮助读者更好地理解和应用约束和惩罚函数在结构优化中的作用。

kkchenjj的博客 975

alter table table_name auto_increment

对列只能设置auto_increment,而不能设置自增的初始值 对表可以进行重新设置自增初始值操作 alter table table_name auto_increment=1; 特殊情况比如主键约束或者unique字段不可重复的,所有有时候设置初始值虽然不会报错但是无效,这时可以选择设置成别的自增值 ...

阿白, 4110

告别手动改代码!用SSC工具5分钟搞定EtherCAT从站动态模块配置(含Excel模板)

本文详细介绍了如何利用SSC工具和Excel模板实现EtherCAT从站动态模块配置的自动化流程。通过零代码修改的动态配置方案,大幅提升工业自动化产线的灵活性和效率,配置时间从平均4小时缩短至8分钟,错误率下降96%。文章包含Excel模板设计、实战演示和避坑指南,助力工程师快速掌握这一高效工具。

weixin_28339967的博客 570

alter清空自增长auto_increment语句 失效的原因

数据库中,设表中字段。

Missing的博客 1372

ShaderJoy —— 简单又神奇的 “合体” 函数【GLSL】

smin 函数 它实际上有两种常见的实现方式 多项式 指数 多项式 smin 函数图 其对应的代码为 float smin( float a, float b ) { // 多项式 const float k = 0.5; float h = clamp(0.5 + 0.5 * (b - a) / k, 0.0, 1.0); return mix(b, a, h) - k * h * (1.0 - h); } 从上图中我们可以很明显的看出有两处不连...

ShaderJoy 的兴趣技术杂货铺 1857

【Windows Server 2019】企业虚拟专用网络服务的配置和管理(上)

博文介绍了部署企业虚拟专用网的定义,目的,以及好处。同时说明了实验拓扑图以及虚拟专用网络的工作原理。

VMware, Windows, Linux, Cisco, Container, Kubernetes, Kali 1万+

My SQL-day02-数据库sql的基本语法

sql语句 数据库的基本概念 1. 数据库的英文单词: DataBase 简称 : DB 2. 什么数据库? * 用于存储和管理数据的仓库。 3. 数据库的特点: 1. 持久化存储数据的。其实数据库就是一个文件系统 2. 方便存储和管理数据 3. 使用了统一的方式操作数据库 -- SQL 4. 常见的数据库软件 * 参见《MySQL基础.pdf》 MySQL数据库软件 1. 安装 * 参见《MySQL基础.pdf》 2. 卸载 1. 去mysql的安装目录找到my.ini文件 *

xingxing_LM的博客 228

探索CompletableFuture:高效异步编程的利器

随着现代软件系统的复杂性和用户需求的多样化,异步编程成为了提升系统性能和响应速度的重要手段。在Java领域,CompletableFuture作为Java 8引入的新特性,提供了强大的异步编程能力,极大地简化了多线程和并发任务的处理。本文将深入探讨CompletableFuture的基本功能和使用方法,介绍如何利用其提升程序的并发性能和代码的可维护性。

曾经“等你生日那天”都遥远得像未来,如今却可欢愉的挥手说“下个十年见” 170万+

My SQL函数

SQL数据库的常用函数包括字符串函数、数值函数、日期时间函数、转换函数和正则表达式函数,以及一些聚合函数。 1.字符串函数 字符串函数主要用于对字符串数据的处理。 函数 含义 ASCII(string) 返回给定ASCII字符string的十进制值 CHAR(string) 返回给定整数integer所对应的ASCII字符 COUNT(st...

G090909的博客 973

C#串口通信从入门到精通(5)——打开、关闭串口

本文详细介绍如何打开串口

qq_34059233的博客 6783

Xilinx FPGA平台GTX简易使用教程(五)GTX收发测试及示例工程介绍

GTX IP配置完了,你不得搞个回环测试一番?

数字IC/FPGA杂货铺,找一找,或许有你想要的~ 1万+

My SQL(基础篇day1)

先使用use 数据库名 后,才可以进行表操作 double(M,D) M:数的数位,如100.0:是4。D:小数的数位,如100.0:是1。 ​​​​​​​ 1 23 ​​​​​​​

2302_79891212的博客 948

自然语言处理:长文本场景下的关键词抽取实践

自然语言处理:长文本场景下的关键词抽取实践

丨汀、的博客 2076

day01 MY SQL 基本操作

1. MY SQL 基本操作 1.1 TCL--用户创建和授权 MySQL中是以数据库做区分,但是用户可以操作数据库,权限最大的用户是root,在安装MySQL的时候我们已经设置了root的密码 但是真正开发中,不会让我们使用root用户,权限太大,会为我们单独创建用户,这个用户只能操作某个数据库 创建用户:CREATE USER 'username'@'host' IDENTIFIED BY 'password'; 需要切换到mysql数据库下,操作user表 username:用户名;host

java_yangXL的博客 538

手把手教你 RT-DETR 添加注意力机制 | 一次性添加 20+ 种!

手把手教你 RT-DETR 添加注意力机制 | 一次性添加 20+ 种!

Coding... 2852

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

my sql day1

关于启动、登录、退出 启动MySQL net strat mysql 关闭mysql net stop mysql 登录mysql mysql -u root -p 退出 exit; 关于数据库查询、新建、指定 数据库查询 show databaes; 创建数据库 create database test2020; 指定数据库 use test2020; 关于数据库表的新建...

weixin_44097337的博客 204

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

My_SQL day1

今天学习的内容有mysql基本结构,MySQL账户操作,MySQL库操作,MySQL表操作,MySQL表数据操作。

WuMingf_的博客 601

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

My_SQL day3

知识点:约束1.dafault 默认约束2.not null 非空约束3.unique key 唯一约束4.primary key 主键约束5.anto_increment 自增长约束6.foreign key 外键约束知识点:表关系1.一对一2.一对多3.多对多。

WuMingf_的博客 617

My-sql批量更新或者插入的SQL

My-sql批量更新或者插入的SQL,高效, MyBatis中的配置sample 如下: INSERT INTO db_log.test1 ( a,b,c) values ( #{it.a},#{it.b},#{it.c} ) on dupl...

qfjiang的专栏 209

MY DAY 02

温故知新【2】 1.笛卡尔积 &amp;nbsp;A.语法:SELECT * FROM 表名称1,表名称2; &amp;nbsp;B.查询出来的数据条目数: &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;a.计算公式 = 表名称1的条目数 * 表名称2的条目数 &amp;nbsp;&amp;nbsp;&amp;

wjn19960911的博客 201

My Batis Day3

在使用MyBatis框架进行数据库操作时,我们经常需要根据不同的条件生成不同的SQL语句。这就是动态SQL的概念。MyBatis提供了一种灵活的方式来处理动态SQL,使得我们能够根据实际需求来构建和执行不同的SQL语句。

KeuByXu的博客 113

w7 day01 day02

w7 day01 day02 什么是web前端 web面向用户(浏览者),看的见摸得着的都是前端 输入域名后,命令通过互联网找到服务器,如果命令正确返回相应结果。 人机交互属于前端 服务器处理,数据校验属于后端 前端三个部分 html 结构 css 外观 js 交互 前端的分类 前端设计 前端架构 前端设计 设计师 UI设计/交互设计 网页美工 —> ...

weixin_45615608的博客 199

My SQL 函数-----日期函数 day() 、month()、year()

My SQL 函数-----日期函数 day() 、month()、year() select day(createtime) from life_unite_product     --取时间字段的天值 select month(createtime) from life_unite_product   --取时间字段的月值 select year(createtime) from l

NineCrazy的博客 1375

My_SQL day2

知识点一:mysq查询方法 排序 限制 去重 模糊查询 范围查询 聚合函数 分组 知识点二:连接查询 1.内连接 2.外连接 知识点一:mysql查询方法 is null is not null create table t1(id int,name varchar(10)); insert into ti(id)

WuMingf_的博客 594

MY DAY 03

温故知新【3】 JDBC 1、JDBC的概念:通过Java代码操作数据库(增,删,改,查)。 2、快速入门操作步骤: &amp;amp;amp;nbsp;&amp;amp;amp;nbsp;&amp;amp;amp;nbsp;&amp;amp;amp;nbsp;&amp;amp;amp;nbsp;&amp;amp;amp;nbsp; a.导入jar包 &amp;amp;amp;nbsp;&amp;amp

wjn19960911的博客 229

my sql update 子查询_SQL学习日志 - DAY3 - 子查询

子查询子查询可以理解为是一种嵌套查询(放在括号内作为输入值),他可以将查询结果作为另一个查询的输入值,它一般出现在如下几个语句中:WHERE子句中 使用 IN 或 NOT IN比较运算符中使用 EXIST 或 NOT EXISTS使用 ANY 或 ALLFROM 子句中SELECT在 WHERE 子句中的使用 :案例1:目前有如下数据,需求为:查询有哪些员工的工资大于平均水平。employeesS...

weixin_39943101的博客 345
上一篇: day01 MY SQL 基本操作
下一篇: MySQL day03
java_yangXL
博客等级 码龄5年 1粉丝 40原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值