常用经典 SQL 语句大全完整版–详解+实例

常用经典 SQL 语句大全完整版--详解+实例

SQL 分类

  • DDL ---数据定义语言: CREATEALTERDROPDECLARE
  • DML ---数据操纵语言: SELECTDELETEUPDATEINSERT
  • DCL ---数据控制语言: GRANTREVOKECOMMITROLLBACK

基本语句介绍

1. 创建和删除数据库
  • 创建数据库

    sql 复制代码
    CREATE DATABASE database_name;
  • 删除数据库

    sql 复制代码
    DROP DATABASE dbname;
2. 备份 SQL Server 数据库
  • 创建备份设备

    sql 复制代码
    USE master;
    EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat';
  • 开始备份

    sql 复制代码
    BACKUP DATABASE pubs TO testBack;
3. 表操作
  • 创建新表

    sql 复制代码
    CREATE TABLE tabname (
      col1 type1 [NOT NULL] [PRIMARY KEY],
      col2 type2 [NOT NULL],
      ...
    );
  • 根据已有的表创建新表

    sql 复制代码
    CREATE TABLE tab_new AS SELECT col1, col2... FROM tab_old;
  • 删除表

    sql 复制代码
    DROP TABLE tabname;
  • 增加一个列

    sql 复制代码
    ALTER TABLE tabname ADD column col type;
  • 添加和删除主键

    sql 复制代码
    ALTER TABLE tabname ADD PRIMARY KEY (col);
    ALTER TABLE tabname DROP PRIMARY KEY;
  • 创建和删除索引

    sql 复制代码
    CREATE [UNIQUE] INDEX idxname ON tabname (col...);
    DROP INDEX idxname;
4. 视图操作
  • 创建视图

    sql 复制代码
    CREATE VIEW viewname AS SELECT statement;
  • 删除视图

    sql 复制代码
    DROP VIEW viewname;
5. 基本数据操作
  • 选择数据

    sql 复制代码
    SELECT * FROM table1 WHERE condition;
  • 插入数据

    sql 复制代码
    INSERT INTO table1 (field1, field2) VALUES (value1, value2);
  • 删除数据

    sql 复制代码
    DELETE FROM table1 WHERE condition;
  • 更新数据

    sql 复制代码
    UPDATE table1 SET field1 = value1 WHERE condition;
6. 高级查询和统计
  • 高级运算符:UNION, EXCEPT, INTERSECT

  • 外连接示例:LEFT JOIN, RIGHT JOIN, FULL JOIN

  • 统计的例子:

    • 总数

      sql 复制代码
      SELECT COUNT(*) AS totalcount FROM table1;
    • 求和

      sql 复制代码
      SELECT SUM(field1) AS sumvalue FROM table1;
    • 平均

      sql 复制代码
      SELECT AVG(field1) AS avgvalue FROM table1;
    • 最大

      sql 复制代码
      SELECT MAX(field1) AS maxvalue FROM table1;
    • 最小

      sql 复制代码
      SELECT MIN(field1) AS minvalue FROM table1;
7. 子查询和复制表
  • 子查询:

    sql 复制代码
    SELECT a, b, c FROM a WHERE a IN (SELECT d FROM b);
  • 复制表结构:

    sql 复制代码
    SELECT * INTO new_table FROM a WHERE 1<>1;
  • 复制数据:

    sql 复制代码
    INSERT INTO b(a, b, c) SELECT d, e, f FROM a;
8. 随机数据处理和重复数据处理
  • 随机选择记录:

    sql 复制代码
    SELECT TOP 10 * FROM tablename ORDER BY NEWID();
  • 删除重复记录:

    sql 复制代码
    DELETE FROM tablename WHERE id NOT IN (SELECT MAX(id) FROM tablename GROUP BY col1, col2, ...);
9. 数据库和表信息查询
  • 列出所有表:

    sql 复制代码
    SELECT name FROM sysobjects WHERE type='U';
  • 列出表的所有列:

    sql 复制代码
    SELECT name FROM syscolumns WHERE id=OBJECT_ID('TableName');

事务管理

事务管理用于确保数据操作的完整性和一致性,特别是在需要执行多个相关操作时。

事务控制方法
  1. BeginTrans:

    • 开始事务
    sql 复制代码
    BEGIN TRANSACTION;
  2. RollbackTrans:

    • 回滚事务
    sql 复制代码
    ROLLBACK;
  3. CommitTrans:

    • 提交事务
    sql 复制代码
    COMMIT;
事务管理示例
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语句和事务管理技术,您可以有效地管理数据库中的数据,并确保操作的正确性和安全性。这种组合将帮助您在数据库操作中实现更高的效率和准确性。希望这些信息对您在管理和操作数据库时有所帮助!