### SQL经典语句详解 #### 一、基础知识与操作 1. **创建数据库** - 语法:`CREATE DATABASE database-name;` - **说明**:用于创建一个新的数据库实例。 - **示例**:创建名为`MyDatabase`的新数据库。 ```sql CREATE DATABASE MyDatabase; ``` 2. **删除数据库** - 语法:`DROP DATABASE dbname;` - **说明**:用于删除指定的数据库。 - **示例**:删除名为`MyDatabase`的数据库。 ```sql DROP DATABASE MyDatabase; ``` 3. **备份SQL Server** - 语法: - 创建备份设备: ```sql USE master; EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat'; ``` - 开始备份: ```sql BACKUP DATABASE pubs TO testBack; ``` - **说明**:这些命令用于创建一个备份设备,并对指定的数据库进行备份。 4. **创建新表** - 语法: - 基于定义创建新表: ```sql CREATE TABLE tabname (col1 type1 [NOT NULL] [PRIMARY KEY], col2 type2 [NOT NULL], ...); ``` - 基于已有表结构创建新表: ```sql CREATE TABLE tab_new LIKE tab_old; ``` - 仅复制表定义而不复制数据: ```sql CREATE TABLE tab_new AS SELECT col1, col2... FROM tab_old DEFINITION ONLY; ``` 5. **删除表** - 语法:`DROP TABLE tabname;` - **说明**:用于删除指定的表。 - **示例**:删除名为`tabname`的表。 ```sql DROP TABLE tabname; ``` 6. **修改表结构** - 添加列: ```sql ALTER TABLE tabname ADD COLUMN col type; ``` - 添加主键: ```sql ALTER TABLE tabname ADD PRIMARY KEY (col); ``` - 删除主键: ```sql ALTER TABLE tabname DROP PRIMARY KEY (col); ``` 7. **创建和管理索引** - 创建索引: ```sql CREATE [UNIQUE] INDEX idxname ON tabname (col...); ``` - 删除索引: ```sql DROP INDEX idxname; ``` - **说明**:索引一旦创建后无法修改,只能先删除再重建。 8. **创建和删除视图** - 创建视图: ```sql CREATE VIEW viewname AS SELECT statement; ``` - 删除视图: ```sql DROP VIEW viewname; ``` #### 二、基本SQL语句 1. **选择数据** ```sql SELECT * FROM table1 WHERE 范围; ``` 2. **插入数据** ```sql INSERT INTO table1 (field1, field2) VALUES (value1, value2); ``` 3. **删除数据** ```sql DELETE FROM table1 WHERE 范围; ``` 4. **更新数据** ```sql UPDATE table1 SET field1 = value1 WHERE 范围; ``` 5. **查找模糊匹配的数据** ```sql SELECT * FROM table1 WHERE field1 LIKE '%value1%'; ``` 6. **排序** ```sql SELECT * FROM table1 ORDER BY field1, field2 [DESC]; ``` 7. **聚合函数** - 总数: ```sql SELECT COUNT(*) AS total_count FROM table1; ``` - 求和: ```sql SELECT SUM(field1) AS sum_value FROM table1; ``` - 平均值: ```sql SELECT AVG(field1) AS avg_value FROM table1; ``` - 最大值: ```sql SELECT MAX(field1) AS max_value FROM table1; ``` - 最小值: ```sql SELECT MIN(field1) AS min_value FROM table1; ``` #### 三、高级查询 1. **使用UNION运算符** - **语法**:`SELECT ... FROM table1 UNION [ALL] SELECT ... FROM table2;` - **说明**:返回两个查询结果集的合并,去除重复行(使用`ALL`则保留所有行)。 2. **使用EXCEPT运算符** - **语法**:`SELECT ... FROM table1 EXCEPT [ALL] SELECT ... FROM table2;` - **说明**:返回出现在第一个查询结果集中但不在第二个查询结果集中的行。 3. **使用INTERSECT运算符** - **语法**:`SELECT ... FROM table1 INTERSECT [ALL] SELECT ... FROM table2;` - **说明**:返回同时出现在两个查询结果集中的行。 #### 四、使用外连接 1. **左外连接(Left Outer Join)** - **语法**:`SELECT a.a, a.b, a.c, b.c, b.d, b.f FROM a LEFT OUTER JOIN b ON a.a = b.c;` - **说明**:返回左表的所有行以及右表中匹配的行,如果右表中没有匹配,则返回NULL。 2. **右外连接(Right Outer Join)** - **语法**:`SELECT a.a, a.b, a.c, b.c, b.d, b.f FROM a RIGHT OUTER JOIN b ON a.a = b.c;` - **说明**:返回右表的所有行以及左表中匹配的行,如果左表中没有匹配,则返回NULL。 3. **全外连接(Full/Cross Outer Join)** - **语法**:`SELECT a.a, a.b, a.c, b.c, b.d, b.f FROM a FULL OUTER JOIN b ON a.a = b.c;` - **说明**:返回两个表中所有行的连接结果,如果某一方表中没有匹配,则另一方对应的列返回NULL。 以上是对SQL经典语句的详细介绍,涵盖了从基本的数据库操作到复杂的查询技巧等多个方面。通过这些语句的学习和应用,可以极大地提高在实际工作中处理数据的能力。
剩余19页未读,继续阅读
- mjf21cn12011-10-20举例不太详细,只用a/b等代替数据库或者表,看了仍不太明白.
- 粉丝: 7
- 资源: 21
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- matrixdb-4.8.13.enterprise-1.el7.x86_64.rpm
- 全自动批量建站快速养权重站系统【纯静态html站群版】:(GPT4.0自动根据关键词写文章+自动发布+自定义友链+自动文章内链+20%页面加提权词)
- 串联式、并联式、混联式混合动力系统simulink控制策略模型(串联式、并联式、混联式每个都是独立的需要单独说拿哪个,默认是混联式RB) 有基于逻辑门限值、状态机的规则控制策略(RB)、基于等效燃油
- 法码滋.exe法码滋2.exe法码滋3.exe
- python-geohash-0.8.5-cp38-cp38-win-amd64
- Matlab根据flac、pfc或其他软件导出的坐标及应力、位移数据再现云图 案例包括导出在flac6.0中导出位移的fish代码(也可以自己先准备软件导出的坐标数据及对应点的位移或应力数据,可根据需
- 拳皇97.exe拳皇972.exe拳皇973.exe
- 捕鱼达人1.exe捕鱼达人2.exe捕鱼达人3.exe
- 医疗骨折摄像检测29-YOLO(v5至v9)、COCO、CreateML、Darknet、Paligemma数据集合集.rar
- ks滑块加密算法与源代码