0

0

每天一点数据库之

php中文网

php中文网

发布时间:2016-06-07 15:42:18

|

1704人浏览过

|

来源于php中文网

原创

每天一点数据库之-----Day 2创建与管理数据库表 本节引言: 本节介绍的是数据库中表的创建与管理,另外,因为不同DBMS所 支持的数据类型有所差别,这里就不慢慢阐述了,有需要的自行百度~ 1.创建一个最简单的表 假如:我们定义一个名叫 T_Person的表,表中有三个字

每天一点数据库之-----day 2 创建与管理数据库表

                                                                     


本节引言:

本节介绍的是数据库中表的创建与管理,另外,因为不同DBMS所

支持的数据类型有所差别,这里就不慢慢阐述了,有需要的自行百度~



1.创建一个最简单的表

假如:我们定义一个名叫

T_Person的表,表中有三个字段,FId(人员id),FName(人员姓名)

FAge(人员年龄),数据类型依次是:整数,长度不确定的字符串类型,整数

SQL语句如下:

CREATE TABLE T_Person( FId INTEGER ,FName VARCHAR(20),FAgeINTEGER);


虽然可以这样写,但是却不建议这样写,因为当字段太多的时候,这样写会过于杂乱,

而且很容易写错,另外,报错的时候是根据行号来进行提示错误信息的,所以建议你还是

按下面这种写法写吧:

CREATE TABLE T_Person

(

     FId INTEGER ,

     FName VARCHAR (20),

     FAge INTEGER

)

ps:另外,切记最外层用的是"()"圆括号而非"{}"尖括号!!!


2.定义非空约束

有些时候,某些字段的值不能够为空值,我们可以在定义类型后增加NOT NULL

如:上面建表那里,我们设FId为非空,先把T_Person表删掉哦!

执行下述SQL代码:

CREATE TABLE T_Person

(

     FId INTEGER NOT NULL,

     FName VARCHAR ( 20),

     FAge INTEGER

)

会发现表结构中的FId变成了不允许NULL值:

每天一点数据库之

当然,可以为多个字段设置NOT NULL



3.定义默认初始值

很多时候,在往数据库中录入数据的时候,某些字段通常都有默认初始值,比如,员工表的在职情况

大多数是在职的,设置了默认值,录入的时候就可以少写一个字段~这里演示设置年龄初始值为18

比如我们添加一个简单的记录:1 Tom ,故意不写FAge的值,运行下述代码后:

CREATE TABLE T_Person

(

     FId INTEGER NOT NULL,

     FName VARCHAR ( 20),

     FAge INTEGER DEFAULT '18'

)


查询结果:

每天一点数据库之



4.定义主键

主键,前面已经讲过,唯一识别一行记录的字段,特点是:唯一和非空!!!

另外建议为每个表都定义一个主键,因为表关联的时候,关联的媒介就是

关联表的主键!我们再建表的时候,把FId设置为主键,SQL语句如下:

CREATE TABLE T_Person

(

     FId INTEGER NOT NULL,

     FName VARCHAR (20),

     FAge INTEGER DEFAULT '18'

     PRIMARY KEY (FId)

)

如果是在MSSQL中,还可以看到一个小钥匙:

每天一点数据库之

当然我们也可以自行验证主键的唯一与非空,只需要在加数据的时候弄个重复的Fid或者NULL值

就会看到结果了!

另外,还有一个叫做联合主键的玩意:就是由两个或以上个字段的组合来代替主键,

比如PRIMARY KEY (Cid,Sid)不过建议还是少用这东西,因为效率低,而且会让数据库

ecshop
ecshop

本版本全面兼容php5.6+,并且修复了许多官方程序的低级代码bug。在apache 2.4.17+php5.6.15环境下测试通过,人格保证无毒无木马,仅仅是一名ecshop热爱者心血来潮之作。ecshop编译更新日志:1、加入最新官方补丁。2、修改数据库连接底层为mysqli, 现在完美无缺了。3、再次对所有代码进行细节修复。4、adminers更新至1.1.2, 在线管理数据库的神器。5、测

下载

结构设计变得糟糕,还有外键关联的问题,结果就会增加开发难度咯!所以除非特殊场合,

否则都应该使用唯一主键!



5.表关联之外键

Day 1我们就介绍过表关联了,这里就来编码实现吧

先建立公司信息表T_FIRM:

CREATE TABLE T_FIRM

(

    FId INTEGER ,

    FName VARCHAR (20),

    FAddress VARCHAR (40)

    PRIMARY KEY (FId)

)


接下来就到员工信息表了,这里就用到外键了!

CREATE TABLE T_STAFF

(

    PId INTEGER ,

    PName VARCHAR (20),

    CId INTEGER ,

    PRIMARY KEY (PId),

    FOREIGN KEY (CId) REFERENCES T_FIRM (Fid )

)

好了,接下来这两个表就建立了外键关联了,如果是在MSSQL中打开数据库关系图可以看到:

每天一点数据库之



6.修改数据库表

可能我们在一开始创建表的时候,考虑不周或者其他的原因,现在需要对表中的字段

进行删除或者增加,这个时候就要用到ALTER这个东东了

当前的表结构:

每天一点数据库之

实例:

①往之前创建的T_Person表中添加一个FSex的字段

ALTER TABLE T_PERSON ADD FSEX VARCHAR(10)


SQL运行前后的结果:

每天一点数据库之

②吃饱饭没事做,我们再把添加进去的FSEX字段去掉

ALTER TABLE T_Person DROP Column FSEX

看看运行结果,果然被删掉了!

每天一点数据库之



7.删除数据库表:

直接使用DROP TABLE即可

比如这里删除T_Person表使用以下SQL语句:

DROP TABLE T_Person

另外在MSSQL中使用下述语句报下面的错:

无法对 表 'T_Person' 执行 删除,因为它不存在,或者您没有所需的权限。

笔者是使用sa账户登录的,不应该存在权限的问题,另外T_Person表也是存在的,

原来新建查询的时候没有选择到表所在的数据库那里!!!切记!删除前后比较如下:

每天一点数据库之每天一点数据库之


ps:另外删除的表具有关联表时,要把关联表删除后才能删除,不然会报错,

比如人员表与公司表,要先删除人员表,再删除公司表,不然会报错哦!




最后说几句:

关于数据库中创建表,删除表,修改表就讲到这里~




热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
Rust内存安全机制与所有权模型深度实践
Rust内存安全机制与所有权模型深度实践

本专题围绕 Rust 语言核心特性展开,深入讲解所有权机制、借用规则、生命周期管理以及智能指针等关键概念。通过系统级开发案例,分析内存安全保障原理与零成本抽象优势,并结合并发场景讲解 Send 与 Sync 特性实现机制。帮助开发者真正理解 Rust 的设计哲学,掌握在高性能与安全性并重场景中的工程实践能力。

2

2026.03.05

PHP高性能API设计与Laravel服务架构实践
PHP高性能API设计与Laravel服务架构实践

本专题围绕 PHP 在现代 Web 后端开发中的高性能实践展开,重点讲解基于 Laravel 框架构建可扩展 API 服务的核心方法。内容涵盖路由与中间件机制、服务容器与依赖注入、接口版本管理、缓存策略设计以及队列异步处理方案。同时结合高并发场景,深入分析性能瓶颈定位与优化思路,帮助开发者构建稳定、高效、易维护的 PHP 后端服务体系。

56

2026.03.04

AI安装教程大全
AI安装教程大全

2026最全AI工具安装教程专题:包含各版本AI绘图、AI视频、智能办公软件的本地化部署手册。全篇零基础友好,附带最新模型下载地址、一键安装脚本及常见报错修复方案。每日更新,收藏这一篇就够了,让AI安装不再报错!

30

2026.03.04

Swift iOS架构设计与MVVM模式实战
Swift iOS架构设计与MVVM模式实战

本专题聚焦 Swift 在 iOS 应用架构设计中的实践,系统讲解 MVVM 模式的核心思想、数据绑定机制、模块拆分策略以及组件化开发方法。内容涵盖网络层封装、状态管理、依赖注入与性能优化技巧。通过完整项目案例,帮助开发者构建结构清晰、可维护性强的 iOS 应用架构体系。

59

2026.03.03

C++高性能网络编程与Reactor模型实践
C++高性能网络编程与Reactor模型实践

本专题围绕 C++ 在高性能网络服务开发中的应用展开,深入讲解 Socket 编程、多路复用机制、Reactor 模型设计原理以及线程池协作策略。内容涵盖 epoll 实现机制、内存管理优化、连接管理策略与高并发场景下的性能调优方法。通过构建高并发网络服务器实战案例,帮助开发者掌握 C++ 在底层系统与网络通信领域的核心技术。

25

2026.03.03

Golang 测试体系与代码质量保障:工程级可靠性建设
Golang 测试体系与代码质量保障:工程级可靠性建设

Go语言测试体系与代码质量保障聚焦于构建工程级可靠性系统。本专题深入解析Go的测试工具链(如go test)、单元测试、集成测试及端到端测试实践,结合代码覆盖率分析、静态代码扫描(如go vet)和动态分析工具,建立全链路质量监控机制。通过自动化测试框架、持续集成(CI)流水线配置及代码审查规范,实现测试用例管理、缺陷追踪与质量门禁控制,确保代码健壮性与可维护性,为高可靠性工程系统提供质量保障。

79

2026.02.28

Golang 工程化架构设计:可维护与可演进系统构建
Golang 工程化架构设计:可维护与可演进系统构建

Go语言工程化架构设计专注于构建高可维护性、可演进的企业级系统。本专题深入探讨Go项目的目录结构设计、模块划分、依赖管理等核心架构原则,涵盖微服务架构、领域驱动设计(DDD)在Go中的实践应用。通过实战案例解析接口抽象、错误处理、配置管理、日志监控等关键工程化技术,帮助开发者掌握构建稳定、可扩展Go应用的最佳实践方法。

61

2026.02.28

Golang 性能分析与运行时机制:构建高性能程序
Golang 性能分析与运行时机制:构建高性能程序

Go语言以其高效的并发模型和优异的性能表现广泛应用于高并发、高性能场景。其运行时机制包括 Goroutine 调度、内存管理、垃圾回收等方面,深入理解这些机制有助于编写更高效稳定的程序。本专题将系统讲解 Golang 的性能分析工具使用、常见性能瓶颈定位及优化策略,并结合实际案例剖析 Go 程序的运行时行为,帮助开发者掌握构建高性能应用的关键技能。

50

2026.02.28

Golang 并发编程模型与工程实践:从语言特性到系统性能
Golang 并发编程模型与工程实践:从语言特性到系统性能

本专题系统讲解 Golang 并发编程模型,从语言级特性出发,深入理解 goroutine、channel 与调度机制。结合工程实践,分析并发设计模式、性能瓶颈与资源控制策略,帮助将并发能力有效转化为稳定、可扩展的系统性能优势。

47

2026.02.27

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
最新Python教程 从入门到精通
最新Python教程 从入门到精通

共4课时 | 22.5万人学习

HTML教程
HTML教程

共500课时 | 6.3万人学习

麻省理工大佬Python课程
麻省理工大佬Python课程

共34课时 | 5.4万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号