Typora自动编号插件终极指南:告别手动编号的烦恼
2026/6/13 17:06:53
SQL(结构化查询语言)是管理和操作关系型数据库的核心工具,广泛应用于数据查询、管理和维护。本文将系统梳理SQL的核心知识点,涵盖数据操作、表结构管理、查询优化及SQL分类等内容,帮助你构建完整的SQL知识体系。
SELECT语句用于从数据库中检索数据,是SQL中最常用的命令。
SELECTcolumn1,column2,...FROMtable_nameWHEREcondition;*选择所有列WHERE子句用于过滤数据-- 查询所有男性学生SELECT*FROMstudentWHEREsex='男';INSERTINTOtable_name(column1,column2,column3,...)VALUES(value1,value2,value3,...);UPDATEtable_nameSETcolumn1=value1,column2=value2,...WHEREsome_column=some_value;DELETEFROMtable_nameWHEREsome_column=some_value;注意:不指定WHERE条件将删除表中所有数据!
-- 模糊匹配(多字符)SELECT*FROMstudentsWHEREclazzLIKE'xx%';-- 模糊匹配(单字符)SELECT*FROMstudentsWHEREstu_nameLIKE'张_';-- 多关键词匹配SELECT*FROMstudentsWHEREnameRLIKE'张|李|王';-- IN操作符SELECT*FROMstudentsWHEREclazzIN('xx','xx','xx');-- BETWEEN范围查询SELECT*FROMstudentsWHEREageBETWEEN22AND24;SELECTcolumn1,column2,...FROMtable_nameORDERBYcolumn1[ASC|DESC],column2[ASC|DESC],...;SELECTcolumn1,column2,...,AVG(column_name)FROMtable_nameGROUPBYcolumn1,column2,...;SELECTcolumn1,column2,...,aggregate_function(column_name)FROMtable_nameGROUPBYcolumn1,column2,...HAVINGcondition;-- 限制返回10行SELECT*FROMstudentsLIMIT10;-- 从第5行开始,返回10行SELECT*FROMstudentsLIMIT5,10;SELECTcolumn1,column2,...FROMtable_nameLIMITnumberOFFSEToffset;-- 增加字段ALTERTABLEstudentsADD[COLUMN]dateTDATE;-- 增加字段并设置默认值ALTERTABLEstudentsADDdateTDATEDEFAULT"2025-12-12";-- 修改字段类型ALTERTABLEstudentsMODIFYdataTDATETIME;-- 修改字段注释ALTERTABLEstudentsMODIFYdateTDATECOMMENT"日期";-- 修改字段约束ALTERTABLEstudentsMODIFYstu_idINTNOTNULL;ALTERTABLEstudentsDROPlength;ALTERTABLEstudents CHANGE stu_id sidVARCHAR(255);ALTERTABLEstudentsCHARACTERSETutf8;ALTERTABLEstudentsRENAMETOstudent;-- 或RENAMETABLEstudentsTOstudent;DROPTABLE[IFEXISTS]students;SELECTs.*,sc.subject_id,su.subject_nameFROM(students sJOINscores scJOINsubjects suONs.stu_id=sc.stu_idANDsc.subject_id=su.subject_id);SELECT*FROMstudentsASsLEFTJOINscoresASscONs.stu_id=sc.stu_id;SELECT*FROMstudentsASsRIGHTJOINscoresASscONs.stu_id=sc.stu_id;SELECTs.stu_id,s.stu_name,sc.score,su.subject_nameFROMstudents sJOINscores scONs.stu_id=sc.stu_idJOINsubjects suONsc.subject_id=su.subject_idWHEREsc.score>=90UNIONSELECTs.stu_id,s.stu_name,sc.score,su.subject_nameFROMstudents sJOINscores scONs.stu_id=sc.stu_idJOINsubjects suONsc.subject_id=su.subject_idWHEREsc.score<=60ORDERBYscoreDESC;SELECTnameFROMstudentsWHEREage=20UNIONALLSELECTnameFROMstudentsWHEREage=19;核心作用:查询/检索数据(只读)
关键字:SELECT、FROM、WHERE、GROUP BY、HAVING、ORDER BY、LIMIT、JOIN
核心作用:增删改数据内容
关键字:INSERT、UPDATE、DELETE、MERGE
核心作用:定义/修改数据库结构
关键字:CREATE、ALTER、DROP、TRUNCATE、RENAME
核心作用:管理权限和事务
关键字:GRANT、REVOKE、COMMIT、ROLLBACK
核心作用:事务管理(DCL子集)
关键字:COMMIT、ROLLBACK、SAVEPOINT
# 导入数据LOAD DATA LOCAL INFILE'路径'INTO TABLE 表名 FIELDS TERMINATED BY'分隔符';# 导出数据mysqldump -uroot -p stu students>/root/data/mydb.sql# 备份并压缩aliasdb_backup='mysqldump -uroot -p --single-transaction stu students | gzip > /root/data/mydb_$(date+%Y%m%d).sql.gz'-- 查看表结构SHOWCREATETABLEstudents;-- 查看当前数据库SELECTDATABASE();