### SQL语法大全知识点详解 #### 一、数据库操作 ##### 创建数据库 - **命令格式**: ```sql CREATE DATABASE database-name; ``` - **功能描述**:用于创建一个新的数据库。 - **示例**: ```sql CREATE DATABASE MyDatabase; ``` ##### 删除数据库 - **命令格式**: ```sql DROP DATABASE dbname; ``` - **功能描述**:用于删除指定的数据库。 - **注意事项**:执行此操作前请确保没有正在使用的连接,且已备份重要数据。 - **示例**: ```sql DROP DATABASE MyDatabase; ``` ##### 备份数据库 - **命令格式**: - 创建备份设备: ```sql USE master; EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat'; ``` - 开始备份: ```sql BACKUP DATABASE pubs TO testBack; ``` - **功能描述**:用于创建数据库备份,确保数据安全。 - **注意事项**:备份路径需确保可写入权限。 #### 二、表的操作 ##### 创建新表 - **命令格式**: ```sql CREATE TABLE tabname (col1 type1 [NOT NULL] [PRIMARY KEY], col2 type2 [NOT NULL], ...); ``` - **功能描述**:创建新的表结构。 - **示例**: ```sql CREATE TABLE Users (UserID INT PRIMARY KEY, UserName VARCHAR(50) NOT NULL); ``` ##### 根据已有表创建新表 - **命令格式**: - 使用SELECT INTO: ```sql SELECT * INTO table_new FROM table_old; ``` - 使用CREATE TABLE AS SELECT (仅适用于Oracle): ```sql CREATE TABLE tab_new AS SELECT col1, col2... FROM tab_old DEFINITION ONLY; ``` - **功能描述**:复制现有表的结构或数据到新表中。 ##### 删除表 - **命令格式**: ```sql DROP TABLE tabname; ``` - **功能描述**:删除指定的表。 - **示例**: ```sql DROP TABLE Users; ``` ##### 修改表结构 - **增加列**: ```sql ALTER TABLE tabname ADD COLUMN col type; ``` - **删除列**: ```sql ALTER TABLE tabname DROP COLUMN colname; ``` - **功能描述**:修改表的结构,如增加或删除列。 - **注意事项**:在某些数据库系统中,如DB2,增加列后不能改变数据类型。 ##### 添加/删除主键 - **添加主键**: ```sql ALTER TABLE tabname ADD PRIMARY KEY (col); ``` - **删除主键**: ```sql ALTER TABLE tabname DROP PRIMARY KEY (col); ``` - **功能描述**:为表设置或移除主键约束。 ##### 创建/删除索引 - **创建索引**: ```sql CREATE [UNIQUE] INDEX idxname ON tabname (col...); ``` - **删除索引**: ```sql DROP INDEX idxname; ``` - **功能描述**:创建或删除表上的索引,以提高查询效率。 - **注意事项**:索引不可更改,如需修改需先删除再重建。 ##### 创建/删除视图 - **创建视图**: ```sql CREATE VIEW viewname AS SELECT statement; ``` - **删除视图**: ```sql DROP VIEW viewname; ``` - **功能描述**:创建或删除视图,视图可以看作是存储在数据库中的查询结果。 #### 三、基本SQL语句 - **选择数据**: ```sql SELECT * FROM table1 WHERE 范围; ``` - **插入数据**: ```sql INSERT INTO table1 (field1, field2) VALUES (value1, value2); ``` - **删除数据**: ```sql DELETE FROM table1 WHERE 范围; ``` - **更新数据**: ```sql UPDATE table1 SET field1 = value1 WHERE 范围; ``` - **查询数据**: ```sql SELECT * FROM table1 WHERE field1 LIKE '%value1%'; ``` - **排序**: ```sql SELECT * FROM table1 ORDER BY field1, field2 [DESC]; ``` - **聚合函数**: - 总数: ```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; ``` #### 四、高级查询运算词 - **UNION运算符**:将两个或多个查询的结果合并为一个结果集,并自动去除重复记录。 ```sql SELECT column_name(s) FROM table1 UNION SELECT column_name(s) FROM table2; ``` - **EXCEPT运算符**:返回在第一个查询结果集中存在但在第二个查询结果集中不存在的行。 ```sql SELECT column_name(s) FROM table1 EXCEPT SELECT column_name(s) FROM table2; ``` - **INTERSECT运算符**:返回两个查询结果集中都存在的行。 ```sql SELECT column_name(s) FROM table1 INTERSECT SELECT column_name(s) FROM table2; ``` #### 五、外连接 - **左外连接**:返回左表的所有记录以及右表中匹配的记录,如果右表中没有匹配,则结果集中的右表字段为NULL。 ```sql 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。 ```sql 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。 ```sql SELECT a.a, a.b, a.c, b.c, b.d, b.f FROM a FULL OUTER JOIN b ON a.a = b.c; ``` 以上内容涵盖了SQL语法的基础操作与高级应用,包括数据库操作、表操作、基本SQL语句及高级查询技巧等,对于学习SQL非常有帮助。
剩余22页未读,继续阅读
- 粉丝: 0
- 资源: 1
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助