100个SQL常用语句,建议收藏~

以下是1 00条常用SQL语句的分类,涵盖数据查询、插入、更新、删除、表操作、索引管理、视图操作、事务控制、权限管理等多种场景: 1 、基本数据查询(SELECT) 全表查询 SELECT*FROMtable_name; SELECT 列查询 SELECTcolumn1 ,column2 FROMtable_name;条件查询 (WHERE) SELECT*FROMtable_nameWHEREcondition;模糊查询(eg) SELECT*FROMtable_nameWHEREcolumnLIKE'%pattern%';范围查询 (BETWEEN) SELECT*FROMtable_nameWHEREcolumnBETWEENvalue1 ANDvalue2 ;设置多个条件(和/或) SELECT*FROMtable_nameWHEREcondition1 ANDcondition2 ;重复数据删除查询 (DISTINCT) SELECTDISTINCTcolumnFROMtable_name;排序查询 (ORDERBY) SELECT*FROMtable_nameORDERBYcolumnASC/DESC;分组查询(GROUPBY) SELECTcolumn,COUNT(*)FROMtable_nameGROUPBYcolumn;分组后过滤 (HAVING) SELECTcolumn,COUNT(*)FROMtable_nameGROUPBYcolumnHAVINGCOUNT(*)>1 ; 2 、数据操作(INSERT/UPDATE/DELETE) 插入一行数据 INSERTINTOtable_name(column1 ,column2 )VALUES(value1 ,value2 );插入多行数据 INSERTINTOtable_name(column1 ,column2 )VALUES(value1 ,value2 ),(value3 ,value4 );从其他表插入数据 INSERTINTOtable_name(column1 ,column2 )SELECTcolumn1 ,column2 FROM source_table; UPDATE table_nameSETcolumn1 =value1 WHERE条件;批量更新 UPDATEtable_nameSETcolumn1 =CASEWHENcondition1 THENvalue1 ELSEvalue2 END;删除数据(DELETE) DELETEFROMtable_nameWHEREcondition;清除表(截断)TRUNCATETABLE表名; 3 、表操作(CREATE/ALTER/DROP) 创建表 CREATETABLEtable_name(column1 datatype,column2 datatype);创建带有约束的表 CREATETABLEtable_name(column1 INTPRIMARYKEY,column2 VARCHAR(5 0)NOTNULL);修改表结构(添加列) ALTERTABLEtable_nameADDcolumn_namedatatype;修改表结构(删除列) ALTERTABLEtable_nameDROPCOLUMNcolumn_name;修改列数据类型 ALTERTABLEtable_nameMODIFYCOLUMNcolumn_namenew_datatype;重命名表 ALTERTABLEold_nameRENAMETOnew_name;删除表 DROPTABLEtable_name; 4 、索引管理 创建索引 CREATEINDEXindex_nameONtable_name(column_name);创建唯一索引 CRATEEUNIQUEINDEXindex_nameONtable_name(column_name);删除索引 DROPINDEXindex_nameONtable_name; 5 、视图操作创建视图CREATEVIEWview_nameASSELECTcolumn1 ,column2 FROMtable_name;修改视图CREATEORREPLACEVIEWview_nameASSELECT*FROMnew_table;删除视图 DROPVIEWview_name; 6 、多表查询(JOIN) 内连接(INNERJOIN) SELECTa.*,b.*FROMtable1 aINNERJOINtable2 bONa.id=b.id; LEFTJOIN SELECTa.*,b.*FROMtable1 aLEFTJOINtable2 bONa.id=b.id;右连接 FULLJOIN SELECTa.*,b.*FROMtable1 aFULLJOINtable2 bONa.id=b.id; CROSSJOIN SELECTa.*,b.*FROMtable1 aCROSSJOINtable2 b;自连接(自连接)SELECTa.*,b.*FROMtableaJOINtablebONa.manager_id=b.id; 7 . WHERE SELECT*FROMtable1 WHEREcolumn1 IN(SELECTcolumn1 FROMtable2 ) 子句中的子查询; FROM SELECTa 语句中的子查询。
*FROM(SELECT*FROMtable1 WHEREcondition)a; SELECT 语句中的子查询 SELECTcolumn1 ,(SELECTCOUNT(*)FROMtable2 WHEREtable2 .id=table1 .id)AScountFROMtable1 ;8 .事务控制开启事务BEGINTRASACTION;发送提交事务;回滚事务ROLLBACK;设置保存点保存点名称; ROLLBACKTOsavepoint_name; 9 .管理权限创建用户CREATEUSER'用户名'@'主机'IDENTIFIEDBY'密码';授予权限GRANTSELECT,INSERTONdatabase.tableTO'用户名'@'主机'; REVOKESELECT,INSERTONdatabase.tableFROM'用户名'@'主机';删除用户DROPUSER'用户名'@'主机'; 1 0、高级功能及功能分页查询(LIMIT/OFFSET)SELECT*FROMtable_nameLIMIT1 0OFFSET2 0;聚合函数 (COUNT/SUM/AVG/MAX/MIN) SELECTCOUNT(*),SUM(column1 ),AVG(column2 )FROMtable_name;日期函数 SELECTNOW(),CURDATE(),CURTIME();字符串函数 (CONCAT/SUBSTRING/TRIM) SELECTCONCAT(column1 ,column2 ),SUBSTRING(列1 ,1 ,5 )FROM表名;条件表达式 (CASEWHEN) SELECTcolumn1 ,CASEWHENcolumn2 >1 0THEN'High'ELSE'Low'ENDFROMtable_name;存储过程 CREATEPROCEDUREprocedure_name()BEGINSELECT*FROMtable_name;END;触发器 CREATETRIGGERtrigger_nameBEFOREINSERTONtable_nameFOREACHROWSETNEW.column1 ='value'; 1 1 .数据库管理创建数据库CREATEDATABASEdatabase_name;选择数据库使用数据库名称;删除数据库 DROPDATABASEdatabase_name;备份数据库(MySQL示例)mysqldump-username-pdatabase_name>backup.sql;恢复数据库(MySQL 示例) mysql-username-pdatabase_name实际使用中,需要根据具体数据库(MySQL、Oracle、SQLServer等)修改语法细节。
建议根据实际业务场景进行练习,逐步掌握复杂的查询和优化技术。

在sql语句中怎么查询一个表的数据的数量?

在SQL语言中,查询表中数据的数量是一个常见的任务。
为此,您可以使用 SELECTcount(*) 语句。
这里的关键是count(*)函数,它统计表中所有记录的行数,而不管列的值是多少。
例如,如果您想知道名为Users的表中有多少条记录,可以执行以下SQL语句: SELECTcount(*)FROMUsers;值得注意的是,这个查询不返回任何特定的数据行,而是返回单个数字,即表中的记录总数。
如果需要进一步分析每一列的具体值,可以结合其他查询条件使用。
此外,count(*) 与 count(column_name) 不同。
后者统计指定列中非零值的数量,而 count(*) 统计所有行,即使某些列为空。
在执行这样的查询之前,请确保您已连接到正确的数据库并且具有足够的权限来访问指定的表。
如果表包含大量数据,则查询可能需要一些时间来执行,尤其是在未正确优化的情况下。
这样就可以轻松获取表中的记录数,这对于数据分析、性能监控等很多场景非常有用。
综上所述,SQL 语句 SELECTcount(*)FROMUsers 是查询表中记录数的非常有效的方法。
此外,如果想知道特定条件下的记录数,可以添加WHERE子句。
例如,如果要统计表中的活跃用户数,可以这样写: SELECTcount(*)FROMUsersWHEREstatus='active';这种查询方式在用户管理、报表生成等方面非常有用。
总之,掌握如何用SQL查询一张表的数据量是数据库管理的重要技能之一。
通过灵活使用不同的查询条件和函数,您可以更好地了解和管理您的数据库。