### SQL 查询语言学习笔记 #### 一、基本概念与语法概览 SQL(Structured Query Language)是一种用于管理和处理关系数据库的标准计算机语言。本篇笔记旨在为初学者提供一个全面的基础查询语言指南,涵盖从创建表到执行复杂查询的各个方面。 #### 二、数据定义语言(DDL) **1. 创建表 (Create Table):** ```sql CREATE TABLE R1 ( a CHAR(10), b INT NOT NULL, c CHAR(1), PRIMARY KEY(a) ); ``` 此语句创建了一个名为`R1`的表,其中包含三个字段:`a`、`b`和`c`,`a`作为主键,`b`字段不允许为空。 **2. 修改表 (Alter Table):** - 添加字段: `ALTER TABLE [表名] ADD <字段名> <数据类型>` - 示例: `ALTER TABLE xuesheng ADD (xiebie CHAR(20));` - 修改字段: `ALTER TABLE [表名] MODIFY <字段名> <新数据类型>` - 示例: `ALTER TABLE xuesheng MODIFY (xuehao VARCHAR(20));` - 删除字段: `ALTER TABLE [表名] DROP <字段名>;` **3. 删除表 (Drop Table):** 删除整个表及其所有数据和约束。 - 示例: `DROP TABLE [表名];` **4. 添加主键 (Add Primary Key):** - 示例: `ALTER TABLE [表名] ADD PRIMARY KEY([字段名]);` **5. 删除主键 (Drop Primary Key):** - 示例: `ALTER TABLE [表名] DROP PRIMARY KEY;` **6. 约束管理** - 外键约束: `FOREIGN KEY ([字段名]) REFERENCES [引用表名]([被引用字段名]);` - 示例: 在`chengji`表中,`xuehao`字段引用`xuesheng`表中的`xuehao`字段,且在删除时级联。 - `ON DELETE CASCADE`: 当主表中的记录被删除时,所有引用该记录的外键也将被删除。 - 唯一约束: `UNIQUE([字段名]);` - 非空约束: `NOT NULL` **7. 同义词 (Synonyms):** - 创建同义词: `CREATE SYNONYM <alias> FOR tablename | view;` - 删除同义词: `DROP SYNONYM <alias>;` **8. 索引 (Index):** - 创建索引: `CREATE INDEX [索引名] ON [表名] ([字段名] ASC | DESC);` - 删除索引: `DROP INDEX [索引名];` #### 三、数据操纵语言(DML) **1. 插入数据 (Insert Into):** - 示例: `INSERT INTO [表名] ([字段列表]) VALUES ([值列表]);` **2. 更新数据 (Update):** - 示例: `UPDATE [表名] SET [字段名] = [新值] WHERE [条件];` **3. 删除数据 (Delete From):** - 示例: `DELETE FROM [表名] WHERE [条件];` #### 四、数据控制语言(DCL) **1. 权限管理** - 授予权限: `GRANT [权限列表] ON [对象] TO [用户];` - 撤销权限: `REVOKE [权限列表] ON [对象] FROM [用户];` #### 五、数据查询语言(DQL) **1. SELECT 语句** - 基本查询: `SELECT * FROM [表名];` - 查询特定字段: `SELECT [字段列表] FROM [表名];` - 查询去重: `SELECT DISTINCT [字段名] FROM [表名];` - 条件查询: `SELECT * FROM [表名] WHERE [条件];` - 范围查询: 使用`BETWEEN`或`IN` - 示例: `SELECT * FROM [表名] WHERE [字段名] BETWEEN [值1] AND [值2];` - 示例: `SELECT * FROM [表名] WHERE [字段名] IN ([值列表]);` - 模糊查询: 使用`LIKE` - 示例: `SELECT * FROM [表名] WHERE [字段名] LIKE '[模式]';` **2. ORDER BY 子句** - 升序: `SELECT * FROM [表名] ORDER BY [字段名] ASC;` - 降序: `SELECT * FROM [表名] ORDER BY [字段名] DESC;` **3. GROUP BY 和 HAVING 子句** - 分组统计: `SELECT [分组字段], COUNT(*) FROM [表名] GROUP BY [分组字段];` - 分组条件过滤: `HAVING COUNT(*) > [阈值];` **4. JOIN 操作** - 内连接: `SELECT * FROM [表1] INNER JOIN [表2] ON [表1.字段] = [表2.字段];` - 左外连接: `SELECT * FROM [表1] LEFT JOIN [表2] ON [表1.字段] = [表2.字段];` - 右外连接: `SELECT * FROM [表1] RIGHT JOIN [表2] ON [表1.字段] = [表2.字段];` - 全外连接: `SELECT * FROM [表1] FULL OUTER JOIN [表2] ON [表1.字段] = [表2.字段];` 以上是SQL查询语言的一些基础知识点和示例,对于初学者来说,熟练掌握这些基本操作将大大提升数据处理的能力。在实际应用中,根据具体需求灵活运用各种语句,可以实现对数据的有效管理和分析。
- 粉丝: 0
- 资源: 1
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助