SQL基础编程

article/2025/10/6 11:50:25

文章目录

  • 一.SQL的环境搭载
    • 单机离线环境
    • 在线环境
  • 二.SQL的单表操作
    • 1.sql基础三步
    • 2.sql四则运算
    • 3.limit (限制查询结果个数)
    • 4.order by(排序)
    • 5.where 综合条件筛选
    • 6.SQL常量
    • 7.distinct (把结果中重复的行删除)
    • 8.函数
      • (1) 聚合函数:
        • `sum()` ——求和函数
        • `count()`——计数函数
        • `avg()`——平均值函数
        • `min()| max()`——最小最大值函数
        • `group by `——分组函数
      • (2) 显示方式控制函数:
        • `round`——控制保留位小数的结果
        • `concat`——把分开的两列合成在一个结果中
  • 三.SQL的多表操作
    • 1.嵌套子循环
      • (1).where子查询
      • (2).from子查询
      • (3).from与where子查询互换
      • (4).select子查询
    • 2.JOIN——连接多个数据库(或多表)
    • 3.null与内连接与外连接

一.SQL的环境搭载

单机离线环境

安装:下载Beekeeper-studio
运行:可导入一个简单数据库进行实验

在线环境

  • (这是在python基础下创造的sql环境,在线可用的python:希冀平台中的在线实验)

在希冀平台实验输入sql的方法

  • 第一步:把sql拖入
    第一步
  • 第二步:将以下代码输入运行框并修改一下,点击Code,点击运行,如果运行结尾后有done出现,则说明运行成功。
%reload_ext sql%sql sqlite:///需要你输入sql的文件名.sqlite%sql ATTACH '需要你输入sql的文件名.sqlite' AS e_store_db;

如图所示:第二步

  • 第三步:对sql数据库进行操作时前提要输入%%sql,之后再写你需要编辑的代码,否则运行不了

二.SQL的单表操作

1.sql基础三步

  • 书写顺序:select…from…where…

  • from:定位要载入的表 → 定位hero_data_table数据表(hero_data_table为被剪辑的数据名称)

  • select:显示出想要出现的数据,一行一行的按条件筛选出目标行,*代表选中所有的行,运行出的结果是sql的所有数据

  • 拓展
    1.对数据库名称简单重命名为h:from 数据库名称 as h
    2.选中数据库中hero一行(可以同时选中多行中间用,隔开):select h.hero
    3.在select中将自己编辑的新的数据命名 eg:h.life + h.speed + h.attack as '显示数字的总和')
    如图:第三张图片

  • where:输入筛选目标的代码,显示出来目标行中的指定列
    第四张图片
    以上显示的是所有speed>350的英雄数据

  • 注意事项:大前提是输入的代码应全为英文,标点符号也是,在select中不想显示所有行,可以h.想要选中某一行的名称,用英文逗号隔开,数据库命名为h之后,h后面的内容必须是数据库每一列名称的内容
    第五张图

2.sql四则运算

sql可以单独经行运算

含义运算符
加法运算+
减法运算_
乘法运算*
除法运算/
求余运算%

就好像select语句不需要from就可以独立成句显示常量一样,select语句也可以独立成句进行简单四则运算。

代码代码结果
select 3+23+2=5
select 3/2select 3/2=1
select 3/2.0select 3/2.0=1.5
select (3*(2+3))/5-6 as ‘复合运算’复合运算 = -3

既然独立成句语境下支持,那么在更加复杂的使用环境下也同样支持,比如:
产品档位划分如下

范围档位
[0,10)1
[10, 20)2
[20, 30)3

使用select和where四则运算得到极简文具公司数据库处在2,3档位的文具

代码如下:

select  p.产品_描述,p.产品_售价, p.产品_售价/10+1 as '价格档位'
from  产品 as p
where  (p.产品_售价/10+1) in (2,3)

代码结果如下:

产品_描述产品_售价价格档位
自动铅笔152
16开笔记本223
中性笔182
马克笔102
文件夹203

3.limit (限制查询结果个数)

  • 比如对于以下代码
select s.销售_订单_ID, s.销售数量
from 销售 as s

其运行的结果就有213行

  • 如果我们指向显示,比如10行,就可以用以下的代码实现
select s.销售_订单_ID, s.销售数量
from 销售 as s
**limit 10 -- 限制只显示10行结果

代码结果如下:有十行内容

销售_订单_ID销售数量
8000119456
8001619037
8003739582
8004015012
8004719621
8004826637
8006417921
8007523015
8008611860
8010616212
  • limit 之后一般是数字

4.order by(排序)

  • order by XXX desc 降序
  • order by XXX asc 升序
  • 应用举例:在产品表中,价格档位,售价降序排列
    第六张图片

5.where 综合条件筛选

where主要为筛选功能,对数据库进行一定规则的限制,从而达到我们需要得到的数据 (除筛选外还具有连接多表的功能,目前先不展开)

  • 比较运算符:
条件意义表达式举例1
=判断相等score = 80你现在学的SQL不是编程语言→ = 在编程语言中是赋值的意思
>判断大于score > 80
>=判断大于或相等score >= 80
<判断小于score < 80
<=判断小于或相等score <= 80
<>判断不相等score <> 80有些数据库 !=
LIKE判断字符串相似name LIKE 'ab%'%表示任意字符,例如’ab%‘将匹配’ab’,‘abc’,‘abcd’
注意有些数据库大小写敏感,有些不敏感
is NULL判断是否是NULLscore is NULL用来检测空值
  • LIKE的灵活使用

    • X开头 like 'X%'

    • X结尾 like '%X'

    • 包含X like '%X%'

    • eg:使用SQL的条件表达式搜索那个叫做ca...的游戏英雄的全部属性

select *
from hero_data_table as 'h'
where h.Hero like 'ca%'

代码结果:
第七张图片

  • 逻辑运算符
意义公式举例
两个条件都满足<条件1> and <条件2>where (h.attack>60) and (h.Hero like 'L%')
攻击力大于60且名字以L开头的游戏英雄
在闭区间[X , Y]之内between X and Ywhere h.life between 445 and 580
生命值大于等于445且小于等于580
两个条件至少满足一个<条件1> or <条件2>where (h.life > 600) or (h.armor = 20)
生命值大于600 或者 护甲等于20
在X, Y, Z 中存在IN (X, Y, Z)where h.Hero in ('Lo', 'Zoe', 'Tariq')
游戏英雄名称是Lo或者Zoe或者Tariq
where h.life in (445,580)
生命值是445或者580
条件不满足NOT <条件>where not h.attack_speed = 1
攻击速度不是1

where h.Hero not in ('Lo', 'Zoe', 'Tariq')
游戏英雄名称不是Lo或者Zoe或者Tariq
指定多复合运算的关系( )where (h.life > 500) and (not h.attack_speed = 1) and (not (h.Hero like 'A%'))
生命值大于500且攻击速度不是1且名称不以A开头

6.SQL常量

  • select语句不需要from就可以独立成句显示常量,而且也能进行四则运算
  • 只使用select语句显示常量
select 1000 

代码结果

1000
1000
select 1000 , '你好' , '2021-03-18'

代码结果

1000‘你好’‘2021-03-18’
1000你好2021-03-18
select1000 as '数字','你好' as '字符串','2020-10-28' as '日期';

代码结果

数字字符串日期
1000你好2020-10-28
  • 例子:希望在极简文具数据库中找到价格<20的产品,并注明商品特征是便宜商品
select'便宜产品' as '产品特征',p.产品_描述 as '产品名称',p.产品_售价 as '产品价格'
from产品 as p
wherep.产品_售价 < 20

结果:

产品特征产品名称产品价格
便宜产品自动铅笔15
便宜产品32开笔记本8
便宜产品中性笔18
便宜产品橡皮5
便宜产品马克笔10

7.distinct (把结果中重复的行删除)

如果要得到极简文具公司数据库的所有收入超过一百万的订单的SQL代码如下:

selects.销售订单_日期_月 as '有超过百万订单月'
from销售 as s
wheres.销售数量 * s.产品_价格 > 1000000
order by有超过百万订单月

代码结果:

有超过百万订单月
1
2
2
2
3
4
5
5
6
11
12

以上我们发现2月和5月的订单都有重复超过一万的,而我们想要的是月份,不让它有重复,我们只需要在select后加个distinct便可实现

select distincts.销售订单_日期_月 as '有超过百万订单月'
from销售 as s
wheres.销售数量 * s.产品_价格 > 1000000
order by有超过百万订单月

代码结果:

有超过百万订单月
1
2
3
4
5
6
11
12

注意:如果放在多个列之前,则会只删除所有列内容都同时重复的行,比如以下代码:

select distincts.销售订单_日期_月 as '有百万单月',s.销售数量 * s.产品_价格 as '销售额'
from销售 as s
wheres.销售数量 * s.产品_价格 > 1000000
order bys.销售订单_日期_月, 销售额

结果:
第六张图片

8.函数

(函数大致含义:f(x)=y)

  • 聚合函数
  • 显示方式控制函数

(1) 聚合函数:

sum() ——求和函数

很多时候我们需要计算搜索出来的数据的综合,就需要用到sum()函数,比如:
第七张图片
意思是:在销售表中销售数量一列的总和

count()——计数函数

如果我们想要知道第十一月份有多少笔订单
代码如下:

select
count(s.销售_订单_ID) as '11月订单数'
from
销售 as s
where
s.销售订单_日期_月 = 11

结果:
第八张图片

avg()——平均值函数

sum()/count()这种表示运算出的结果不带小数

eg:求极简文具库11月份的产品单位订单平均销量
avg直接表示:

select
avg(s.销售数量) as '11月平均每笔订单销量'
from
销售 as s
where
s.销售订单_日期_月 = 11

结果:第九张图片

sum()/count()的两种表示:
1.

select
sum(s.销售数量)/count(s.销售数量) as '11月平均每笔订单销量'
from
销售 as s
where
s.销售订单_日期_月 = 11
select sum(s.销售数量)/count(客户_ID) as '11月平均每笔订单销量'
from 销售 as s
where s.销售订单_日期_月 = 11

结果:
第十张图片

min()| max()——最小最大值函数

在select中筛选出最大最小的数,用where也可以实现,但比直接用最大最小麻烦一些

eg:使用min()和max()获得极简文具公司数据库中最贵和最便宜的产品售价
1.min()max()直接实现:

selectmax(p.产品_售价) as '最高售价',min(p.产品_售价) as '最低售价'
from产品 as p

结果:
第十一张图片
2.where语句实现:
最高售价:

select distinct p.产品_价格
from 销售 as p
order by p.产品_价格 desc
limit 1

最低售价:

select distinct p.产品_价格
from 销售 as p
order by p.产品_价格 asc
limit 1

区别:where语句中主要通过distinct,order by,limit来实现的

group by ——分组函数

eg:我们想要得到每个月份的销量总和(这就需要以月份为对象进行分组,然后再求出每个月份的销售总和)
未分组前的数据:
第十二张图片
分组后:代码如下

select p.销售订单_日期_月,sum(p.销售数量) as '每月销售总额'
from 销售 as p
group by p.销售订单_日期_月

结果如下:
第十三张图片

(2) 显示方式控制函数:

round——控制保留位小数的结果

由avg()函数中的结果得知,小数点后面有很多位,如果我们想要保留两位小数可以用round函数实现
第十三张图片
代码如下:

selectround(avg(s.销售数量),2) as '11月平均每笔订单销量'
from销售 as s
wheres.销售订单_日期_月 = 11

代码结果:
第十四张图片

concat——把分开的两列合成在一个结果中

理解说明:
在英雄数据库中Hero和life是独立的两个属性
第十五张图片
而concat的作用是把两列合并到一起
第十六张图片
concat在sqlite与mysql的表达方法不一样
希冀与beekeeper中是sqlite形式
sqlite中:代码如下:

selecth.Hero || ' 的生命值是 ' || h.life as '生命值>580的英雄描述'
fromhero_data_table as h
whereh.life > 580

mysql中:代码如下:

selectconcat(h.Hero,' 的生命值是 ',h.life) as '生命值>580的英雄描述'
fromhero_data_table as h
whereh.life > 580

两种方式的代码结果都是一样的:
第十七张图片

三.SQL的多表操作

1.嵌套子循环

(1).where子查询

(简单来说就是在where里面嵌套一个或者加一个sql的语句)

举个栗子:在英雄数据库中找到比Nesus更快的游戏英雄
思路:首先,要找到Nesus这个英雄的速度,再以它为筛选条件输入在where中找到比它更快的英雄第十九章图片
找到Nesus的速度代码如下:

select h1.speed
from hero_data_table as h1
where h1.Hero = 'Nesus'

结果:第十八张图片
所以以它为条件找到速度比350更快的英雄代码如下:

select *
from hero_data_table as h2
where h2.speed > ( -- 以下子查询语句得到Nesus的速度select h1.speedfrom hero_data_table as h1where h1.Hero='Nesus');

代码结果:
第十九章图片

(2).from子查询

(与where子查询类似,这次是在from中嵌套一个sql语句)

举个栗子:在英雄数据库中找到比Nesus快的英雄中魔法值大于200的游戏英雄
大致思路:我们是要在嵌套中再加一个嵌套,我们已经有了比Nesus更快的游戏英雄的代码了(里面已经包含了一个嵌套了),只需要把它嵌套在from中第二十二张图片

首先,已知比Nesus快的代码了,只需要写出魔法值>200的代码
代码如下:

select *
from --比Nesus快的所有的游戏英雄--
where magic>200

所以将两个代码结合:如下

select *
from ( -- 以下子查询得到比Nesus速度快的所有游戏英雄数据select *from hero_data_table as h2where h2.speed > ( -- 以下子查询语句得到Nesus的速度select h1.speedfrom hero_data_table as h1where h1.Hero='Nesus') 
) as h3
where h3.magic > 200;

代码结果:
第二十张图片

(3).from与where子查询互换

其实from子查询是可以直接转化为where子查询的,比如针对找到比Nesus快的所有的游戏英雄中魔法值大于200的游戏英雄的例子

我们可以进行如下转换:

select *
from hero_data_table as h3
where h3.magic > 200 and h3.Hero in(select h2.Herofrom hero_data_table as h2where h2.speed > ( -- 以下子查询语句得到Nesus的速度select h1.speedfrom hero_data_table as h1where h1.Hero='Nesus')
)

不管那种方式,代码最后运行的结果都是一样的:
第二十一张图片

(4).select子查询

(与where和from子循环一样与,是在select中嵌套sql语句)
大致思路:第二十二张图片
eg:统计极简文具公司数据库_升级版中无产品_售价1的产品有多少个?
(需用到null的语法,建议在后续学过null再回过头看更清楚一些)
代码如下:

select (select count(h.产品_售价 is null) as '无价格产品个数'
from 产品 as h
where h.产品_售价 is null) as '无价格产品个数',(select count(h.产品_售价) as '有价格产品个数'
from 产品 as h) as '有价格产品个数'

代码结果:第二十三张图片

2.JOIN——连接多个数据库(或多表)

(简单来说就是通过表中的相同的部分把表连接起来)
第二十四张图片
如上图,可以把客户表可以跟销售表通过客户_ID连接,产品表跟销售表可以通过产品_代码连接,于是最终结果客户和产品表通过销售表连接在一起。

  • 两表连接的代码如下:
    使用把极简文具公司数据库中的客户表格和产品表格通过关联列客户_ID关联起来
select c.客户_名称, s.销售订单_日期,s.销售数量 * s.产品_价格 as '订单金额'
from客户 as c JOIN  销售 as sONc.客户_ID = s.客户_ID
wherec.客户_ID = 101

代码结果

客户_名称销售订单_日期订单金额
图龙信息信息有限公司1/10/2020352632
图龙信息信息有限公司1/26/202078112
图龙信息信息有限公司1/31/2020771584
图龙信息信息有限公司1/7/202050224
图龙信息信息有限公司4/17/2020505960
图龙信息信息有限公司6/18/2020516990
图龙信息信息有限公司6/2/2020809116
图龙信息信息有限公司6/29/2020840366
  • 多表连接代码如下:
select ...
from A JOIN B on A.id1 = B.id1C on A.id2 = C.id2

应用:通过电子专卖店数据库,对比2018年6,7,8月份的销售额,要求保留小数后两位,总销售额以亿为单位。
实现结果:第二十四张图片
代码如下:

select c.年度,c.月,round(sum(h.销售单价*s.销售数量)/100000000,2) as '销售总额_亿元'
from 产品明细 as h join 销售明细 as s on h.产品编号=s.产品编号 join 日期 as c on s.订单日期=c.日期
where c.月 in (6,7,8) and c.年度=2018
group by c.月,c.年度

3.null与内连接与外连接

-null(在有些环境下none与null表达一样)(null的意思是空值,表示未知)
应用实例:判断极简文具公司数据库_升级版中是否有产品未定产品_售价,或者缺少产品_代码
代码如下:

select *
from产品 as p
wherep.产品_代码 is NULL or p.产品_售价 is NULL

代码结果:第二十五张图片
日常生活中我们可以用null检测出没有标价的商品

  • inner join内连接
    理解:通常的内连接表示两个表中的交集部分
    第二十六张图片
  • 内连接表示的关系最严格,即,只返回满足条件的两个表格的交集
  • 即:只显示A和B中A.Key=B.Key的那些行,如果在A中有些A.Key在B中没有,无法进行匹配,则不显示,例如空值,A中某一部分如果有空值与B无法匹配,则那一行数据就不会有显示。
  • 举个栗子:在极简文具库升级版中显示出,产品_代码,产品_描述,销售_订单_ID所有的信息
    代码:
selectp.产品_代码,p.产品_描述,s.销售_订单_ID
from产品 as pJOIN 销售 as s ON p.产品_代码 = s.产品_代码
order bys.销售_订单_ID 

结果:第二十七张图片
但是,我们发现,它并没有显示出有空值的数据第二十八张图片
原因就是inner join 连接的是两个表中的交集,并不会显示一个表中的空值部分,如果想要显示出空值就需要使用外连接。

  • outter join外连接
    理解:第二十九张图片
    紧接上一个栗子,显示出没有订单的产品(就是显示出空值)
    代码如下:
select p.产品_代码,p.产品_描述,s.销售_订单_ID
from 产品 as p left join 销售 as son p.产品_代码 = s.产品_代码
order by s.销售_订单_ID asc

代码结果:第三十张图片

其中里面最核心的地方是 left join (左连接),它显示出了相交的部分与没有相交的部分,显示没有相交的部分是产品表中的空值部分,同理也有右连接但sqlite不支持,那想要显示出销售表中的空值只需要把from中销售表与产品表中的位置互换就可以。


http://chatgpt.dhexx.cn/article/g7KsaWbE.shtml

相关文章

君正X1000芯片性能和处理器介绍

君正X1000芯片是针对语音识别功能做了专门定制的芯片&#xff0c;可以支持4个MIC&#xff0c;支持远场唤醒&#xff0c;功耗很低&#xff0c;适用于物联网、智能家居、智能音频、智能玩具等产品 。 X1000 芯片功能&#xff1a; 穿戴处理器级低功耗&#xff0c;待机功耗0.2mW&am…

IBM storwize V5000存储基础配置

初始帐号密码 Superuser / passw0rd 设备和系统的基本状态 首先添加配置主机&#xff0c;前提是已经连接好光纤线&#xff0c;配置好光纤交换机 这里我们使用光纤通道 系统应该可以自动识别到端口&#xff0c;主机名可以设置为主机型号或者主机应用名 两个端口完成 配置内部存…

《计算机系统概论》-第5章-习题答案

给定指令ADD、JMP、LEA、NOT&#xff0c;请判断它们分别是操作&#xff08;或运算&#xff09;指令&#xff0c;还是数据搬移指令或控制指令&#xff1f;对每一条指令&#xff0c;进一步列出该指令可以采用的寻址模式。 指令类型寻址模式ADD操作立即数、寄存器2种寻址模式JMP控…

X1000之LCD部分的翻译

1.显示大小可达640x48060Hz&#xff0c;24BBP RGB 8 8 8 RGB(256^3) 2的24次方16777216 2.支持的颜色就是我们上面计算的 3. 8080并行接口 MCU接口方式&#xff08;8080&#xff0c;6800接口&#xff09;与RGB接口主要的区别 4.支持内部DMA操作和寄存器操作&#xff08;可以…

uboot - 配置过程1(分析国产君正的ingenic-linux-kernel3.10.14-x1000-v8.2-20181116\u-boot\mkconfig脚本)

分析uboot的配置过程&#xff08;mkconfig脚本&#xff09; uboot怎么配置&#xff1f;我们在终端上执行make NAME_config时的运行过程解析&#xff01; STEP1: %_config:: unconfig$(MKCONFIG) -A $(:_config)我们执行make *_config时会运行makefile的这两行程序&#xff0c…

Opencv 以指定格式保存图片

将图像保存至本地&#xff0c;以指定的格式&#xff0c;需要用到cv::imwrite()函数 函数原型&#xff1a; bool imwrite(const string& filename, InputArray img, const vector<int>& paramsvector<int>() )参数解释&#xff1a;filename:图像保存路径&…

【OpenCV-Python】教程:1-1 图像读取显示保存

文章目录 目标代码imread接口原型参数 支持的格式 imwrite接口原型参数 imshow接口原型参数 目标 读图片显示图片保存图片 代码 ## 导入库 import cv2 import sys## 读入图片 img cv2.imread("lena.jpg")## 读入失败退出 if img is None:sys.exit("Could not…

44.Linux君正X1000-添加st7789v显示

由于板子LCD旧屏是ili9335型号的,旧屏有时候会断货,如果断货则使用一个st7789v型号的LCD 它们两个屏的区别在于初始化屏的参数不同,引脚都一样,也就是说需要使板子同时支持ili9335型号和st7789v型号 思路: 1.uboot在显示LOG(初始化屏参数)之前,通过命令来读LCD型号,来检测LCD型…

HaaS100硬件规格

硬件配置 类别 参数 CPU 型号 HaaS 1000 架构 Cortex M33 主频 300MHz 片上Flash 16MB 内存 2.5MB SRAM 16MB PSRAM 硬件接口 类别 数量 性能指标 TF 卡槽 1个 最大支持 64GB RS485 1路 波特率支持1200bps ~ 115200bps RS232 1路 波特率最高支…

X1000对于CPU Core的参数解读(MIPS Cache)

各自摘抄整合&#xff0c;大多来自互联网&#xff0c;链接已全部放出来 1.MIPS-Based XBurst cores (up to 1.0GHz) 基于MIPS的XBurst核(最高可达1.0GHz) MIPS架构  XBurst是北京君正针对移动多媒体便携产品推出的一种创新的32位嵌入式CPU技术&#xff0c;它重新定义了32位嵌…

主控芯片成功案例:搭载北京君正X1000芯片,收款计算合二为一

具体硬件方面&#xff0c;商米码利奥Mini搭载了北京君正X1000芯片&#xff0c;该芯片具有性能强、功耗低的特点&#xff0c;主频可以达到1GHz &#xff0c;支持1秒极速启动&#xff0c;内置LPDDR&#xff08;X1000&#xff1a;32MB&#xff0c;X1000E&#xff1a;64MB&#xff…

【以太网硬件九】1000base-X是什么?

&#x1f449;个人主页&#xff1a; highman110 &#x1f449;作者简介&#xff1a;一名硬件工程师&#xff0c;持续学习&#xff0c;不断记录&#xff0c;保持思考&#xff0c;输出干货内容 说完千兆以太网电口&#xff0c;我们再来研究一下千兆光口的物理层规范。 千兆以太网…

比A100性能高4.5倍!英伟达H100横扫AI推理基准测试

视学算法报道 编辑&#xff1a;武穆 【导读】NVIDIA H100 Tensor Core GPU在MLPerf行业标准AI基准测试中首次亮相&#xff0c;创下了所有工作负载推理的世界纪录&#xff0c;提供的性能比上一代GPU高4.5 倍。 不久前&#xff0c;英伟达公布了旗下的芯片&#xff0c;在MLPerf行…

君正 X1000 音频驱动架构

X1000 音频驱动架构笔记 使用开发板X1000_HALLEY2_V2.0&#xff0c;源码为北京君正官方源码V7.0版本&#xff0c;与V6.0无太多差异 项目中遇到的问题 这是内核源码中设置所导致的&#xff0c;可能官方认为X1000这样设置会最好&#xff0c;可是我们需要小于30MS 的周期设置&…

华为metro1000描述,optix metro1000参数-华讯佳科技

OptiX Metro1000传输设备(简称Metro1000&#xff09;是华为技术有限公司研发的STM-1/STM-4/STM-16级别的盒式设备。华为Metro1000光端机主要应用于城域网、本地传输网接入层&#xff0c;具备结构简洁、集成度高等许多特点。 Metro1000光端机是华为技术有限公司开发的STM-1/STM-…

扔掉老破V100、A100,英伟达新一代计算卡H100来了

本文转载自公众号“夕小瑶的卖萌屋”&#xff0c;专业带逛互联网算法圈的神操作 -----》我是传送门 关注后&#xff0c;回复以下口令&#xff1a; 回复【789】 &#xff1a;领取深度学习全栈手册&#xff08;含NLP、CV海量综述、必刷论文解读&#xff09; 回复【入群】&#xf…

君正X1000开发板/方案开发介绍

君正X1000芯片开发板/方案开发&#xff0c;或者需要相关开发资料&#xff0c;如规格书&#xff0c;硬件设计&#xff0c;原理图等&#xff0c;可到一牛网论坛 X1000主要技术指标及特点 处理器 Ingenic X1000, 1.0GHz, 集成32Mbytes LPDDR 存储 16MBytes&#xff0c;4线SPI …

君正X1000平台内核SPI接口使用

一. 平台环境 开发板 X1000_HALLEY2_BASEBOARD_V4.1源码版本 ingenic-linux-kernel3.10.14-x1000-v8.2-20181116 二. 源码编译&#xff1a; 参照《v1000_v8.2版本编译_20181116》&#xff0c;可整体进行编译&#xff08;即同时编译生成x.bin,kernel镜像文件&#xff0c;文件…

算法工程师的职业发展前景思考和总结

本篇文章结合职友集数据对数据工程师【dba】通过个人理解和对职业行情现状进行个人主观总结。 声明&#xff1a;仅供参考&#xff0c;不是绝对&#xff0c;因人而异。 日期&#xff1a;2022年6月1日 作者&#xff1a;任聪聪 了解什么是算法工程师 首先算法工程师就是&#xff…