常用经典 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语句和事务管理技术,您可以有效地管理数据库中的数据,并确保操作的正确性和安全性。这种组合将帮助您在数据库操作中实现更高的效率和准确性。希望这些信息对您在管理和操作数据库时有所帮助!