SQL语言基础:创建与操作数据库
需积分: 9 130 浏览量
更新于2024-09-08
收藏 266KB PDF 举报
"SQL笔记整理"
SQL,全称为Structured Query Language,是一种用于管理关系数据库的标准语言,涵盖了创建、查询、更新以及删除数据等多种操作。在SQL中,你可以创建数据库、定义表结构,并对数据进行各种操作。
1. 创建数据库:
要创建一个名为“student”的数据库,你可以使用以下命令:
```sql
CREATE DATABASE student;
```
这将创建一个新的数据库,供你存储相关的数据表。
2. 创建数据库表:
创建名为“student”的表,包含“userid”、“lastname”和“firstname”三列,其中“userid”是主键,你可以使用以下语句:
```sql
CREATE TABLE student (
userid INT NOT NULL PRIMARY KEY,
lastname VARCHAR(255),
firstname VARCHAR(255)
);
```
这里的`NOT NULL`约束确保“userid”列不允许为空,“PRIMARY KEY”约束则定义了“userid”作为唯一标识每条记录的字段。
3. SQL约束:
- `NOT NULL`:确保字段不接受空值,如`lastname VARCHAR(255) NOT NULL`。
- `UNIQUE`:确保每条记录的特定字段都是唯一的,如`userid INT NOT NULL UNIQUE`或`ALTER TABLE student ADD UNIQUE (userid)`(后一种用于已创建的表)。
- `PRIMARY KEY`:定义表的主键,如`userid INT NOT NULL PRIMARY KEY`。
- `FOREIGN KEY`:用于建立两个表之间的关系,例如`userid INT FOREIGN KEY REFERENCES order (另一数据库表名)(userid)`,表示“student”表的“userid”字段与“order”表的“userid”字段关联。
- `CHECK`:设置条件限制,如`userid INT NOT NULL CHECK (userid > 0)`,确保“userid”字段的值大于0。
- `DEFAULT`:设定列的默认值,如`firstname VARCHAR(255) DEFAULT 'david'`,当未指定值时,默认插入“david”。
4. 查询数据(SELECT):
- `SELECT * FROM student;`:选取“student”表中的所有数据。
- `SELECT lastname, firstname FROM student;`:仅选取“lastname”和“firstname”两列的数据。
5. 更新数据(UPDATE):
- `UPDATE student SET lastname='smith' WHERE userid=2;`:将“student”表中“userid”为2的记录的“lastname”字段更新为“smith”。
6. 删除数据(DELETE/DROP):
- `DELETE FROM student WHERE userid=3;`:删除“student”表中“userid”为3的整行记录。
- `DROP TABLE student;`:删除名为“student”的表。
- `DROP DATABASE student;`:删除名为“student”的整个数据库。
7. 插入数据(INSERT INTO):
- `INSERT INTO student VALUES (1, 'smith', 'david');`:向“student”表中插入一行新的数据,包括“userid”,“lastname”和“firstname”。
这些基本的SQL操作构成了SQL笔记的主要内容,它们是管理和操作关系型数据库的基础。通过熟练掌握这些命令,你可以有效地进行数据管理、分析和维护。
2009-12-06 上传
2009-08-31 上传
2011-06-11 上传
2011-12-20 上传
2012-12-19 上传
2021-01-19 上传
My_Sunshine_appear
- 粉丝: 128
- 资源: 6
最新资源
- SSM动力电池数据管理系统源码及数据库详解
- R语言桑基图绘制与SCI图输入文件代码分析
- Linux下Sakagari Hurricane翻译工作:cpktools的使用教程
- prettybench: 让 Go 基准测试结果更易读
- Python官方文档查询库,提升开发效率与时间节约
- 基于Django的Python就业系统毕设源码
- 高并发下的SpringBoot与Nginx+Redis会话共享解决方案
- 构建问答游戏:Node.js与Express.js实战教程
- MATLAB在旅行商问题中的应用与优化方法研究
- OMAPL138 DSP平台UPP接口编程实践
- 杰克逊维尔非营利地基工程的VMS项目介绍
- 宠物猫企业网站模板PHP源码下载
- 52简易计算器源码解析与下载指南
- 探索Node.js v6.2.1 - 事件驱动的高性能Web服务器环境
- 找回WinSCP密码的神器:winscppasswd工具介绍
- xctools:解析Xcode命令行工具输出的Ruby库