MYSQL数据库

一 MYSQL的安装和环境配置

建议不要安装最新的版本,5.5即可使用。具体安装配置见官网。

二 MySQL–结构型数据库

MySQL是结构型数据库,存储的是表格关系型的。
什么是数据库?
叫Database 用来按照数据的结构组织、存储、管理数据一个仓库 。

三 命令面板操作

  1. 显示所有的数据库
 show databases;
  1. 使用数据库
use mysql;
  1. 显示表
 show tables;  

mysql这个数据库里面,user表是用户的信息表;
4. 创建数据库

 create database chat; 

显示1行受影响 ,则创建成功;
5. 删除数据库

 drop database chat;
  1. 在创建的时候,检测该数据库是否存在 ,不存在时创建:
 create database if not exists chat;
  1. 创建表: (表名、表的字段名、定义每个表的字段)
    注意:字段的数据类型 (int 、float 、 double 、 decimal 、date 、 datetime、 varchar)
    直接创建。创建字段的时候 ,字段可以为null ,也可以not null;
    auto_increment: 自增列,默认每次自增+1 ;设置自增列得添加主外键;
 create table user(
     id int not null //(auto_increment这个必须得在添加主外键的时候才能用,不然会出错),
     name varchar(50),
     sex  varchar(10),
     brithday datetime
  ) default  charset=utf8;  //设置表的编码格式可写可不写 编码格式和数据库引擎默认设置

检测创建的表是否存在,再创建:

 create table if not exists user(
     id int not null auto_increment,
     name varchar(50),
     sex  varchar(10),
     brithday datetime
   ) 
  1. 查看表创建时的信息 :
 show create table user;
  1. 删除表 :
 drop table user;

也可以判断 :

   drop table if exists user;
  1. 操作数据库里面的表:增删改查。
    增加数据:
    varchar 双引数据,必须是双引号,单引号出错。
    如果是按照下面这种方式添加数据 (必须写不为空的字段,为空的字段可写可不写)
insert into user(id,name,age,sex,birthday)
   values
  (1,"毛豆",20,"男","2020-04-13 12-30-05");//写的数据按照上面列的顺序去写保证数据类型一致

增加之后查看数据若显示乱码 :

set names  gbk;  
 就能正常显示

增加数据的时候不写列 ,指的是表里面所有的列都得添加数据;

 insert into user
   values
   (1,"毛豆",20,"女","2020-12-30 01-20-22");

还可以一次性插入多条数据:

 insert into user
   values
   (),(),(),();  //这种写法是一次增加多条数据
  1. 查询数据:
 select * from user;

星号指表里面所有的列;
查找表里面的固定几个列:

select id,name,sex,age from user;

查找表时候列起别名 使用 ==as == 起别名:

 select id as userid,name,sex from user;
  1. 表中数据修改:update 。 修改数据语法, 添加条件语句 ,不加则修改整张表的。
update user set name='李四'
  1. where 条件语句
 update user set name="毛豆" where id=3;

多条件: 使用and关键字:

update user set name="小红" where id=3 and sex='男'

条件语句查询使用:

 select * from user where sex="男";//也可以多条件过滤
  1. 删除数据操作 :
delete from user 

不加条件整张表数据全部删除 , 需要添加条件;

 delete from user where id=1;
  1. like子句 , 模糊查找:
 select * from user where name like "张三"; 

like后边没有使用%和等号效果一样

select * from user where name like "%张";
select * from user where name like "张%";
select * from user where name like "%张%";
  1. 排序 :order by 子句 可以和条件之类连用;
 select * from user order by age asc;  //正序
  select * from user order by age desc; //倒序
  1. group by: 语句分组 ,对一个或者多个列进行分组。在分组的列上可以使用 count 、sum 、avg函数;
select sex,count(*) as count from user group by sex;
select name,sum(count) as sum from userlogin group by name;

with rollup:关键字 , 是在分组的情况下,做最终的统计 ;
统计完成之后存在null空值 ,使用coalesce方法处理列上的空值;

select coalesce(name,'总数') as name,sum(count) as sum from userlogin group by name with rollup;
  1. 多表链接查询:
    多表查询+分组以及虚拟表起别名
select user.id,user.name,age,sex,count from user,(select name,sum(count) as count from userlogin group by name) as login where user.name=login.name;

多表查询+条件:

select user.id,user.name,age,sex,job from user,job where user.name=job.name;

子查询: 使用关键字 in

select * from user where id in (select id from score where score>90);
  1. mysql 数据库里面添加 :主键 primarykey、外键 foreignkey、 唯一键 unique;
  • 主键是值不能为null, 不能重复;
  • 外键是引用的主键;
  • 唯一键是值可以为null ,不能重复;
    添加主外唯一键 ,在创建表的时候可以直接添加。主键分为单主键 、联合主键(一张表存在多个主键)。自增列必须是主键;
create table user(
id int auto_increment primary key,
name varchar(100));

添加多个主键:

create table user(
id int auto_increment,
name varchar(100),
age int,
primary key(id,name));

添加外键,外键引用的是主键,外键值必须和主键保持一致:

create table score(
id int auto_increment primary key,
userid int,
sc  int,
foreign key(userid) references user(id));

主外键可以让数据统一,表之间的关系。

表外添加主键:

alter  table user add primary key (id);

表外添加外键:

alter table score add foreign key (userid) references user (id);

添加唯一键 ,主要约束数据的。
表内添加:

create table user(
id int auto_increment primary key,
name varchar(100) unique key,
age int,);

联合唯一键:

create table user(
id int auto_increment primary key,
name varchar(100),
age int,
unique key(name,age));

外部添加唯一键:

 alter table user add unique key(name);

删除主键 :

 alter table user drop primary key;

删除外键 :

  alter table user drop foreign key 外键名称;

表创建好之后 ,添加列:

alter table user add column newcolumn varchar(100) not null;
  1. 存储过程 ,为了安全
    关键语法 ,修改;为别的符号 ,in: 向存储过程传入值 ; out :传出值;
delimiter &&
create procedure myinfo(in number int)
begin
select * from user where age>=number;
end&&
//存储过程创建完成之后把;修改回来
delimiter ;
//执行存储过程
call myinfo(20);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
图像识别技术在病虫害检测中的应用是一个快速发展的领域,它结合了计算机视觉和机器学习算法来自动识别和分类植物上的病虫害。以下是这一技术的一些关键步骤和组成部分: 1. **数据收集**:首先需要收集大量的植物图像数据,这些数据包括健康植物的图像以及受不同病虫害影响的植物图像。 2. **图像预处理**:对收集到的图像进行处理,以提高后续分析的准确性。这可能包括调整亮度、对比度、去噪、裁剪、缩放等。 3. **特征提取**:从图像中提取有助于识别病虫害的特征。这些特征可能包括颜色、纹理、形状、边缘等。 4. **模型训练**:使用机器学习算法(如支持向量机、随机森林、卷积神经网络等)来训练模型。训练过程中,算法会学习如何根据提取的特征来识别不同的病虫害。 5. **模型验证和测试**:在独立的测试集上验证模型的性能,以确保其准确性和泛化能力。 6. **部署和应用**:将训练好的模型部署到实际的病虫害检测系统中,可以是移动应用、网页服务或集成到智能农业设备中。 7. **实时监测**:在实际应用中,系统可以实时接收植物图像,并快速给出病虫害的检测结果。 8. **持续学习**:随着时间的推移,系统可以不断学习新的病虫害样本,以提高其识别能力。 9. **用户界面**:为了方便用户使用,通常会有一个用户友好的界面,显示检测结果,并提供进一步的指导或建议。 这项技术的优势在于它可以快速、准确地识别出病虫害,甚至在早期阶段就能发现问题,从而及时采取措施。此外,它还可以减少对化学农药的依赖,支持可持续农业发展。随着技术的不断进步,图像识别在病虫害检测中的应用将越来越广泛。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值