### SQL Server 初级入门知识点解析 #### 一、数据库操作 在进行任何数据库操作之前,我们首先需要了解如何创建和删除数据库。 ##### 创建数据库 ```sql CREATE DATABASE netBar; ``` - **命令解释**:`CREATE DATABASE` 用于创建一个新的数据库。在这里创建了一个名为 `netBar` 的数据库。 - **注意事项**: - 数据库名称应具有一定的辨识度,便于后续管理和维护。 - 创建数据库前需确保没有同名数据库存在,否则会报错。 - 可以通过 `IF NOT EXISTS` 来避免重复创建的问题。 ##### 删除数据库 ```sql DROP DATABASE netbar; ``` - **命令解释**:`DROP DATABASE` 用于删除已存在的数据库。这里删除的是名为 `netbar` 的数据库。 - **注意事项**: - 删除数据库时要特别小心,因为一旦删除,其中的所有数据都将永久丢失。 - 在生产环境中,建议先备份数据再执行删除操作。 - 使用 `DROP DATABASE IF EXISTS` 可以避免因数据库不存在而产生的错误。 #### 二、表的操作 接下来,我们将学习如何创建和删除表。 ##### 创建表 ```sql CREATE TABLE card ( id VARCHAR(10) CHECK (id LIKE '[0][0][0-9][0-9][_][a-z][a-z][a-z]') PRIMARY KEY, passWord VARCHAR(10) NOT NULL, balance INT CHECK (balance <= 1000 AND balance > 0), userName VARCHAR(10) ); ``` - **命令解释**: - `CREATE TABLE` 用于创建一个新表。 - `card` 是表的名称。 - `id` 字段作为主键,并且设置了特定的格式检查约束。 - `passWord` 和 `balance` 分别代表密码和余额,后者还设定了数值范围限制。 - `NOT NULL` 确保某些字段必须包含值。 - **注意事项**: - 表结构设计时要考虑数据的一致性和完整性。 - 主键应该唯一标识每一行记录,这里采用 `VARCHAR` 类型的 `id` 作为主键。 - 使用 `CHECK` 约束可以限制字段的有效值范围。 类似地,还有另外两个表的创建: - **计算机表** (`computer`) - `id`:作为主键。 - `onuse`:表示是否被占用,只能取值 `'1'` 或 `'0'`。 - `note`:备注信息。 - **记录表** (`record`) - 包含 `id`, `cardid`, `computerId`, `beginTime`, `endTime`, `fee` 等字段。 - 使用了外键约束来关联其他表中的数据。 ##### 删除表 ```sql DROP TABLE card; ``` - **命令解释**:`DROP TABLE` 用于删除指定的表。 - **注意事项**: - 同样需要谨慎操作,以免误删重要数据。 - 如果表中有数据或与其他表有关联,删除前需考虑好数据迁移或关系处理。 #### 三、数据操作 接下来,我们将探讨如何插入、查询、更新和删除数据。 ##### 插入数据 ```sql INSERT INTO card VALUES ('0023_abc', '123', 100, ''); ``` - **命令解释**:`INSERT INTO` 用于向表中插入一条或多条新记录。 - **注意事项**: - 插入的数据必须符合表结构定义。 - 可以指定列名,只插入部分字段。 - 批量插入数据时可以提高效率。 ##### 查询数据 ```sql SELECT * FROM card; ``` - **命令解释**:`SELECT` 用于从表中获取数据。 - **注意事项**: - `*` 表示选择所有列。 - 可以根据具体需求选择特定列。 - 使用 `WHERE` 子句可以进一步筛选结果集。 ##### 更新数据 ```sql UPDATE card SET balance = balance - 1 WHERE id = '0023_abc'; ``` - **命令解释**:`UPDATE` 用于修改已存在的数据。 - **注意事项**: - 可以同时更新多个字段。 - 使用 `WHERE` 子句确保更新正确的目标记录。 ##### 删除数据 ```sql DELETE FROM card WHERE id = '00123_qqq'; ``` - **命令解释**:`DELETE FROM` 用于删除表中的数据。 - **注意事项**: - 使用 `WHERE` 子句指定删除条件。 - `TRUNCATE TABLE` 也可以清空整个表,但不支持事务回滚。 #### 四、高级查询 我们还将学习一些更复杂的查询技巧。 ##### 多表查询 ```sql SELECT * FROM record r JOIN card c ON r.cardid = c.id; ``` - **命令解释**:`JOIN` 用于连接两个或多个表,基于公共列合并数据。 - **注意事项**: - 选择合适的连接类型(如 `INNER JOIN`, `LEFT JOIN` 等)。 - 明确指定连接条件。 ##### 子查询 ```sql SELECT * FROM card WHERE balance > (SELECT AVG(balance) FROM card); ``` - **命令解释**:子查询是在另一个查询中的查询。 - **注意事项**: - 子查询的结果可以作为外部查询的一部分。 - 考虑性能问题,优化查询逻辑。 以上就是从创建数据库到操作数据的基本过程,涵盖了 SQL Server 初级入门所需的 SQL 语句知识点。通过这些基本操作的学习和练习,可以为后续深入学习数据库管理打下坚实的基础。
create database netBar
use netbar
drop table card
create table card
(
id varchar(10) check(id like '[0][0][0-9][0-9][_][a-z][a-z][a-z]')primary key,
passWord varchar(10) not null,
balance int check(balance<=1000 and balance>0),
userName varchar(10)
)
create table computer
(
id varchar(10) primary key,
onuse varchar(1) not null check(onuse='1' or onuse='0'),
note varchar(200)
)
create table record
(
id int identity(1,1) primary key,
cardid varchar(10) foreign key references card(id),
computerId varchar(10) foreign key references computer(id),
beginTime smalldatetime default getdate(),
endTime smalldatetime,constraint ch_time check(endtime>begintime),
fee int
)
- 粉丝: 0
- 资源: 1
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助