SQL基础

【SQL】SQL的基础语法   想要成为一名数据研发工程师,SQL是必会的技能。数仓建模过程中用到Hive,其实也是通过写类SQL的语句,通过底层的引擎将其翻译成MapReduce程序,减少了程序员的开发量。除此之外,Spark、Flink等计算框架也支持使用SQL来实现查询。所以在面试的过程中,SQL是必须要考察的内容。今天先分享SQL的基础语法,而窗口函数是重中之重,后面单独写一篇进行讲解。 1.语法 SELECT 查询列表 FROM 表名或视图列表 WHERE 条件表达式 GROUP BY 字段名 HAVING 条件表达式 OR 阅读详情

一、Select

User表里面的数据如下

查询user表里面的user_name字段和user_age字段的所有数据

二、Select user_name,user_age from user

 

查询user表中所有的字段数据,用 * 表示列的名称

三、Select * from user

 

四、Distinct

Distinct选取所有的值的时候不会出现重复的数据

用普通的查询,查询所有

Select * from user

Select distinct user_name,user_age from user

注意:不能有user_id,因为两个Mary的user_id不一样,加上就不算相同数据

五、Where

1:查询user_id等于1 的数据

Select * from user where user_id = 1

 

2:查询user_age大于等于12的数据

Select * from user where user_age >=12

 

3:查询user_age不等于12的数据

Select * from user where user_age <> 12

六、AND 和 OR

And和or在where子语句中把两个或多个条件结合起来。如果需要两个条件都成立就是用and如果只需要其中一个条件成立就使用or

Select * from user where user_name = 'mary' and user_age = 12

需要注意的是SQL使用单引号来环绕文本值,如果是数值则不需要引号

Select * from user where user_name='mary' or user_age =13

结合and和or使用圆括号来组成复杂的表达式

Select * from user where (user_name = 'mary' and user_age = 12) or(user_age =13)

七、Order by

1:对指定列进行升序排列

Select * from user order by user_name

2:按照user_id逆序排列

Select * from user order by user_id DESC

2:按照升序排列user_id逆序排列user_age

SELECT * FROM user order by user_id ASC,user_age DESC

3:按照升序排列user_id逆序排列user_age

SELECT * FROM user order by user_age DESC,user_id ASC

注意:前面的条件优先级更高!!

八、Insert

User表

插入一行数据 user_id为2 user_name为tom,user_age为12

注意:如果每一项都有插入的话就不需要在前面列出列名!!

Insert into user values(2,'tom',12)

新插入一行数据,只要求user_name为eva

Insert into user(user_name) values('eva')

注意:因为ID设置为自增,所以user_id不为null

九、Update

修改user_id为6的数据user_age为14

Update user set user_age=14 where user_id=6

修改user_id为1的数据user_name为ann,user_age为11

Update user set user_name='ann',user_age=11 where user_id=1

十、Delete

User表中的所有数据信息如下

删除user_age为12的数据

Delete from user where user_age=12

删除表中的所有数据

Delete from user

 

第二章 SQL高级教程

一、Top

Top子句用于返回要返回的记录的数目,但并不是所有的数据库都支持top子句

1:SQL Server

Select top 5 * from user

2:MySQL

Select * from user limit 5

3:Oracle

Select * from user where ROWNUM <= 5

二、Like

User表的初始数据如下

1:找出以li开头的数据

Select * from user where user_name like 'li%'

2:找出以ry结尾的数据

Select * from user where user_name like '%ry'

3:找出含有a的数据

Select * from user where user_name like '%a%'

4:找出第二个字母是a第四个字母是y的数据

Select * from user where user_name like '_a_y%'

三、通配符

在搜索数据库中的数据的时候SQL通配符可以替代一个或多个字符。SQL通配符必须与like运算符一起使用

1: _ 替代一个字符

找出第二个字母是a第四个字母是y的数据

Select * from user where user_name like '_a_y'

2: % 替代一个或多个字符

找出以ry结尾的数据

Select * from user where user_name like '%ry'

3: [] 字符列中的任意一个单字符

找出以a或者l开头的数据

Select * from user where user_name like '[al]%'

找出不是a或者l开头的数据

Select * from user where user_name like '[!al]%'

四、In

只要数据满足in里面的一个条件就可以了

找到user_age是12或者13的数据

Select * from user where user_age in (12,13)

找到user_name是Harry和Mary的数据

Select * from user where user_name IN ('mary','harry')

 

五、Between

选取两个值之间的数据

查询年龄在12和14之间的数据

Select * from user where user_age between 12 and 14

 

查询字母在Alice和John之间的数据

Select * from user where user_name between 'alice' AND'john'

六、Aliases

指定别名

假设我们有两个表分别是user和Room 。我们分别指定他们为u和r。

1:不使用别名

Select room.room_name,user.user_name,user.user_age from user ,room  Where user.user_age=12 and room.room_id = 1

 

2:使用别名

使用别名的时候直接将别名跟在后面,不使用as也可以

Select r.room_name,u.user_name,u.user_age from user as u,room as r  Where u.user_age=12 and r.room_id = 1

 

七、Join

数据库中的表可以通过键将彼此联系起来,主键是一个列,在这个列中的每一行的值都是唯一的,在表中,每个主键的值都是唯一的,这样就可以在不重复每个表中的所有数据的情况下,把表间的数据交叉捆绑在一起。

以下为表user和表Room的数据

    

1:引用两个表

找出在Room of boy相关联的用户信息

Select u.user_name,u.user_age,r.room_name from user as u,room as r 

Where u.room_id = r.room_id and r.room_name='room of boy'

2:使用关键字join来连接两张表

Select u.user_name,u.user_age,r.room_name

from user as u

join room as r

on u.room_id = r.room_id and r.room_name='room of boy'

八、Inner join

Inner join 与 join 用法一致

Select u.user_name,u.user_age,r.room_name

from user as u

inner join room as r

on u.room_id = r.room_id and r.room_name='room of boy'

九、Left join

注意:左连接以左边的表为主体,也就是说会列出左边的表中的所有的数据,无论它是否满足条件。

1:user在左边

Select u.user_name,u.user_age,r.room_name

from user as u

Left join room as r

on u.room_id = r.room_id and r.room_name='room of boy'

2:Room在左边

Select u.user_name,u.user_age,r.room_name

From room as r

Left join user as u

on u.room_id = r.room_id and r.room_name='room of boy'

十、Right join

注意:左连接以右边的表为主体,也就是说会列出左边的表中的所有的数据,无论它是否满足条件。

1:Room在右边

Select u.user_name,u.user_age,r.room_name

from user as u

Right join room as r

on u.room_id = r.room_id and r.room_name='room of boy'

2:user在右边

Select u.user_name,u.user_age,r.room_name

from  room as r

Right join user as u

on u.room_id = r.room_id and r.room_name='room of boy'

十一、Full join

1:user在左边

Select * from user Full join room

2:Room在左边

Select * From room full join user

注意:SQL错误码1054表示没有找到对应的字段名;错误码1064表示用户输入的SQL语句有语法错误

十二、Union

Union操作符用于合并两个或者多个SELECT语句的结果集

请注意,UNION内部的select语句必须拥有相同数量的列。列也必须拥有相同的数据类型。同时,每条select语句中的列的顺序必须相同。

下面是Room表和color表的数据

     

Select room_name from room

Union

Select color_name from color

默认的union选取不同的值,如果想要有相同的值出现就使用union all

Select room_name from room

Union all

Select color_name from color

十三、Create DB

创建数据库mysqltest

Create database mysqltest

十四、Create table

Create table sqltest(

Id int,

Name varchar(45),

Age int,

Salary float,

Time Date,

)

十五、Constraints

SQL约束,用于限制加入表的数据的类型

常见约束:not noll、unique、primary key、foreign key、check、default

十六、Not null

Not null 约束强制列不接受NULL值。Not null 约束强制字段始终包含值,这意味着,如果不向字段添加值,就无法插入新的字段或者更新记录

用法,在字段后面加上 not null

十七、Unique

Unique约束唯一标识数据库中的每一条记录。Primary key约束拥有自动的unique约束。需要注意的是,每个表里面可以拥有多个unique约束,但只能有一个primary key约束

1:MySQL用法,unique(字段名)

2:SQL Server 、 Oracle 、 MS Access在字段后面加

3:命名约束使用constraint

4:已经创建了表之后需要添加约束

ALTER TABLE sqltest ADD UNIQUE(Age)

 

5:给已经创建了的表添加约束并命名

ALTER TABLE sqltest ADD constraint unique_name UNIQUE(Age,salary)

6:撤销约束

MySQL

在没有给约束命名的情况下(上面的age约束)直接使用字段名就可以了

ALTER TABLE sqltest DROP INDEX age

  删除后   

在约束有名字的情况下,直接使用名字就可以了

ALTER table sqltest  drop index unique_name

   删除后  

SQL Server 、 Oracle 、 MS Access

ALTER table 表名 drop constraint 约束名

 

十八、Primary key

Primary key约束唯一标识数据库表中的每一条记录,组件必须包含唯一的值。组件列不能包含NULL值。每个表都应该有一个主键,并且每一个表都只能有一个主键

1:在MySQL中的用法

2:在SQL Server 、 Oracle 和MS Access中的用法

3:为已经创建成功的表创建primary key约束

Alter table sqltest add primary key(id)

4:为已经创建成功的表添加主键约束,以及为多个列定义主键约束

Alter table sqltest add constraint pk_name primary key (id,name)

5:在MySQL中撤销主键

ALTER  TABLE sqltest DROP PRIMARY KEY

   删除后   

6:在SQL Server、Oracle、MS Access中撤销主键

Alter table 表名 drop constraint 主键名

十九、Foreign key

所谓的外键,即一个表的外键指向另一个表的主键

User表

Room表

在user表里面room_id列指向Room表里面的id列。Room表里面的id列是主键,user表里面的room_id列是外键。外键约束用于预防破坏表之间的连接动作,外键约束也能防止非法数据插入外键列,因为他必须是他指向的那个表的值之一。

二十、Check

Check约束用于限制列中的值的范围。如果对单一的列定义check约束,那么改了只允许特定的值。如果对一个表定义check约束,那么此约束会在特定的列中对值进行限制。

为已经创建成功的表添加check约束

ALTER TABLE USER ADD CHECK (age>10)

二十一、Default

Default约束用于向列宗插入默认值。如果没有规定其他值,那么就会将默认值添加到所有的新纪录。

用法:

当表已经存在的时候,添加默认值

ALTER TABLE sqltest ALTER NAME SET DEFAULT 'tom'

撤销默认值

二十二、Create index

索引,你可以在表里面创建索引,一边更加快速高效地查询数据。用户无法看见索引,他们只能被用来加速搜索、查询。

注意:更新一个包含索引的表需要比更新一个没有索引的表更多的时间,这是索引本身也需要更新,因此,理想的做法是仅仅在常常被搜索的列上面创建索引。

1:创建一个索引

CREATE INDEX index_name ON color (color_id )

2:创建一个独一无二的索引,即两行不能拥有相同的索引值。

CREATE UNIQUE INDEX book_index ON book (book_id)

 

3:如果索引不止一个列,你可以在括号中列出这些列的名称,用逗号隔开

CREATE INDEX index_bank ON bank (bank_id,bank_name)

 

二十三、Drop

通过使用DROP语句,可以删掉索引、表和数据库

1:删除索引

Drop index index_name on color

删除之后

2:删除表

DROP TABLE colorcopy

  删除之后   

3:清空表

TRUNCATE TABLE color

  删除之后  

4:删除数据库

DROP DATABASE mysqltest

 删除之后  

二十四、Alert

 

1:添加列

Alter table user add salary float

2:删除列

Alter table user drop column room_id

 

二十五、Increment

定义主键自增

二十六、View

视图,一种基于SQL语句的结果集可视化表。视图包含行和列,就像一个真实的表。视图中的字段来自一个或多个数据库中的真实的表中的字段,我们可以向视图添加SQL函数、where以及join语句,我们提交数据,然后这些来自某个单一的表。需要注意的是,数据库中的结构和设计不会受到视图的函数、where或join语句的影响

1:创建一个视图,字段来自user表和Room表

CREATE VIEW view_test AS

SELECT user.user_name,user.user_age,room.room_name

FROM USER,room

WHERE user.user_age>10

2:查询视图

Select * from view_test

3:撤销视图

DROP VIEW view_test

二十七、Date

 

二十八、Nulls

默认的,表的列可以存放NULL值。如果表里面的某个列是可选的,那么我们可以在不想改列添加值的情况下插入记录或者更新记录,这意味着该字段以NULL值保存。注意,NULL和0是不等价的,不能进行比较。

1:查询NULL值 

select * from user where salary is null

 

2:查询非NULL值 

select * from user where salary  is not null

二十九、数据类型

MySQL主要有三种类型:文本、数字、日期

三十、服务器 

 

第三章 SQL函数

一、SQL functions

在SQL当中,基本的函数类型和种类有若干种,函数的基本类型是:

合计函数(Aggregate function)和 Scalar函数

Aggregate 函数,函数操作面向一系列的值,并返回一个单一的值。

Scalar 函数,操作面向某个单一的值,并返回基于输入值的一个单一的值。

二、Avg()

求平均年龄

Select avg(user_age) from user

 

求大于平均年龄的用户

Select * from user where user_age>(Select avg(user_age) from user)

三、Count()

返回列的值的数目(不包含NULL)

注意,可以使用as来给count()取一个别名

Select count(user_id) from user

 

Select count(salary) from user

返回值不同的有多少

Select count(distinct user_name) from user

查询所有列

Select count(*) from user

 

四、Max()

返回最大值,NULL不包括在计算中

Select max(price) as max_price from commodity

 

五、Min()

返回最小值,NULL不包括在计算中

Select min(salary) poor_man from user

 

六、Sum()

返回该列值的总额

Select sum(salary) from user

 

七、Group By 

用于结合合计函数,根据一个或多个列对结果集进行分组

SELECT cname,SUM(price) FROM commodity GROUP BY cname

八、Having

在SQL中增加having子句的原因是where不能与合计函数一起使用。用法和where 一样

SELECT cname,SUM(price) FROM commodity

GROUP BY cname

HAVING  SUM(price)>20

九、Ucase()

把函数字段的值转化为大写

SELECT UCASE(user_name) FROM user

 

十、Lcase()

将函数字段转化为小写

Select lcase(user_name) from user

十一、Mid()

从文本字段中提取字符

Select mid(user_name,2,2) from user

十二、Round()

Round函数把数值字段舍入为指定的小数位数

Select round(salary,2) from user

十三、Now()

返回当前时间

SELECT NOW() FROM user

 

示例:

--查找emp表

select * from emp;

--查找emp表的sal

select a.SAL from emp a;

--查找emp表的ename

select a.ename from emp a;

--emp表的sal*10

select a.SAL*10 from emp a;

--emp表的sal的平均值

select avg(a.sal) from emp a;

--emp表的sal的总和

select sum(a.sal) from emp a;

--emp表的sal的max

select max(a.sal) from emp a;

--emp表的sal的min

select min(a.sal) from emp a;

--emp表中sal<1000的信息

select * from emp where sal<1000;

--ename中含有A的信息

select ename  from emp where ename like'%A%';

--emp中ename不含有A的信息

select * from emp where ename not like'%A%';

 

 

--查询系统时间

select sysdate from dual;

--计算薪资小于5000的员工的工资总和

select sum(sal) from emp where sal<5000 ;

--计算工资不高于平均工资的工资总和

select sum(sal) from emp where sal<(select avg(sal) from emp);

--计算工资小于4000的员工的平均工资

select avg((select sum(sal) from emp where sal<4000)) from emp;

--查询薪水低于100000的员工姓名和sal

select ename,sal from emp where  sal<100000;

--计算20号部门的员工的最高工资和最低工资

select max(sal),min(sal) from emp where deptno=20;

--查询工资大于1000,并且是20号部门的员工的全部信息

select * from emp where sal>1000 and deptno=20;

--求最高工资的员工的员工姓名和部门名称

select ename,deptno,sal from emp where sal=(select max(sal) from emp);

--将员工薪水小于5000且部门平均薪水大于1000的部门标号列出,按部门平均薪水降序排序

select deptno from emp where sal<5000  group by deptno having avg(sal) >1000;

select sal from emp order by sal desc;

Order by *** desc

 

--查找表emp

select * from emp ;

--根据用户名“Smiths”查找他所在的部门

select deptno from emp where ename='SMITH';

--查询每个部门的最高工资的人员名称

select e.ename,e.deptno,e.sal from (select deptno as did ,max(sal) as m from emp group by deptno )  s,emp e,dept d where e.sal=s.m and s.did=e.deptno and d.deptno=e.deptno;

--查询“Jones”之后第一个进入公司的人

select * from emp where hiredate=(select min(hiredate) from emp where hiredate>(select hiredate from emp where ename='JONES')) ;

--5.查找工资最高的部门名称和工资最低的部门名称及工资

select d.dname,e.sal from emp e,dept d where e.deptno=d.deptno and sal=(select max(m) from (select deptno,max(sal) as m from emp e group by deptno) s)

union

select d.dname,e.sal from emp e,dept d where e.deptno=d.deptno and sal=(select min(m) from (select deptno,min(sal) as m from emp e group by deptno) s)

--创建表

create table student(

       StudentId number (6),--学号

       LoginPwd varchar(20),--密码

       StudentName varchar(50),--姓名

       Sex char(2),--性别

       Gradeld Number(6),--所在年级

       Phone number(15),--联系电话

       Address varchar2(255),--现住址

       BornDate Date,--出生日期

       Emile varchar2(50)--电子邮件

);

--添加数据

insert into student values(1001,'123456','赵六','男',1507,120,'北京','23-5月-1995','@10422');

insert into student values(1002,'123456','王五','女',1507,110,'北京','23-5月-1995','@10422');

insert into student values(1003,'123456','张三','男',1507,120,'北京','23-5月-1995','@10422');

insert into student values(1004,'123456','李四','女',1507,110,'北京','23-5月-1995','@10422');

--提交

commit;

--查询此表

select * from student;

--根据条件修改

 update student set studentname='孙七',loginpwd='666666' where studentid=1001;

 select * from student;

--根据条件删除

delete from student where studentid=1002;

select * from student;

--增加字段

ALTER TABLE 表名称 ADD(列名称 数据类型 [DEFAULT 默认值],列名称 数据类型 [DEFAULT 默认值],…)

--删除此表

drop table student;

--B卷 创建表空间

create tablespace mytestspace datafile 'e:week3.dbf' size 2M;

--创建用户

create user zhangsan identified by zhangsan default tablespace mytestspace

temporary tablespace temp;

--创建角色并授权

create role fang;

grant create table to fang;

grant fang to zhangsan;

grant dba to zhangsan;

--创建表

create table teacher (

tid number primary key,

tname varchar2(50),

tdate date,

address varchar2(100)

);

select * from teacher;

--创建序列

create sequence teachers_sequence minvalue 1 maxvalue 100 (最小值,最大值)cycle (循环)increment by 1(步长值) start with 1(从1开始);

insert into teacher values(teachers_sequence.nextval,'小李','01-1月-1999','北京');

insert into teacher values(teachers_sequence.nextval,'小张',to_date('1982-1-1','yyyy-mm-dd'),'北京');

SQL Server——T-SQL基础技术 文章目录T-SQL基础技术基本语法格式代码准备:(可以按照我的实例自行建立数据库)1、投影查询a、投影指定的列b、投影全部列c、修改查询结果的列标题d、去掉重复行2、选择查询a.表达式比较b.范围比较c.模式匹配d.空值使用代码示例:3、连接查询a.连接谓词b.以JOIN关键字指定的连接(1)内连接(2)外连接4、统计计算5、排序查询6、子查询 T-SQL基础技术 T-SQL语言中最重要的部分是它... 阅读详情

相关推荐

从PWM到正弦波:RC低通滤波器的魔法转换之旅

本文详细介绍了如何利用RC低通滤波器将STM32F103生成的PWM信号转换为高质量正弦波的技术原理与实践方法。通过分析滤波器设计、参数计算、硬件实现及Proteus仿真验证,为嵌入式开发者提供了一套完整的PWM转正弦波解决方案,适用于电机控制、音频信号生成等多种应用场景。

jupi8的博客 380

有关MySQL onlinedb数据库的一些查询语句

有关MySQL onlinedb数据库的一些查询语句

weixin_57444167的博客 1万+

CLion与STM32CubeMX联调:JLink GDB Server高效调试指南

本文详细介绍了如何搭建并配置CLion、STM32CubeMX与JLink GDB Server联调的现代化STM32开发环境。通过一站式环境搭建、工程创建、核心调试配置及高级技巧(如RTT日志),该组合实现了高效的代码编辑、可视化配置与稳定调试,大幅提升嵌入式开发效率与体验。

web99的专栏 258

1-6SELECT基本使用

在mysql中,功能最强的,也是最复杂的是查询操作,而查询是通过select实现的,它的功能强大和复杂不仅仅体现在应该的开发过程中和系统的应维中,同时也体现在注入攻击的发挥中 我们是如何实现对所有表或者指定条件的查询、对个别字段的查询,对我们应用程序来说,进行分页的时候,我们应该注意哪些问题 实战演示 我们先打开kali的终端,输入mysql -uroot hxf show tables; 我们这里看一下users表。select * from users; 那么这里一共有7条记录,当我们要查询一个表

山兔的博客 2486

Windows下Anaconda换清华镜像源最全指南(含常见问题解决)

本文提供了一份详尽的Windows系统下Anaconda配置清华镜像源的完整指南。针对网络下载缓慢的痛点,文章详细对比了命令行添加与直接编辑配置文件两种主流方法,并重点解决了配置过程中常见的文件缺失、安装失败、环境求解缓慢等疑难问题,帮助用户一劳永逸地提升包管理效率。

brandy的博客 337

灰度发布、蓝绿部署、双活架构与数据同步/备份/迁移

本文系统介绍了现代互联网系统的核心部署策略与数据管理技术体系。主要内容包括:1)三种服务发布策略(灰度发布、蓝绿发布、滚动发布)的原理、实现方式和适用场景对比;2)高可用架构设计(同城双活、异地双活、异地多活)的技术方案;3)数据同步机制、备份策略与迁移方案的设计要点。文章通过架构图、流程图和配置示例详细展示了各类技术的实施方法,并分析了不同方案的优劣及风险控制措施,为构建高可用、高可靠的分布式系统提供了完整的技术指南。

zane的博客 514

sql常用语句

此博客记录一下sql语句的简单使用,长时间不使用已经有些遗忘。 创建表: 注意事项: NOT NULL - 每一行都必须含有值(不能为空),null 值是不允许的 DEFAULT value - 设置默认值 UNSIGNED - 使用无符号数值类型,0 及正数 AUTO INCREMENT - 设置 MySQL字段的值在新增记录时每次自动增长 1 PRIMARY KEY - 设置数据表中每条记录的唯一标识。 通常列的 PRIMARY KEY设置为 ID 数值,与 AUTO_INCREMENT 一起使用

weixin_44059750的博客 1444

RK3566/RK3588 NPU性能实测:用mobilenet模型快速验证你的开发板NPU是否正常工作

本文提供了RK3566/RK3588开发板NPU性能实测指南,通过MobileNet模型快速验证NPU是否正常工作。详细介绍了环境搭建、测试资源获取、编译运行及结果分析的全流程,帮助开发者高效验证神经网络加速器功能,为后续AI应用部署奠定基础。

weixin_28826521的博客 447

select * from user 这条 SQL 语句,背后藏着哪些不可告人的秘密?

作为一名 Java开发人员,写 SQL 语句是常有的事,但是你知道 SQL 语句背后的处理逻辑吗?比如下面这条 SQL 语句: select * from user where id=1 执行完这条语句后,我们就会得到 id 为 1 的用户信息。那么对于这一条 SQL 语句,MySQL服务器做了哪些处理呢?这篇文章我们就一起打卡 MySQL 数据库中对 SQL 语句的处理逻辑。 了解 MySQL...

平头哥的技术博文 5922

ArcMap学习笔记(三)地图数字化

地图数字化前言地图数字化实现步骤1.加载地形图2.新建要素图层3.开启编辑环境4.设置捕捉环境5.选择数字化图层6.数字化控制点7.数字化等高线8.数字化图幅边框9.保存数字化成果总结 前言 使用软件:ArcMap10.4.1中文版 如果出现侵权,请在评论留言,我会及时删除,谢谢。 地图数字化 空间数据采集(输入)是将现有的地图、外业观测成果、航空像片、遥感图片数据、文本资料等转换成GIS可以直接...

JayWang博客 1万+

【雕爷学编程】Arduino动手做(75)---TTL转RS-485模块之二线制可以实现真正的多点双向通信

37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手尝试系列实验,不管成功(程序走通)与否,都会记录下来---小小的进步或是搞不掂的问题,希望能够抛砖引玉。 【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程) 实验七十五:TTL转RS-485模块 MAX485 RS485模块 MAX485 是一个8.

雕爷学编程 1万+

MySQL数据库之用户管理

mysql用户管理可以对用户权限进行设置远程登陆以及修改密码

weixin_59629968的博客 605

Android驱动工程师职位(侧重于Bringup、外设驱动调试、芯片平台经验)

本文摘要:深圳泓京纬科技招聘Android驱动工程师,要求具备Bootloader/LK/Linux Bringup经验,熟悉LPDDR/eMMC/UFS等存储设备调试。文章详细解析了Android系统架构、Linux驱动开发核心概念、设备树作用、串口调试方法等基础知识。重点介绍了存储驱动架构、性能优化和故障排查技巧,包括eMMC识别问题、UFS性能优化、NAND ECC错误处理等实战场景。同时涵盖芯片平台开发经验、跨部门协作调试方法,以及低温环境等特殊场景的问题解决方案。

郑伟强dev的专栏 247

SQL基础教程总结

Mick的《SQL基础教程》(第二版)总结。 1、前言 本书很适合入门学习SQL语言,以PostgreSQL数据库为例,讲解了SQL的基础知识。 如何安装PostgreSQL:如何安装PostgreSQL 下载《SQL基础教程》(第二版):[百度网盘链接] 提取码:9hpm 2、正文 本书有九章内容,以下是每一章内容的导图。 第一章:数据库和SQL 第二章:查询基础 第三章:聚合和排序 第四章:数据更新 第五章:复杂查询 第六章:函数、谓词、CA

weixin_43851352的博客 4006

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

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

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

《SQL Server基础——SQL语句》

SQL Server基础——SQL语句 一、创建和删除数据库; 二、创建数据表; 三、创建视图; 四、约束语句; 五、修改语句; 六、终局之战; 七、查询语句; 八、分类汇总; 九、连接查询; 十、特殊查询;

Dustpolaris的博客 1万+

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

SQL基础入门——SQL基础语法

在SQL中,数据库是一个数据的集合,包含了多个表、视图、索引、存储过程等对象。管理数据库和表的结构是SQL的基础操作。SQL基础语法是关系型数据库的核心,涉及数据库的创建、表结构的定义、数据的增删改查等操作。语句用于从一个或多个表中查询数据,支持多种查询操作,如选择列、过滤数据、排序等。子句用于指定查询的条件,仅返回符合条件的记录。语句用于定义表的结构,包括表的列、数据类型及其他约束条件。删除数据库,删除数据库将清除所有数据和表。删除表,删除表将删除表中的所有数据及结构。语句用于删除表中的一条或多条记录。

好看资源网的博客 1712

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

SQL基础编程

一.SQL的环境搭载 单机与在线 二.SQL的单表操作 1.sql基础三步 2.sql四则运算 3.limit (限制查询结果个数) 4.order by(排序) 5.where 综合条件筛选 6.SQL常量 7.distinct (把结果中重复的行删除) 8.函数 三.SQL的多表操作 1.嵌套子循环 2.JOIN——连接多个数据库(或多表) 3.null与内连接与外连接

h15136020513的博客 6658

SQL语句学习+牛客基础39SQL

(Structured Query Language:结构化查询语言) 是用于管理关系数据库管理系统(RDBMS)。SQL 的范围包括数据插入、查询、更新和删除,数据库模式创建和修改,以及数据访问控制。

weixin_43038557的博客 2997

SQL基础——SQL概要

Data Definition Language 数据定义语言,用来创建或者删除数据库数据用户数据库以及数据库中的表等对象。DDL包含以下的几种指令CREATE:创建数据库和表对象DROP:删除数据库和表等对象ALTER:修改数据库和表等对象的结构。

理想主义的花最终会盛开在浪漫主义的土壤里,我的热情永远不会熄灭在现实的平凡之中,我们终将上岸,阳光万里。 938

SQL学习 之SQL基础

<br />本文转载至: http://topic.youkuaiyun.com/u/20100826/18/08132ed8-a383-46ea-b08f-6794702ff236.html<br /> <br />第一部分:SQL基础<br /><br /><br />1. 为什么学习SQL<br /><br />自人类社会形成之日起,社会的运转就在不断地产生和使用各种信息(文献、档案、资料、数据等);在如今所谓的信息时代,由于计算机和互联网的作用,信息的产生和使用达到前所未有的广度和深度。如何管好和用好信息,是(

金 色 的 草 棚 549

值得看的SQL书籍

来自:程序员书库(ID:CodingBook) 近年来,和其他系统领域一样,数据库领域也实现了飞速发展,应用范围不断扩大,不但出现了具有新功能的数据库,而且操作的数据量也...

代码技巧 3万+

SQL基础概念及常用SQL操作语句

SQL语句 文章目录SQL语句1.什么是SQL 2.SQL功能分类3.SQL数据类型4.DDL创建数据库修改数据库创建学生表添加一列查看表的字段信息修改一个表的字段类型删除一列修改表名查看表的创建细节修改表的字符集为gbk修改表的列名删除表5.DML查询表中的所有数据 插入操作更新操作删除操作6.DQL查询所有列结果集查询指定列的数据条件查询 1.什么是SQL SQL是Structured Q...

一生信仰 9194
上一篇: IDEA配置JUnit进行单元测试
下一篇: Mybatis参数取值方式
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值