从头到尾写SQL(二)

二 数据表的创建和管理

数据库是我们用的别人的。。数据表就该我们自己创建了吧。。

1.数据基本类型

建表的时候,需要我们确定好这个表有多少字段,这些字段又都是什么类型的(其实创建完以后这些东西也能改偷笑)。那么数据库接纳的数据类型有哪些呢:

1.整数 2.浮点数 3.字符串 4.日期时间 5.二进制

其中整数假如是在32位系统中,可以表示-2147483648~2147483647之间的整数。一般整数可以用作主键~

字符串类型数据,一般分为固定长度char(),可变长度vchar(),国际化可变长度及大字符串nvchar()。固定长度和可变长度都只能存储基于ASCII的字符,对于其他使用中文、日文、韩文等Unicode字符集的程序,会造成存储问题,所以可以使用国际化可变程度字符串。前面三个的长度,都不能超过1024,在保存一些较大字符串时,我们可以使用大字符串,但是尽量少的使用大字符串。

一般使用日期类型,我们可以使用时间戳来保存,即since1970;

假如保存一张图片,或者视频,我们需要使用二进制数据保存。


2.通过SQL语句管理数据库

很多工具都支持图形化操作界面,可是使用SQL语句操作数据库将更加方便。

2.1创建数据表

CREATE TABLE 表名

(

    字段名 1  字段类型,

    字段名2   字段类型,

    约束定义1,

    约束定义2

)

CREATE语句就告诉了数据库,创建一张表,CREATE TABLE 后面紧跟着表名,这个表名不能跟数据库中已有的表重复。

括号内的是表定义,分为字段定义和约束定义,一张表至少要有一个字段定义,约束定义包括主键定义,外键定义,和唯一约束定义。

CREATE TABLE T_Person

(

    FName VARCHAR(20),

    FAge  INT

)

这个例子就创建了一张Person表,里面有name,age等字段。

2.2定义非空约束

有时候,我们希望数据库中某些字段是必填的,比如网站注册的时候,我们需要用户账号,密码,那么就可以将这两个字段设置为非空约束:

CREATE TABLE T_Person

(

    FName VARCHAR(20)  NOT NULL  , 

)

2.3定义默认值

我们可以在定义表的时候,给某个字段设置一个默认值,向这个字段插入数据时,假如没有值则默认使用这个默认值,可以使用

CREATE TABLE T_Person

(

    FName VARCHAR(20)  DEFAULT ‘xiaoming’, 

)

2.4定义主键


上面说到可以将一个字段设置为主键,是在所有字段定义完以后设置:

CREATE TABLE T_Person

(

    FNumber INT(20),

    FName VARCHAR(20),

    FAge  INT,

    PRIMARK KEY (FNumber)

)

这样就将FNumber这个字段设置为了主键,主键最好添加非空约束,这样保证了主键不为空。

有时候,一个字段是不能保证唯一确定一条记录的,这时需要联合主键,可以有两个或者多个字段作为联合主键:

CREATE TABLE T_Person

(

    FNumber INT(20),

    FName VARCHAR(20),

    FAge  INT,

    PRIMARK KEY (FNumber,FName)

)

这样将FNumber,FName两个字段作为了主键,联合主键中每个字段必须也被设置为非空。但是联合主键有以下缺点:1.效率低2.使数据库设计结构变得脏乱差3.创建指向此表的外键关联关系变得非常麻烦4.增大开发难度。所以一般不使用联合主键。

2.5定义外键

外键是非常关键的概念,也是数据库中 “关系的体现” ,在表定义中,使用FOREIGN KEY 外键字段名称 REFERENCES 目标表名(被关联的字段名称)  该语句,来体现外键关联关系。

CREATE TABLE T_Dog

(

    FNumber INT(20),

    FName VARCHAR(20),

    FAge  INT,

    PRIMARK KEY (FNumber),

   FOREIGN KEY (TNumber) REFERENCES T_Person(TName)

)

2.6修改已有数据表

有时候,我们需要修改已经创建好的Table表,比如添加字段,删除字段,修改表名,修改字段名称,修改字段类型等。这时候可以使用ALTER语句。关于sql语句总是用大写较多这件事呢,查了一下文档,主要是因为大写是变成规范吧,在执行的时候速度也有提升~

2.6.1添加字段

ALTER TABLE 待修改的表名 ADD 字段名 字段类型

例如:

ALTER TABLE T_Dog ADD FSex BOOL

2.6.2 删除字段

ALTER TABLE 待修改的表名 DROP 字段名

例如:

ALTER TABLE T_Dog DROP FSex

2.6.3 删除数据表

DROP TABLE 待删除的表名

例如:

DROP TABLE T_Dog

2.6.4变通解决方案

假如数据库不支持修改,可以重新创建一个表复制过去就可以。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/32281.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

暑假用chatgpt肝了一篇顶会...

小时候特别羡慕大雄,因为他有可以帮他写作业的机器猫小叮当。 熬夜读论文,却无法得出一个好的idea,深夜薅头发苦恼的时候,就会想如果有一个机器人,给出一串指令就能马上生成一篇质量上佳的论文就好了。 现在&#xff0…

Unity Open Day 北京站-技术专场:生成式AI技术助力Unity创作

【获取 2023 Unity Open Day 北京站演讲 PPT】 伴随Unity中国版引擎的布局以及AI技术的爆发式发展,ChatGPT、StableDiffusion等生成式AI技术受到广大Unity创作者的关注。Unity已经在AI领域探索多年,一直致力于利用人工智能技术以及工具,帮助创…

3D引擎龙头Unity:元宇宙和AI活跃玩家

Unity是用于创建和操作交互式实时3D内容的世界领先平台。凭借灵活的编辑器、友好的开发环境、丰富的工具套件,Unity吸引了大量开发者,全球排名前1000的移动游戏70%以上使用了Unity的创作和运营解决方案,如今,Unity引擎在工业场景、…

城市的 “数字生命” 是怎么被赋予的?|场景创新公司是这样开会的

ChatGPT 为我们带来了巨大便利的同时,也让更多人茫然、焦虑甚至恐惧。对于这一重塑我们生活的技术,每个渺小的个体或许都在心里有过类似的疑问:我,还能做什么? 当体力劳动、内容生产都能够以技术的方式进行翻天覆地的变…

关于ChatGPT应用于软件测试中的思考

前言 关于最近大火的ChatGPT相信各位也听过不同渠道听说过他的厉害,目前发展趋势比较火热,科技公司都有在考虑怎么使用ChatGPT进行提高研发效率以及办公效率,最近我所在的公司也有在要求大家使用ChatGPT进行改善工作效率,所以引发…

借助 AI 我为 Raycast 制作了一个可以 OCR 中文的插件

本文速通:最近用了 Raycast,真的很棒!但是没有好用的中文 OCR 插件,不怎么会写 Typescript 的我,在 ChatGPT 的指导下,整了一个小插件。开发过程非常不严肃,充满了野路子,不敢妄称指…

ChatGPT令人触目惊心的地方

前两天,马斯克联合数千名AI科技人员,要求暂停巨型AI实验的新闻,想必大家都知道了。 这个消息挺爆炸,一度加剧了人们的恐慌情绪。 鸣哥当时灵光一闪,这件事ChatGPT是如何看待的? 于是我输入这一新闻事件&a…

卷积神经网络与循环神经网络实战 --- 手写数字识别及诗词创作

卷积神经网络与循环神经网络实战 — 手写数字识别及诗词创作 文章目录 卷积神经网络与循环神经网络实战 --- 手写数字识别及诗词创作一、神经网络相关知识1. 深度学习2. 人工神经网络回顾3. 卷积神经网络(CNN)3.1 卷积层3.2 汇集(池化&#x…

chatgpt赋能python:如何在Python中中断程序并退出程序

如何在Python中中断程序并退出程序 在Python编程的过程中,有时候我们需要中断程序的执行,并让程序退出。这在调试程序时尤为重要。本文将介绍Python中如何中断程序并退出程序。 使用sys.exit()函数 在Python中,我们可以使用sys.exit()函数…

常见快捷令与指令

快捷指令 ctrlc:复制 ctrlv:粘贴 ctrla:全选 ctrlx:剪切 ctrlz:撤销 ctrls:保存 altF4:关闭窗口 打开cmd的方式 开始Windows系统找到命令提示符 win键R 输入cmd打开控制台(推荐使用) 管理员身份运行:右键选择以管理员方式运行即可 …

linux基本功系列之chattr命令

文章目录 一. chattr命令介绍二. 语法格式及常用选项三. 参考案例3.1 给指定文件添加隐藏属性,阻止文件被修改:3.2 撤销i属性3.3 允许补充(追加)内容,无法覆盖/删除内容 总结 前言🚀🚀&#x1f…

外箱标签是怎么制作的

外箱标签设计都较为复杂,无论条码类型还是数据都比较多,且在出库时每个标签上的条码、数字一般都是流水变化的。外箱标签一般包含了供应商、收货人、产品编码、生产日期、发货日期等信息。下面我们就看看这样的外箱标签是如何制作的。 启动条码标签软件&…

5分钟包你搞懂箱形图分析!

最近有很多用户说到了年终需要回顾这一年的工作,根据这一年的数据看看有没有异常的情况,那么哪种图能够清晰直观地展现出这一信息呢? 答案只有一个,那就是... 箱形图 箱形图(英文:Box plot)&…

Python绘制箱型图-boxplot()

boxplot()语法格式如下: boxplot(x,notchnone,symnone,vertnone,whisnone,positionsnone,widthsnone,patch_artistnone,meanlinenone,showcapsnone,showboxnone,showfliersnone,boxpropsnone,) x:表示箱型图的数据。 sym:表示异常值对应的符号&#x…

【java基础】包装类,自动装箱和自动拆箱

文章目录 基本介绍包装类自动装箱自动拆箱包装类注意事项包装类比较包装器内容不可变 基本介绍 有时,需要将int这样的基本类型转换为对象。所有的基本类型都有一个与之对应的类。 例如,Integer类对应基本类型int。通常,这些类称为包装器&…

纸箱外观设计 包装盒版面设计 纸箱尺寸设计 纸箱纸盒包装设计 纸箱设计图

瓦楞纸板是由面纸、里纸、芯纸和加工成波形瓦楞的瓦楞纸通过粘合而成。根据商品包装的需求,瓦楞纸板可以加工成单面瓦楞纸板、三层瓦楞纸板、五层、七层、十一层等瓦楞纸板。 不同波纹形状的瓦楞,粘结成的瓦楞纸板的功能也有所不同。即使使用同样质量的面…

今年下半年程序员生存指南!

​ 见字如面,我是军哥! 今天早上一醒来发现今天都 7 月 3 日,2023 的上半年已经悄然无声的离开我们了,你今年上半年目标达成如何? 最近看到新闻报道 5 月份,我国青年失业率 20.8%,比 4 月还高了…

脉脉、兼职猫逐梦AIGC,在线招聘江湖酝酿新变?

配图来自Canva可画 求职难与招聘难同时出现,人力资源行业供需双方互相嫌弃的问题如何解决?人力资源平台给出了新答案——AIGC。 2023年是AIGC在人力资源市场集中爆发的一年。脉脉平台上线类ChatGPT产品“万能的脉友”;数字化灵活用工平台兼…

AutoGPT太火了,无需人类插手自主完成任务,GitHub2.7万星

点击上方“AI遇见机器学习”,选择“星标”公众号 第一时间获取价值内容 来自|机器之心 OpenAI 的 Andrej Karpathy 都大力宣传,认为 AutoGPT 是 prompt 工程的下一个前沿。 近日,AI 界貌似出现了一种新的趋势:自主人工…

Ubuntu下不能切换中文,qt creator无法输入中文,sogo输入法(详细步骤)

目录: 1、解决ubuntu 不支持切换中文,并安装sogo输入法步骤; 2、解决Qt Creator不支持中文输入: 详细步骤: 一、解决ubuntu 不支持切换中文,并安装sogo输入法步骤: 1、如果在键盘输入法系统中&a…