Loading... ## 前言 这篇文章主要是介绍SQL语言以及基本的数据库的相关操作,适合没有任何数据库操作基础的人员查阅。如果您有相关的数据库开发经验,那这篇文章将对您没有任何帮助。 ## SQL简介 **SQL**:Structured Query Language(结构化查询语言),是关系型数据库系统的标准语言,可以用于存取数据以及查询、更新和管理关系数据库系统。 **T-SQL** :Transact-SQL,是微软对SQL的扩展,具有SQL的主要特点,同时增加了变量、运算符、函数、流程控制和注释等语言元素,使得其功能更加强大。 ### T-SQL的组成 | 名称 | 用途 | 所含语法 | | --------------------------------------------- | ---------------------------------------------------------- | --------------------------------------- | | DML(Data Manipulation Language,数据操作语言) | 插入、修改和删除数据库中的数据 | INSERT、UPDATE及DELETE语句等 | | DDL(Data Definition Language,数据定义语言) | 以CREATE或DROP开头的命令,例如建立数据库、数据库对象定义等 | CREATE TABLE、CREATE VIEW及DROP TABLE等 | | DQL(Data Query Language,数据查询语言) | 对数据库中的数据进行查询 | SELECT语句等 | | DCL(Data Control Language,数据控制语言) | 控制数据库组件的存取许可、存取权限等 | GRANT、REVOKE等 | ## SQL设计规范 采用有意义的命名(数据库、表和字段等) | 类型 | 命名方法 | 注意事项 | | ------ | ------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | | 数据库 | 帕斯卡(Pascal Case)命名 | Ø 名称应有意义,建议选择产品或项目的名称命名<br />Ø 避免使用特殊字符,如数字,空格之类<br />Ø 避免使用缩写<br />Ø 避免中文拼音 | | 数据表 | 帕斯卡(Pascal Case)命名 | Ø 名称应有意义,建议使用能够表示表中存储内容的名字<br />Ø 避免使用特殊字符,如数字,空格之类<br />Ø 避免使用缩写<br />Ø 避免中文拼音 | | 字段 | 帕斯卡(Pascal Case)命名 | Ø 避免和表名重复<br />Ø 避免使用系统关键字作为列名(例如:int)<br />Ø 避免使用缩写或者特殊字符<br />Ø 避免中文拼音 | 注意字段名不与保留字、数据库系统或者常用的访问方法冲突 数据表应该避免可为空的列 保持不同数据表中相同意义的列名和类型一致 ## SQL注释 ```sql -- 单行注释 /* 多行注释 此处可以书写多条注释信息 */ ``` ## INSERT 插入 **语法:** `INSERT INTO 表名 (列名1,列名2,...) VALUES ('值1','值2',...)` <div class="tip inlineBlock info simple small"> ⚠注意: * 在插入语句中,**INTO** 与 **列名** 可以省略,当省略列名时,VALUES提供值的时候,提供值的顺序与值的个数必须与表结构中的列完全一致,不能打乱顺序也不能少提供值。 * 在插入语句中,不允许将标识列(自增列)写在列名中 * 如需使用默认值,则需要明确使用:`DEFAULT` 关键字 </div> **插入多条数据语法-扩展:** ```sql INSERT INTO 表名 (列名1,列名2,列名3,...) VALUES ('值1','值2','值3',...), -- 第1条记录 ('值1','值2','值3',...), -- 第2条记录 ('值1','值2','值3',...) -- 第3条记录 ``` ## UPDATE 修改 **语法:**`UPDATE 表名 SET 列名1 = '值1', 列名2 = '值2',... WHERE 条件1 AND 条件2 OR 条件3` <div class="tip inlineBlock info simple small"> ⚠注意: * WHERE条件语句后面可以存在多个过滤条件。“并且”关系使用 `AND`关键字连接;“或”关系使用 `OR`关键字连接 * 判断是否为NULL,可以使用 `IS NULL`关键字判断 * 如果条件较多,可以使用小括号()进行分组 </div> ## DELETE 删除 **语法:**`DELETE FROM 表名 WHERE WHERE 条件1 AND 条件2 OR 条件3 ` <div class="tip inlineBlock info simple small"> ⚠注意: * DELETE条件删除语句中,如果未指定WHERE条件语句,则将删除表中的所有数据 * 删除主表记录时,如果该记录被子表所引用,则这条记录将删除失败 </div> ## TRUNCATE 删除 **语法:**`TRUNCATE TABLE 表名 ` <div class="tip inlineBlock info simple small"> ⚠注意: * `TRUNCATE`语句的删除记录时**不允许携带 `WHERE`执行条件**,只能整表数据删除 * `TRUNCATE`语句进行删除表中所有数据,**标识列的计数也会从头开始** * `TRUNCATE`语句的删除速度较 `DELETE`语句更快 * `TRUNCATE`是数据定义语言(DDL),在事务操作中不支持事务回滚 * `TRUNCATE`在删除表时如果存在外键引用时,则删除失败 * 比如学生表引用了年级表,即使学生表中没有数据,只要外键关联存在,年级表就删不掉 * **在实际开发过程中,请谨慎使用** </div> 最后修改:2023 年 09 月 22 日 © 允许规范转载 赞 4 都滑到这里了,不点赞再走!?