版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
SQL常用语句大全本文整理SQL最常用核心语句,按功能分类(基础操作、查询进阶、数据修改、表结构操作等),附简洁注释和示例,适配MySQL、Oracle等主流数据库,兼顾新手入门和日常办公查阅,避免复杂冗余,聚焦高频用法。一、基础查询语句(SELECT)核心功能:从数据表中提取所需数据,是SQL最常用语句,可搭配条件、排序、去重等修饰。1.基础查询(查询指定字段)sql
--语法:SELECT字段1,字段2FROM表名;
--示例:查询student表中的id、姓名、年龄字段
SELECTid,name,ageFROMstudent;2.查询所有字段sql
--语法:SELECT*FROM表名;(*表示所有字段,不推荐大量数据场景使用)
--示例:查询student表所有字段
SELECT*FROMstudent;3.去重查询(DISTINCT)sql
--语法:SELECTDISTINCT字段FROM表名;(去除字段中重复的值)
--示例:查询student表中所有不重复的班级
SELECTDISTINCTclassFROMstudent;4.条件查询(WHERE)sql
--语法:SELECT字段FROM表名WHERE条件;
--常用条件运算符:=(等于)、>(大于)、<(小于)、>=、<=、!=(不等于)、BETWEEN...AND...(范围)、IN(包含)、LIKE(模糊匹配)
--示例1:查询年龄大于18的学生
SELECTname,ageFROMstudentWHEREage>18;
--示例2:查询年龄在16-20之间的学生
SELECTname,ageFROMstudentWHEREageBETWEEN16AND20;
--示例3:查询班级为1班或2班的学生
SELECTname,classFROMstudentWHEREclassIN(1,2);
--示例4:模糊查询姓名包含“张”的学生(%表示任意字符,_表示单个字符)
SELECTnameFROMstudentWHEREnameLIKE'%张%';5.排序查询(ORDERBY)sql
--语法:SELECT字段FROM表名ORDERBY字段[ASC/DESC];(ASC升序,默认;DESC降序)
--示例1:按年龄升序查询学生(从小到大)
SELECTname,ageFROMstudentORDERBYage;
--示例2:按年龄降序、id升序查询(先按年龄排序,年龄相同按id排序)
SELECTname,age,idFROMstudentORDERBYageDESC,idASC;6.限制查询(LIMIT)sql
--语法:SELECT字段FROM表名LIMIT起始索引,查询条数;(起始索引从0开始,可省略,省略时从0开始)
--示例1:查询前5条学生数据
SELECT*FROMstudentLIMIT5;
--示例2:查询第6-10条学生数据(起始索引5,查询5条)
SELECT*FROMstudentLIMIT5,5;二、数据插入语句(INSERT)核心功能:向数据表中添加新的数据记录,分“指定字段插入”和“全字段插入”,推荐使用指定字段插入(避免表结构变更导致错误)。1.指定字段插入(推荐)sql
--语法:INSERTINTO表名(字段1,字段2,字段3)VALUES(值1,值2,值3);
--注意:值的类型、顺序需与字段一致,字符串需用单引号''包裹
--示例:向student表插入一条学生数据(id=1,姓名=张三,年龄=18,班级=1)
INSERTINTOstudent(id,name,age,class)VALUES(1,'张三',18,1);2.批量插入sql
--语法:INSERTINTO表名(字段1,字段2)VALUES(值1,值2),(值3,值4),...;
--示例:向student表批量插入3条数据
INSERTINTOstudent(id,name,age,class)
VALUES(2,'李四',17,1),
(3,'王五',19,2),
(4,'赵六',18,2);3.全字段插入(不推荐)sql
--语法:INSERTINTO表名VALUES(值1,值2,...);(需与表中所有字段顺序、类型完全一致)
--示例:假设student表字段顺序为id、name、age、class,插入数据
INSERTINTOstudentVALUES(5,'孙七',17,3);三、数据修改语句(UPDATE)核心功能:修改数据表中已存在的记录,必须加WHERE条件(否则会修改表中所有记录,极易出错)。1.基础修改sql
--语法:UPDATE表名SET字段1=值1,字段2=值2WHERE条件;
--示例:将id=1的学生年龄改为19
UPDATEstudentSETage=19WHEREid=1;2.多条件修改sql
--示例:将班级为1班、年龄17的学生,班级改为3班
UPDATEstudentSETclass=3WHEREclass=1ANDage=17;四、数据删除语句(DELETE)核心功能:删除数据表中的记录,必须加WHERE条件(否则会删除表中所有数据,无法恢复),与TRUNCATE(清空表)区分开。1.条件删除sql
--语法:DELETEFROM表名WHERE条件;
--示例:删除id=5的学生记录
DELETEFROMstudentWHEREid=5;2.清空表(TRUNCATE)sql
--语法:TRUNCATETABLE表名;(清空表中所有数据,重置自增主键,无法恢复,慎用)
--区别:DELETE可加条件、可恢复,TRUNCATE不可加条件、不可恢复,效率更高
TRUNCATETABLEstudent;五、表结构操作语句(DDL)核心功能:创建、修改、删除数据表,操作表结构(字段、类型、约束等),属于数据定义语言,执行后立即生效。1.创建表(CREATETABLE)sql
--语法:CREATETABLE表名(
--字段1数据类型[约束],
--字段2数据类型[约束],
--...
--主键约束(可选)
--);
--常用数据类型:INT(整数)、VARCHAR(长度)(字符串)、DATE(日期)、DATETIME(日期时间)
--常用约束:PRIMARYKEY(主键,唯一且非空)、NOTNULL(非空)、UNIQUE(唯一)
--示例:创建student表(主键id,姓名非空,年龄非空)
CREATETABLEstudent(
idINTPRIMARYKEY,--主键,唯一标识每条记录
nameVARCHAR(20)NOTNULL,--姓名,非空
ageINTNOTNULL,--年龄,非空
classINT,--班级,可空
create_timeDATETIME--创建时间,可空
);2.修改表名(ALTERTABLERENAME)sql
--语法:ALTERTABLE旧表名RENAMETO新表名;
--示例:将student表改名为stu
ALTERTABLEstudentRENAMETOstu;3.添加字段(ALTERTABLEADD)sql
--语法:ALTERTABLE表名ADD字段名数据类型[约束];
--示例:向stu表添加“性别”字段(VARCHAR类型,长度10)
ALTERTABLEstuADDgenderVARCHAR(10);4.修改字段(ALTERTABLEMODIFY)sql
--语法:ALTERTABLE表名MODIFY字段名新数据类型[新约束];
--示例:将stu表的gender字段改为VARCHAR(5),且非空
ALTERTABLEstuMODIFYgenderVARCHAR(5)NOTNULL;5.删除字段(ALTERTABLEDROP)sql
--语法:ALTERTABLE表名DROP字段名;
--示例:删除stu表的create_time字段
ALTERTABLEstuDROPcreate_time;6.删除表(DROPTABLE)sql
--语法:DROPTABLE表名;(删除整个表,包括表结构和数据,无法恢复,慎用)
--示例:删除stu表
DROPTABLEstu;六、进阶查询语句高频进阶用法,适用于多表关联、复杂统计场景,是日常办公和面试重点。1.聚合函数(COUNT、SUM、AVG、MAX、MIN)sql
--语法:SELECT聚合函数(字段)FROM表名[WHERE条件];
--COUNT:统计记录数;SUM:求和;AVG:求平均值;MAX:求最大值;MIN:求最小值
--示例1:统计学生总人数
SELECTCOUNT(id)AStotal_stuFROMstudent;--AS给字段起别名(可选)
--示例2:统计1班学生的平均年龄
SELECTAVG(age)ASavg_ageFROMstudentWHEREclass=1;
--示例3:查询学生中的最大年龄和最小年龄
SELECTMAX(age)ASmax_age,MIN(age)ASmin_ageFROMstudent;2.分组查询(GROUPBY)sql
--语法:SELECT分组字段,聚合函数FROM表名GROUPBY分组字段[HAVING分组条件];
--注意:GROUPBY必须跟在WHERE之后,HAVING用于过滤分组后的结果(区别于WHERE过滤原始数据)
--示例:按班级分组,统计每个班级的学生人数
SELECTclass,COUNT(id)ASstu_countFROMstudentGROUPBYclass;
--示例:按班级分组,统计每个班级的平均年龄,只显示平均年龄>18的班级
SELECTclass,AVG(age)ASavg_ageFROMstudentGROUPBYclassHAVINGavg_age>18;3.多表关联查询(JOIN)核心:通过两个表的共同字段(关联字段),查询两个表的关联数据,常用JOIN类型:INNERJOIN(内连接,只显示匹配的数据)、LEFTJOIN(左连接,显示左表所有数据,右表匹配不到显示NULL)、RIGHTJOIN(右连接,与左连接相反)。sql
--前提:现有student表(id,name,class)和class表(class_id,class_name),关联字段为class(student)和class_id(class)
--示例1:内连接(查询学生姓名和对应班级名称,只显示有匹配班级的学生)
SELECT,c.class_name
FROMstudents--给表起别名(简化写法)
INNERJOINclassc
ONs.class=c.class_id;--ON指定关联条件
--示例2:左连接(查询所有学生姓名和对应班级名称,没有班级的学生显示NULL)
SELECT,c.class_name
FROMstudents
LEFTJOINclassc
ONs.class=c.class_id;4.子查询(嵌套查询)sql
--语法:将一个查询结果作为另一个查询的条件或数据源,嵌套在WHERE、FROM等子句中
--示例1:查询年龄大于平均年龄的学生
SELECTname,ageFROMstudentWHEREage>(SELECTAVG(age)FROMstudent);
--示例2:查询1班学生的姓名(子查询获取1班的id)
SELECTnameFROMstudentWHEREclassIN(SELECTclass_idFROMclassWHEREclass_name='1班');七、常用辅助语句1.查看表结构(DESCRIBE)sql
--语法:DESCRIBE表名;或DESC表名;(查看表的字段、类型、约束等)
DESCstudent;2.查看数据库中的所有表sql
--MySQL:SHOWTABLES;
--Oracle:SELECTtable_nameFRO
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年党校在职研究生考试全真模拟试卷及答案(八)
- 远离病毒珍爱生命演讲稿
- 山西大学英文演讲稿格式
- 搞笑段子英语演讲稿高中
- 生态旅游建设演讲稿标题
- 会销净水机演讲稿
- 关于国贸的演讲稿一千稿
- 高中美育作文演讲稿
- 饮食与健康演讲稿80字
- 关于家乡与梦想的演讲稿
- 2026广西钦州市公安局面向社会招聘警务辅助人员158人考试备考题库及答案解析
- 2026杭州市临安区机关事业单位编外招聘56人笔试模拟试题及答案解析
- 2025年四川省绵阳市中考英语真题
- 儿科学第九版新生儿黄疸课件
- 成人气管切开拔管中国专家共识解读
- 儿童抑郁情绪自评量表(DSRSC)
- 裁剪验片记录表
- LY/T 2986-2018流动沙地沙障设置技术规程
- 发展经济学 马工程课件 3.第三章 中国特色社会主义经济发展理论
- GB/T 28202-2020家具工业术语
- GB/T 12672-2009丙烯腈-丁二烯-苯乙烯(ABS)树脂
评论
0/150
提交评论