SQL.docx
- 文档编号:27213736
- 上传时间:2023-06-28
- 格式:DOCX
- 页数:11
- 大小:286.30KB
SQL.docx
《SQL.docx》由会员分享,可在线阅读,更多相关《SQL.docx(11页珍藏版)》请在冰豆网上搜索。
SQL
SQL语句
2、where条件查询
1、查询id为1的数据
select*fromstudentwhere‘id’=1
2、多条件查询and拼接(and表示必须满足所有的条件)
SELECTDISTINCT*FROMstudentWHEREsex=2andage=24andname='李丽丽'
3、多条件查询and和or并用(or表示或者,满足任一条件就可以)
SELECTDISTINCT*FROMstudentWHEREsex=2andage=24orname='李丽丽'
4、年龄在18到25之间
SELECT*FROMstudentWHEREage>18andage<25
5、查询表中age小于等于25
select*fromstudentwherenotage>25
6、查询表中为空的值
select*fromstudentwhereageisnull
7、查询age中大于18的小于25的值
select*fromstudentwhereagebetween18and25
8、查询age列中等于18,24,30的值。
Select*fromstudentwhereagein(18,24,30)
9、like模糊查询所有姓张的人。
Select*fromstudentwherenamelike'张%'
3、Orderby排序(asc升序;desc降序),不写,默认升序
1、按照年龄升序排序
SELECTage,name,idfromstudentORDERBYageasc
4、top子句
注意:
并非所有的数据库系统都支持SELECTTOP语句。
MySQL支持LIMIT语句来选取指定的条数数据,Oracle可以使用ROWNUM来选取。
1、mysql语法(查询3条语句)
Select*fromstudentlimit3
2、分页查询
Select*fromstudentlimit0,10(查询第一页,每页10条数据)
Select*fromstudentlimit10,10(查询第二页,每页10条数据)
5、操作符like
1、查询所有姓张的数据
Select*fromstudentwherenamelike'张%'
2、查询以名称k结尾的数据
Select*fromstudentwherenamelike'%k'
3、查询包含k的数据
Select*fromstudentwherenamelike'%k%'
6、通配符(一般搭配like使用)
1、选取name以G,F,s开始的数据。
SELECT*FROMstudentWHEREnameREGEXP'^[GFs]';
2、选取name以A-H开头的数据。
SELECT*FROMstudentWHEREnameREGEXP'^[A-H]';
7、in操作符
1、选取name为张三或李四的所有数据。
Select*fromstudentwherenamein('张三','李四')
8、Between操作符
1、查询age介于18到23岁范围的数据
SELECT*FROMstudentWHEREageBETWEEN18AND23
2、notbetween查询不在18到23岁范围的数据
SELECT*FROMstudentWHEREageNOTBETWEEN18AND23
3、选取age介于1和20之间但name不为USA和IND的所有数据
SELECT*FROMstudentWHERE(ageBETWEEN1AND20)ANDnameNOTIN('USA','IND')
4、选取name以介于'A'和'H'之间字母开始的所有数据
Select*fromstudentwherenamebetween'A'and'H'
5、选取name不介于'A'和'H'之间字母开始的所有数据
Select*fromstudentwherenamenotbetween'A'and'H'
6、选取date介于'2016-05-10'和'2016-05-14'之间的所有数据
SELECT*FROMstudentWHEREdateBETWEEN'2016-05-10'AND'2016-05-14'
八、别名
1、给name取别名n,age字段取别名a
SELECTnameasn,ageasafromstudent
查询结果:
2、合并几个字段成一个别名
SELECTid,CONCAT('年龄:
',age,'--姓名:
',`name`)asmsfromstudent
查询结果
3、表别名,给student起别名s
Selects.name,s.sexfromstudentass
4、多表别名,方便连表查询,语句过长。
Selects.name,s.sex,f.id,f.urlfromstudentass,fileasf;
八、join链接用于把来自两个或多个表的行结合起来
1、INNERJOIN查询(关键字在表中存在至少一个匹配时返回行)
selects.name,t.nameastname,t.classfromstudentassinnerjointeacherastons.teacher=t.id
原始数据:
student学生表teacher老师表
查询结果:
九、leftjoin和rightjoin查询
LEFTJOIN关键字会从左表(student)那里返回所有的行,即使在右表(teacher)中没有匹配的行。
RIGHTJOIN关键字会右表(teacher)那里返回所有的行,即使在左表(student)中没有匹配的行。
teacher学生表student老师表
1、s.name,t.namefromstudentassleftjointeacherastons.teacher=t.id
Leftjoin结果rightjoin结果
十、fulljoin(全连接)
只要其中某个表存在匹配,FULLJOIN关键字就会返回行。
十一、union操作符
UNION操作符用于合并两个或多个SELECT语句的结果集。
请注意,UNION内部的SELECT语句必须拥有相同数量的列。
列也必须拥有相似的数据类型。
同时,每条SELECT语句中的列的顺序必须相同。
十二、selectinto用于创建表的备份复件
SELECTINTO语句从一个表中选取数据,然后把数据插入另一个表中。
SELECTINTO语句常用于创建表的备份复件或者用于对记录进行存档。
十三、约束条件
Notnull不接受空值
Unique唯一标识
Primarykey主键
Foreignkey关联;一个表中的FOREIGNKEY指向另一个表中的PRIMARYKEY。
Check约束值的范围
Default约束用于向列中插入默认值
十四、表操作
Createindex建立索引
Dropindex删除索引
Altertable在已有表中,添加或删除列(add,drop)
Autoincrement会在新记录插入表中时生成一个唯一的数字
十五、数据类型
在MySQL中,有三种主要的类型:
文本、数字和日期/时间类型。
十六、函数
使用方法:
1、求平均年龄
Selectavg(age)asagefromstudent
2、求表中有多少条数据
Selectcount(*)fromstudent
3、求列的总和
Selectsum(age)fromstudent
4、查询最大年龄
Selectmax(age)fromstudent
5、查询最小年龄
Selectmin(age)fromstudent
十七、groupby分组
1、统计每个年龄段有多少人。
selectcount
(1),agefromstudentgroupbyage
2、查询同名字,年纪最大的人的数据
selectname,max(age)fromstudentgroupbyname
十八、语句
1、统计name字段值包含‘张’的总数有多少?
SELECTcount(*)FROMstudentWHEREnameLIKE'%张%'
2、查询表中所有数据
SELECT*FROMstudent
3、查询id为1的数据
SELECT*FROMstudentWHERE`id`=1
4、多条件查询and两个条件同时满足
SELECT*FROMstudentWHERE`age`=28and`name`='周三'
5、多条件查询or两个条件满足任意条件都可
SELECT*FROMstudentWHERE`age`=28or`name`='周三'
6、查询部分字段名
SELECTname,sex,ageFROMstudent
7、查询不同的值,所查询的数据不得包括重复数据。
SELECTDISTINCTageFROMstudent
8、查询不同的值,所查询的数据不得包括重复数据,但查询时,如果查询了id字段,因id每条不一样,即使其他数据相同,也会都展示出来。
可理解distinct的去重为,所查询字段中,所有的数据相同的才去重。
SELECTDISTINCT*FROMstudent;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SQL