### SQL的增·删·改·查:语法与操作详解 #### 一、SQL简介 SQL(Structured Query Language)是一种用于管理和操作关系型数据库的标准语言。它被广泛应用于各种数据库管理系统(DBMS),如Microsoft SQL Server、Oracle、MySQL等。通过SQL,用户可以有效地创建、查询、更新和管理数据。 #### 二、SQL基本操作 根据题目中的描述,“SQL的增删改查”主要指SQL的基本操作,具体包括: 1. **插入数据**(Insert) 2. **删除数据**(Delete) 3. **更新数据**(Update) 4. **查询数据**(Select) 下面将详细介绍这些操作及其语法。 #### 三、数据库和表的创建与管理 在进行数据的增删改查之前,首先需要创建一个数据库,并在其中创建一张表。 ##### 创建数据库 ```sql USE master; GO IF db_id('scce') IS NOT NULL BEGIN DROP DATABASE scce; END GO CREATE DATABASE scce ON ( name = 'scce', filename = 'd:\scce.mdf', size = 3MB, filegrowth = 10% ) LOG ON ( name = 'scce_log', filename = 'd:\scce_log.ldf', size = 1MB, filegrowth = 10% ) GO ``` 以上代码创建了一个名为`scce`的数据库,并定义了主文件组的存储位置及日志文件的位置。 ##### 创建表 ```sql USE scce; GO IF object_id('stus') IS NOT NULL BEGIN DROP TABLE stus; END GO CREATE TABLE stus ( StudentNo VARCHAR(10) NOT NULL, StudentName VARCHAR(20) NOT NULL, StudentAge INT NOT NULL, Country VARCHAR(20) NOT NULL, StuTime DATETIME NOT NULL, Tuition MONEY NOT NULL ) GO ``` 这里创建了一张名为`stus`的学生信息表,包含了学号、姓名、年龄、国籍、入学时间以及学费等字段。 #### 四、数据的插入(Insert) 数据插入是数据库操作的基础之一。通过以下语句可以向`stus`表中添加多条记录。 ```sql INSERT INTO stus VALUES('200709003', 'saha', 21, 'ӡ', '2007-09-02', 1000.50); INSERT INTO stus VALUES('200709004', 'Tom', 21, 'й', '2007-09-02', 1000.50); INSERT INTO stus SELECT '200709005', 'YY', 19, 'ӡ', '2007-09-02', 3000.50 UNION SELECT '200709006', 'HS', 21, 'й', '2009-09-10', 5000.50 UNION SELECT '200709007', 'TCL', 21, 'ӡ', '2008-10-02', 8000.50; ``` 可以看到,不仅可以直接插入单条记录,还可以使用`SELECT`语句一次插入多条记录。 #### 五、数据的删除(Delete) 当需要删除表中的某些记录时,可以使用`DELETE`语句。 ```sql -- 删除国籍为'ӡ'的所有学生记录 DELETE FROM stus WHERE Country = 'ӡ'; -- 清空表中的所有记录 DELETE FROM stus; -- 使用TRUNCATE TABLE清空表中的所有记录 TRUNCATE TABLE stus; ``` `DELETE`和`TRUNCATE TABLE`都可以用来清空表中的数据,但它们之间存在区别:`TRUNCATE TABLE`不记录任何日志信息,执行速度更快;而`DELETE`则会记录每一条删除操作的日志,可用于事务回滚。 #### 六、数据的更新(Update) 当需要修改表中的某些数据时,可以使用`UPDATE`语句。 ```sql -- 将学生saha的国籍改为'й' UPDATE stus SET Country = 'й' WHERE StudentName = 'saha'; -- 将学号为'200709006'的学生学费改为8000 UPDATE stus SET Tuition = 8000 WHERE StudentNo = '200709006'; ``` #### 七、数据的查询(Select) 查询数据是SQL中最常用的操作之一。 ```sql -- 查询国籍为'ӡ'的所有学生信息 SELECT * FROM stus WHERE Country = 'ӡ'; -- 查询所有学生的全部信息 SELECT * FROM stus; -- 查询名字以'T'开头的学生信息 SELECT * FROM stus WHERE StudentName LIKE 'T%'; -- 查询名字中包含'H'的学生信息 SELECT * FROM stus WHERE StudentName LIKE '%H%'; ``` #### 八、约束的添加 为了确保数据的完整性和一致性,可以在表上添加各种约束。 ```sql -- 设置StudentNo为主键 ALTER TABLE stus ADD CONSTRAINT PK_stus_StudentNo PRIMARY KEY (StudentNo); -- 设置StudentName为唯一 ALTER TABLE stus ADD CONSTRAINT UQ_stus_StudentName UNIQUE (StudentName); -- 设置StudentAge必须在19至30岁之间 ALTER TABLE stus ADD CONSTRAINT CK_stus_StudentAge CHECK (StudentAge >= 19 AND StudentAge <= 30); -- 设置Country的默认值为'й' ALTER TABLE stus ADD CONSTRAINT DF_stus_Country DEFAULT ('й') FOR Country; ``` 通过以上的介绍,我们可以了解到SQL的基本操作——增删改查的具体实现方法及其语法结构。这些操作构成了数据库日常管理的基础,掌握它们对于初学者来说至关重要。
GO
IF db_id('scce') IS NOT NULL
DROP DATABASE scce
GO
CREATE DATABASE scce
ON
(
name='scce',
filename='d:\scce.mdf',
size=3,
filegrowth=10%
)
LOG ON
(
name='scce_log',
filename='d:\scce_log.ldf',
size=1,
filegrowth=10%
)
GO
USE scce
GO
IF object_id('stus') IS NOT NULL
DROP TABLE stus
GO
CREATE TABLE stus
(
StudentNo VARCHAR(10) NOT NULL,
StudentName VARCHAR(20) NOT NULL,
- 粉丝: 0
- 资源: 5
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- bdwptqmxgj11.zip
- onnxruntime-win-x86
- onnxruntime-win-x64-gpu-1.20.1.zip
- vs2019 c++20 语法规范 头文件 <ratio> 的源码阅读与注释,处理分数的存储,加减乘除,以及大小比较等运算
- 首次尝试使用 Win,DirectX C++ 中的形状渲染套件.zip
- 预乘混合模式是一种用途广泛的三合一混合模式 它已经存在很长时间了,但似乎每隔几年就会被重新发现 该项目包括使用预乘 alpha 的描述,示例和工具 .zip
- 项目描述 DirectX 引擎支持版本 9、10、11 库 Microsoft SDK 功能相机视图、照明、加载网格、动画、蒙皮、层次结构界面、动画控制器、网格容器、碰撞系统 .zip
- 项目 wiki 文档中使用的代码教程的源代码库.zip
- 面向对象的通用GUI框架.zip
- 基于Java语言的PlayerBase游戏角色设计源码