### SQL语句大全知识点 #### 创建数据库 - **语法**: ```sql IF EXISTS (SELECT * FROM sys.databases WHERE name = 'databaseName') DROP DATABASE databaseName; GO CREATE DATABASE database-name; ``` - **说明**: - `IF EXISTS` 语句用于检查是否已存在名为 `databaseName` 的数据库。 - 如果存在,则先执行 `DROP DATABASE` 语句删除该数据库。 - 使用 `GO` 作为批处理的结束标记。 - 最后使用 `CREATE DATABASE` 命令创建新的数据库。 #### 删除数据库 - **语法**: ```sql DROP DATABASE dbname; ``` - **说明**: - 直接使用 `DROP DATABASE` 命令删除指定名称的数据库。 - 需要注意的是,在删除数据库前应确保没有任何连接正在使用该数据库。 #### 备份 SQL Server - **创建备份设备**: ```sql USE master; EXEC sp_addumpdevice 'disk', 'testBack', 'C:\mssql7backup\MyNwind_1.dat'; ``` - **备份数据库**: ```sql BACKUP DATABASE pubs TO testBack; ``` - **说明**: - 首先切换到 `master` 数据库。 - 使用 `sp_addumpdevice` 存储过程创建备份设备。 - 使用 `BACKUP DATABASE` 命令进行数据库备份。 #### 创建新表 - **基本语法**: ```sql CREATE TABLE tabname ( col1 type1 [NOT NULL] [PRIMARY KEY], col2 type2 [NOT NULL] ... ); ``` - **说明**: - 按照定义的结构创建新表。 - 可以指定某列为 `NOT NULL` 和/或 `PRIMARY KEY`。 - **根据已有表创建新表**: - **方法 A**: ```sql USE 原数据库名; GO SELECT * INTO 目的数据库名.dbo.目的表名 FROM 原表名; ``` - **方法 B**: ```sql CREATE TABLE tab_new AS SELECT col1, col2 ... FROM tab_old DEFINITION ONLY; ``` - **说明**: - 方法 A 是将现有表的数据复制到新表中。 - 方法 B 仅复制表的结构而不复制数据。 #### 创建序列 - **语法**: ```sql CREATE SEQUENCE SIMON_SEQUENCE MINVALUE 1 -- 最小值 MAXVALUE 999999999999999999999999999 -- 最大值 START WITH 1 -- 开始值 INCREMENT BY 1 -- 每次加几 CACHE 20; ``` - **说明**: - 创建一个名为 `SIMON_SEQUENCE` 的序列。 - 指定了序列的最小值、最大值、开始值以及增量。 - `CACHE` 参数用于指定缓存的序列值数量。 #### 删除新表 - **语法**: ```sql DROP TABLE tabname; ``` - **说明**: - 使用 `DROP TABLE` 命令删除指定名称的表。 #### 增加/删除列 - **增加列**: ```sql ALTER TABLE tabname ADD colname coltype; ``` - **删除列**: ```sql ALTER TABLE tabname DROP COLUMN colname; ``` - **说明**: - 使用 `ALTER TABLE` 命令修改表结构。 - 可以通过 `ADD` 或 `DROP COLUMN` 来增加或删除列。 #### 添加/删除主键 - **添加主键**: ```sql ALTER TABLE tabname ADD PRIMARY KEY (col); ``` - **删除主键**: ```sql ALTER TABLE tabname DROP CONSTRAINT PK_tabname; ``` - **说明**: - 添加主键时,使用 `ADD PRIMARY KEY` 并指定列名。 - 删除主键时,通常需要知道主键约束的名称,这里假设为 `PK_tabname`。 #### 创建/删除索引 - **创建索引**: ```sql CREATE [UNIQUE] INDEX idxname ON tabname (col ...); ``` - **删除索引**: ```sql DROP INDEX idxname ON tabname; ``` - **说明**: - 使用 `CREATE INDEX` 命令创建索引。 - 使用 `DROP INDEX` 命令删除索引。 - 索引一旦创建就不能修改,需要删除后重建。 #### 创建/删除视图 - **创建视图**: ```sql CREATE VIEW viewname AS SELECT statement; ``` - **删除视图**: ```sql DROP VIEW viewname; ``` - **说明**: - 使用 `CREATE VIEW` 命令创建视图。 - 使用 `DROP VIEW` 命令删除视图。 #### 基本 SQL 语句 - **数据记录筛选**: ```sql SELECT * FROM 数据表 WHERE 字段名 = 字段值 ORDER BY 字段名 [DESC]; ``` - **更新数据记录**: ```sql UPDATE 数据表 SET 字段名 = 字段值 WHERE 条件表达式; ``` - **删除数据记录**: ```sql DELETE FROM 数据表 WHERE 条件表达式; ``` - **添加数据记录**: ```sql INSERT INTO 数据表 (字段1, 字段2, 字段3...) VALUES (值1, 值2, 值3...); ``` - **数据记录统计函数**: - `AVG(字段名)` 得出一个表格栏平均值 - `COUNT(*)` 对数据行数的统计 - `COUNT(字段名)` 对某一栏有值的数据行数统计 - `MAX(字段名)` 取得一个表格栏最大的值 - `MIN(字段名)` 取得一个表格栏最小的值 - `SUM(字段名)` 把数据栏的值相加 - **说明**: - 可以使用 `AVG`, `COUNT`, `MAX`, `MIN`, `SUM` 函数进行数据统计。 - 使用 `SELECT` 语句结合这些函数进行数据聚合操作。 #### 查询去除重复值 - **语法**: ```sql SELECT DISTINCT * FROM table1; ``` - **说明**: - 使用 `SELECT DISTINCT` 语句可以去除查询结果中的重复记录。 #### 数据表的建立和删除 - **建立数据表**: ```sql CREATE TABLE 数据表名称 ( 字段1 类型1(长度), 字段2 类型2(长度) ... ); ``` - **说明**: - 定义表结构,并指定每个字段的数据类型及长度。 #### 高级查询运算词 - **UNION 运算符**: - **语法**: ```sql SELECT 字段列表 FROM 表1 UNION SELECT 字段列表 FROM 表2; ``` - **说明**: - 使用 `UNION` 运算符可以合并两个或多个 `SELECT` 语句的结果集,并自动去除重复行。 - 结果集中的列名由第一个 `SELECT` 语句决定。 - 每个 `SELECT` 语句中的列数和顺序必须相同。 总结而言,SQL 语言提供了丰富的功能来管理数据库和数据表。通过创建、修改和删除数据库、表、索引等对象,以及增删改查数据记录,可以实现对数据的有效管理和利用。同时,SQL 还支持各种统计函数和高级查询技术,使得数据处理变得更加灵活和高效。在实际应用中,熟悉和掌握这些基本和高级 SQL 语句对于提高工作效率和优化数据库性能至关重要。
剩余11页未读,继续阅读
- 粉丝: 0
- 资源: 8
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 爱心流星雨背景_超好看.zip
- 基于springboot+mybatis+mysql+vue音乐网站管理系统源码+数据库(高分毕业设计)
- DirectX 12图形引擎+网格算法库.zip
- 创维8K10机芯 U1系列 主程序软件 电视刷机 固件升级包 V014.002.251
- DirectX 12 编程第 4 卷示例.zip
- DirectX 12 编程第 1 卷示例.zip
- DirectX 12 离线安装程序适用于那些无法在其系统上运行在线安装程序的用户!.zip
- 计算机专业数据结构入门
- python《基于BERT的电商评论观点挖掘和情感分析》+项目源码+文档说明(高分作品)
- DirectX 12 示例实时体素化利用曲面细分进行原始处理和外推,以及利用深度剥离进行实体体素化 .zip
评论0