数据库基础SQL操作命令总结

张开发
2026/4/19 20:18:41 15 分钟阅读

分享文章

数据库基础SQL操作命令总结
摘要本文总结了数据库核心操作命令涵盖创建、查询、修改和删除等基本功能。主要内容包括1数据库和表的创建语法2数据插入的多种方式3查询操作基础查询、条件筛选、排序聚合4数据更新与删除5索引管理6数据库连接与权限设置。文章还对比了MySQL、PostgreSQL和SQLite的语法差异并提供了Python连接数据库的代码示例。这些命令适用于大多数SQL数据库部分语法需根据具体数据库调整是数据库操作的实用参考指南。以下是数据库基础操作命令的总结涵盖 创建、查询、修改、删除 等核心操作以通用 SQL 语法为基础部分语法需根据具体数据库如 MySQL/PostgreSQL/SQLite 调整数据库基础操作命令总结一、创建数据库二、创建表三、插入数据四、查询数据1. 基础查询2. 条件查询3. 排序与限制4. 聚合函数五、更新数据六、删除数据七 、管理索引八、数据库连接与权限九、不同数据库语法差异十、Python 连接数据库示例以 MySQL 和 SQLite 为例1. MySQL使用 mysql-connector-python2. SQLite内置模块一、创建数据库-- 创建数据库CREATEDATABASEdb_name[CHARACTERSETcharset]-- 可选指定字符集如 utf8mb4[COLLATEcollation];-- 可选指定排序规则二、创建表-- 创建表CREATETABLEtable_name(column1_name data_type[NOTNULL|UNIQUE|PRIMARYKEY],column2_name data_type[NOTNULL|UNIQUE],...[CONSTRAINTconstraint_nameFOREIGNKEY(column)REFERENCESother_table(column)]);示例CREATETABLEusers(idINTPRIMARYKEYAUTO_INCREMENT,-- MySQL 自增nameVARCHAR(50)NOTNULL,emailVARCHAR(100)UNIQUE,ageINT);三、插入数据-- 插入单行数据INSERTINTOtable_name(column1,column2,...)VALUES(value1,value2,...);-- 插入多行数据INSERTINTOtable_name(column1,column2)VALUES(value1,value2),(value3,value4);四、查询数据1. 基础查询SELECT*FROMtable_name;-- 查询所有列SELECTcolumn1,column2FROMtable_name;-- 指定列SELECTDISTINCTcolumn_nameFROMtable_name;-- 去重2. 条件查询SELECT*FROMtable_nameWHEREcondition;-- WHERE 条件-- 示例年龄 18 的用户SELECT*FROMusersWHEREage18;3. 排序与限制SELECT*FROMtable_nameORDERBYcolumn_nameASC/DESC;-- ASC 升序DESC 降序LIMITN;-- 限制返回 N 条记录-- 示例取前 10 名用户SELECT*FROMusersORDERBYageDESCLIMIT10;4. 聚合函数SELECTCOUNT(*)AStotalFROMtable_name;-- 统计总数SELECTAVG(age)ASavg_ageFROMusers;-- 平均值SELECTMAX(age)FROMusers;-- 最大值五、更新数据UPDATEtable_nameSETcolumn1value1,column2value2WHEREcondition;-- 必须指定 WHERE否则全表更新-- 示例将用户年龄1UPDATEusersSETageage1WHEREnameAlice;六、删除数据-- 删除符合条件的行DELETEFROMtable_nameWHEREcondition;-- 删除整个表DROPTABLEtable_name;-- 清空表数据保留表结构TRUNCATETABLEtable_name;七 、管理索引-- 创建索引CREATEINDEXindex_nameONtable_name(column_name);-- 删除索引DROPINDEXindex_nameONtable_name;八、数据库连接与权限-- 登录数据库如 MySQLmysql-u username-p dbname-- 授予权限示例允许用户 userlocalhost 访问 db_nameGRANTALLPRIVILEGESONdb_name.*TOuserlocalhost;FLUSHPRIVILEGES;九、不同数据库语法差异操作MySQLPostgreSQLSQLite自增主键AUTO_INCREMENTSERIALAUTOINCREMENT当前时间戳CURRENT_TIMESTAMPNOW()CURRENT_TIMESTAMP字符串拼接CONCAT(str1, str2)删除表并重建DROP TABLE IF EXISTSDROP TABLE IF EXISTSDROP TABLE IF EXISTS十、Python 连接数据库示例以 MySQL 和 SQLite 为例1. MySQL使用mysql-connector-pythonimportmysql.connector# 连接数据库connmysql.connector.connect(hostlocalhost,userroot,passwordpassword,databasedb_name)cursorconn.cursor()# 执行查询cursor.execute(SELECT * FROM users)resultscursor.fetchall()forrowinresults:print(row)# 关闭连接cursor.close()conn.close()2. SQLite内置模块importsqlite3# 连接数据库文件connsqlite3.connect(example.db)cursorconn.cursor()# 创建表cursor.execute( CREATE TABLE IF NOT EXISTS users ( id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL ) )# 插入数据cursor.execute(INSERT INTO users (name) VALUES (Alice))conn.commit()# 提交事务# 查询数据cursor.execute(SELECT * FROM users)print(cursor.fetchall())# 关闭连接conn.close()

更多文章