所有分类
  • 所有分类
  • 游戏源码
  • 网站源码
  • 单机游戏
  • 游戏素材
  • 搭建教程
  • 精品工具

数据库结构快速查看方法|新手必看超详细教程|MySQL/Oracle通用

数据库结构快速查看方法|新手必看超详细教程|MySQL/Oracle通用 一

文章目录CloseOpen

今天这篇教程,就是帮你解决“怎么快速看数据库结构”的——不管你用MySQL还是Oracle,不管你喜欢敲命令行还是点点鼠标,我都把自己亲测有效的方法整理好了,甚至连“为什么要学这个”都给你讲明白,新手跟着做,10分钟就能上手。

先搞懂:为什么新手要学会看数据库结构?

我知道很多新手觉得“数据库结构”是程序员的事,自己只要会插数据、查数据就行。但你想啊——如果做项目时,产品经理说“用户表要加个‘性别’字段”,你连原来的表有没有这个字段都不知道,怎么改?或者像我朋友那样,插数据报错,连问题出在“字段类型”还是“约束”都搞不清,不就白费功夫吗?

Oracle官方文档里有句话我特别认同:“理解数据库结构是进行数据操作的基础”。 数据库就像你家里的衣柜——你得知道哪个格子放衣服、哪个放裤子,才不会翻半天找不到东西。对新手来说,看数据库结构的用处至少有3个:

  • 核对需求:比如产品要“用户表有昵称、手机号、密码”,你看结构就知道有没有漏字段;
  • 排查错误:比如插入数据报错,先看字段类型是不是和要存的数据匹配(比如要存日期却用了varchar);
  • 快速上手新项目:接手别人的项目时,不用问人,自己看结构就能知道表之间的关联(比如订单表和用户表是不是用user_id关联的)。
  • 我之前帮做自媒体的小张改项目,他的文章表老存不上“阅读量”,我让他用命令行查了下结构,发现原来的“read_count”字段是tinyint(只能存0-255),但他要存到1000+,这不就溢出了吗?改完字段类型,立刻就好了。你看,学会看结构,能帮你少走很多弯路。

    MySQL/Oracle通用:两种最常用的查看方法(命令行+图形工具)

    接下来进入正题——我 了两种新手最常用的方法,一种是“不用装工具”的命令行,另一种是“点点鼠标”的图形工具,你可以根据自己的习惯选。

  • 命令行方法:不用装工具,敲几行代码就搞定
  • 很多新手觉得“命令行”很高大上,其实真的不难——就像你在电脑上敲“打开记事本”一样,只是输入特定的指令而已。我帮朋友查结构时,最常用的就是命令行,因为不用装额外工具,随时随地能查。

    先分清楚MySQL和Oracle的命令(我整理了个表格,你对比着看):

    数据库类型 查看表基本结构 查看详细创建语句(含索引/约束) 查看字段详情(类型/是否为空)
    MySQL DESC 表名; SHOW CREATE TABLE 表名; SELECT FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME=’表名’;
    Oracle DESCRIBE 表名; SELECT DBMS_METADATA.GET_DDL(‘TABLE’,’表名’) FROM DUAL; SELECT FROM USER_TAB_COLUMNS WHERE TABLE_NAME=’表名’;

    举个我自己的例子:之前帮做教育系统的朋友查MySQL的“学生表”结构,我让他打开MySQL命令行,输入DESC student;,立刻就看到了字段名(比如id、name、age)、类型(int、varchar)、是否为空(Null?列显示YES/NO),还有主键(Key列显示PRI)。他当时说:“原来我之前把age设成了varchar,应该用int啊!”——你看,就这么一行命令,直接找到问题根源。

    再比如Oracle,我帮另一个朋友查“课程表”,用DESCRIBE course;,结果他发现“course_id”字段是number(5),但他要存6位的课程编号,立刻改了字段长度,问题就解决了。

    这里要提醒你:命令行虽然快,但有些细节(比如联合索引、外键关联)可能要看详细创建语句。比如MySQL的SHOW CREATE TABLE,会把表的创建SQL完整列出来,包括PRIMARY KEY (id)(主键)、INDEX idx_name (name)(索引),甚至FOREIGN KEY (user_id) REFERENCES user(id)(外键)——这些信息,DESC是看不到的。我之前帮朋友查外键,就是用这个命令找到的,他说“原来外键是这么定义的”。

  • 图形工具方法:点点鼠标,结构一目了然(附Navicat/PLSQL操作步骤)
  • 如果你觉得命令行太“冷”,喜欢可视化界面,那图形工具绝对适合你——我自己平时做详细分析时,也爱用Navicat或PLSQL,因为能直接看到表之间的关联,比命令行直观10倍。

    先讲Navicat(MySQL/Oracle都能用):我帮朋友查电商系统的“订单表”时,操作步骤是这样的——

  • 打开Navicat,连接到你的数据库(比如MySQL的localhost:3306,Oracle的SID);
  • 展开左边的数据库列表,找到你要查的表(比如order);
  • 右键点击表,选择“设计表”——这时候会弹出一个窗口,里面有4个标签:“字段”、“索引”、“外键”、“选项”。
  • “字段”标签里,你能看到所有字段的名称、类型、长度、是否为主键(Key列打勾)、是否允许空(Null列打勾);“索引”标签里,能看到索引的名称、类型(比如普通索引、唯一索引)、关联的字段;“外键”标签更有用——能直接看到这个表引用了哪个表的哪个字段(比如order表的user_id引用了user表的id),甚至能看到“删除时”、“更新时”的动作(比如CASCADE,就是删用户时自动删订单)。

    我朋友第一次用这个功能时,盯着外键关联图看了半天,说:“原来订单表和用户表是这么连的,我之前一直没搞懂!”——你看,图形工具就是能把“抽象的关系”变成“看得见的线”。

    再讲PLSQL Developer(主要用于Oracle):我帮做金融系统的朋友查“账户表”时,步骤更简单——

  • 打开PLSQL,连接到Oracle数据库;
  • 在左边的“Objects”窗口里,展开“Tables”,找到你要查的表(比如account);
  • 双击表名,会弹出一个新窗口,里面有“Columns”、“Constraints”、“Indexes”、“Foreign Keys”几个标签。
  • “Columns”标签里,能看到字段名、类型、长度、是否为空;“Constraints”标签里,能看到主键(PRIMARY KEY)、唯一约束(UNIQUE);“Foreign Keys”标签里,能看到外键的目标表和字段——朋友之前一直找不到外键,就是因为没点这个标签,后来我指给他看,他一拍脑袋:“我之前都在看Columns,居然漏了这个!”

    这里要分享个小经验:图形工具虽然直观,但要注意“同步”——比如你用Navicat改了表结构,要记得点“保存”,不然命令行里查不到最新的结构。我之前帮朋友改字段类型,他改了之后没保存,结果命令行里还是旧的结构,差点以为自己操作错了。

    最后想跟你说:不管你选命令行还是图形工具,关键是“多试几次”——我之前学的时候,也犯过“输错表名”、“忘记加引号”的错误,但试个两三次,就熟了。如果你按这些方法试了,不管是查到了字段类型,还是找到了外键,欢迎回来告诉我效果!要是遇到问题,比如命令报错、工具找不到入口,也可以留言,我帮你看看—— 我也是从新手过来的,懂那种“对着屏幕发呆”的感觉~


    新手刚开始学数据库,没必要看结构吧?

    真不是这样,我之前帮做电商的朋友解决过问题——他想给订单表加“收货人电话”字段,结果插11位手机号老报错,后来才发现原来的“电话”字段是varchar(10),连字段类型都没搞清楚,怎么改?Oracle官方文档里说“理解结构是数据操作的基础”,新手如果连表有哪些字段、字段类型是什么都不知道,做项目时要么漏需求,要么插数据报错,白费功夫。比如产品要“用户表加性别字段”,你得先看原来的表有没有这个字段吧?不然怎么确认要不要加?

    再说了,接手新项目时,不用问人,自己看结构就能知道表之间的关联,比如订单表和用户表是不是用user_id连的,这不比到处问人高效多了?我帮做自媒体的小张改文章表时,他的“阅读量”字段存不上1000+,就是因为字段类型是tinyint(只能存0-255),看了结构才找到问题,改完就好了。新手早学会看结构,能少走很多弯路。

    用命令行看MySQL结构,输错命令怎么办?

    其实命令行的错误大多是小问题,比如表名拼错、少打了分号,或者命令格式不对。比如MySQL里看基本结构的命令是DESC 表名;,要是写成desc 表名(没加分号),或者把表名写成了orderr(多了个r),就会报错。我之前帮朋友查学生表时,他把student写成了stuent,结果提示“表不存在”,改对表名就好了。

    还有个小技巧:如果记不住命令,可以用SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME=’表名’;这个命令,虽然长但信息全,能看到字段名、类型、是否为空这些细节。要是还怕错,可以先在命令行里输show tables;看看所有表名,确认没拼错再输查看结构的命令——我自己刚开始学的时候,也是这么做的,多试两次就熟了。

    Navicat里看表结构,“设计表”里的外键标签怎么用?

    Navicat的“设计表”里的外键标签特别有用,能直接看到表的外键关联。比如我帮朋友查电商的订单表时,右键点表选“设计表”,然后点“外键”标签,里面会显示“外键名称”“引用表”“引用字段”这些信息。比如订单表的user_id外键,会显示引用了user表的id字段,还能看到“删除时”“更新时”的动作,比如CASCADE就是删用户时自动删订单。

    新手刚开始用的时候,可能会看不懂“引用表”是什么,其实你只要看“引用表”列的内容,比如user,就知道这个外键连的是user表,“引用字段”是id,那就能明白订单表和用户表是用user_id和id关联的。我朋友第一次用这个标签时,盯着外键关联信息看了半天,说“原来表之间是这么连的,之前一直没搞懂”——你多点点这个标签,就能慢慢摸清楚规律了。

    Oracle用PLSQL看结构,找不到外键在哪怎么办?

    我之前帮做金融的朋友查账户表时,他也遇到过这个问题——双击表名后,只看了“Columns”标签,没注意其他标签。其实PLSQL里看外键要找“Foreign Keys”标签:打开PLSQL连接数据库后,左边Objects窗口展开Tables,双击要查的表,弹出的窗口里有“Columns”“Constraints”“Foreign Keys”几个标签,点“Foreign Keys”就能看到外键的目标表和字段了。

    比如账户表的user_id外键,在这里能看到引用了user表的id字段,还有外键的名称。我朋友当时一拍脑袋说“我之前都在看Columns,居然漏了这个标签”——你只要记住,PLSQL里的外键不在字段标签里,要专门点“Foreign Keys”标签,就能找到了,试一次就记住了。

    原文链接:https://www.mayiym.com/48114.html,转载请注明出处。
    0
    显示验证码
    没有账号?注册  忘记密码?

    社交账号快速登录

    微信扫一扫关注
    如已关注,请回复“登录”二字获取验证码