常用经典 SQL 语句大全完整版--详解+实例
SQL 分类
- DDL ---数据定义语言:
CREATE,ALTER,DROP,DECLARE - DML ---数据操纵语言:
SELECT,DELETE,UPDATE,INSERT - DCL ---数据控制语言:
GRANT,REVOKE,COMMIT,ROLLBACK
基本语句介绍
1. 创建和删除数据库
-
创建数据库
sqlCREATE DATABASE database_name; -
删除数据库
sqlDROP DATABASE dbname;
2. 备份 SQL Server 数据库
-
创建备份设备
sqlUSE master; EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat'; -
开始备份
sqlBACKUP DATABASE pubs TO testBack;
3. 表操作
-
创建新表
sqlCREATE TABLE tabname ( col1 type1 [NOT NULL] [PRIMARY KEY], col2 type2 [NOT NULL], ... ); -
根据已有的表创建新表
sqlCREATE TABLE tab_new AS SELECT col1, col2... FROM tab_old; -
删除表
sqlDROP TABLE tabname; -
增加一个列
sqlALTER TABLE tabname ADD column col type; -
添加和删除主键
sqlALTER TABLE tabname ADD PRIMARY KEY (col); ALTER TABLE tabname DROP PRIMARY KEY; -
创建和删除索引
sqlCREATE [UNIQUE] INDEX idxname ON tabname (col...); DROP INDEX idxname;
4. 视图操作
-
创建视图
sqlCREATE VIEW viewname AS SELECT statement; -
删除视图
sqlDROP VIEW viewname;
5. 基本数据操作
-
选择数据
sqlSELECT * FROM table1 WHERE condition; -
插入数据
sqlINSERT INTO table1 (field1, field2) VALUES (value1, value2); -
删除数据
sqlDELETE FROM table1 WHERE condition; -
更新数据
sqlUPDATE table1 SET field1 = value1 WHERE condition;
6. 高级查询和统计
-
高级运算符:
UNION,EXCEPT,INTERSECT -
外连接示例:
LEFT JOIN,RIGHT JOIN,FULL JOIN -
统计的例子:
-
总数
sqlSELECT COUNT(*) AS totalcount FROM table1; -
求和
sqlSELECT SUM(field1) AS sumvalue FROM table1; -
平均
sqlSELECT AVG(field1) AS avgvalue FROM table1; -
最大
sqlSELECT MAX(field1) AS maxvalue FROM table1; -
最小
sqlSELECT MIN(field1) AS minvalue FROM table1;
-
7. 子查询和复制表
-
子查询:
sqlSELECT a, b, c FROM a WHERE a IN (SELECT d FROM b); -
复制表结构:
sqlSELECT * INTO new_table FROM a WHERE 1<>1; -
复制数据:
sqlINSERT INTO b(a, b, c) SELECT d, e, f FROM a;
8. 随机数据处理和重复数据处理
-
随机选择记录:
sqlSELECT TOP 10 * FROM tablename ORDER BY NEWID(); -
删除重复记录:
sqlDELETE FROM tablename WHERE id NOT IN (SELECT MAX(id) FROM tablename GROUP BY col1, col2, ...);
9. 数据库和表信息查询
-
列出所有表:
sqlSELECT name FROM sysobjects WHERE type='U'; -
列出表的所有列:
sqlSELECT name FROM syscolumns WHERE id=OBJECT_ID('TableName');
事务管理
事务管理用于确保数据操作的完整性和一致性,特别是在需要执行多个相关操作时。
事务控制方法
-
BeginTrans:
- 开始事务
sqlBEGIN TRANSACTION; -
RollbackTrans:
- 回滚事务
sqlROLLBACK; -
CommitTrans:
- 提交事务
sqlCOMMIT;
事务管理示例
sql
BEGIN TRANSACTION;
UPDATE accounts SET balance = balance - 100 WHERE account_id = 1;
UPDATE accounts SET balance = balance + 100 WHERE account_id = 2;
-- 条件检查
IF @@ERROR <> 0
BEGIN
ROLLBACK;
PRINT 'Transaction failed and has been rolled back.';
END
ELSE
BEGIN
COMMIT;
PRINT 'Transaction completed successfully.';
END
通过这些SQL语句和事务管理技术,您可以有效地管理数据库中的数据,并确保操作的正确性和安全性。这种组合将帮助您在数据库操作中实现更高的效率和准确性。希望这些信息对您在管理和操作数据库时有所帮助!