数据库 查询表结构

数据库 查询表结构,第1张

select table_name,column_name,comments from user_col_comments;

直接执行这句话

是看数据库当前用户中所有表的列的注释

或者在PL sql中新建一个命令窗口,输入 desc student 也可以

查看表名可用“show tables”。

其中红框部分就是表名,如图:

查询表结构用“desc 表名”:

如查询files表的表结构,则语句为“desc files”

用户信息表,朋友表

朋友表 跟用户表要有关联关系,

朋友表要有可以分组,要加个分组标志,不同的分组用不同的标志

聊天信息的话,就要另外设计一个表,聊天对象,聊天内容,聊天时间等

如果有类似与QQ群的功能的话,还要建个群成员表,群成员的聊天信息,将会又是一个表

如果需求大的话,可以按照地区分别建立一个数据库,用来保存聊天信息

主库可以保存用户信息,QQ群之类的

地区库,可以保存用户的聊天记录等

可以按照时间来适当的清楚一些聊天记录,以防数据量过大

相对于结构化数据(即行数据,存储在数据库里,可以用二维表结构来逻辑表达实现的数据)而言,不方便用数据库二维逻辑表来表现的数据即称为非结构化数据,包括所有格式的办公文档、文本、、XML、HTML、各类报表、图像和音频/视频信息等等。

字段可根据需要扩充,即字段数目不定,可称为半结构化数据,例如Exchange存储的数据。

非结构化数据库

在信息社会,信息可以划分为两大类。一类信息能够用数据或统一的结构加以表示,我们称之为结构化数据,如数字、符号;而另一类信息无法用数字或统一的结构表示,如文本、图像、声音、网页等,我们称之为非结构化数据。结构化数据属于非结构化数据,是非结构化数据的特例

数据清洗从名字上也看的出就是把“脏”的“洗掉”。因为数据仓库中的数据是面向某一主题的数据的集合,这些数据从多个业务系统中抽取而来而且包含历史数据,这样就避免不了有的数据是错误数据、有的数据相互之间有冲突,这些错误的或有冲突的数据显然是我们不想要的,称为“脏数据”。我们要按照一定的规则把“脏数据”“洗掉”,这就是数据清洗而数据清洗的任务是过滤那些不符合要求的数据,将过滤的结果交给业务主管部门,确认是否过滤掉还是由业务单位修正之后再进行抽取。不符合要求的数据主要是有不完整的数据、错误的数据、重复的数据三大类。

(1)不完整的数据

这一类数据主要是一些应该有的信息缺失,如供应商的名称、分公司的名称、客户的区域信息缺失、业务系统中主表与明细表不能匹配等。对于这一类数据过滤出来,按缺失的内容分别写入不同Excel文件向客户提交,要求在规定的时间内补全。补全后才写入数据仓库。

(2)错误的数据

这一类错误产生的原因是业务系统不够健全,在接收输入后没有进行判断直接写入后台数据库造成的,比如数值数据输成全角数字字符、字符串数据后面有一个回车 *** 作、日期格式不正确、日期越界等。这一类数据也要分类,对于类似于全角字符、数据前后有不可见字符的问题,只能通过写SQL语句的方式找出来,然后要求客户在业务系统修正之后抽取。日期格式不正确的或者是日期越界的这一类错误会导致ETL运行失败,这一类错误需要去业务系统数据库用SQL的方式挑出来,交给业务主管部门要求限期修正,修正之后再抽取。

(3)重复的数据

对于这一类数据——特别是维表中会出现这种情况——将重复数据记录的所有字段导出来,让客户确认并整理。

数据清洗是一个反复的过程,不可能在几天内完成,只有不断的发现问题,解决问题。对于是否过滤,是否修正一般要求客户确认,对于过滤掉的数据,写入Excel文件或者将过滤数据写入数据表,在ETL开发的初期可以每天向业务单位发送过滤数据的邮件,促使他们尽快地修正错误,同时也可以做为将来验证数据的依据。数据清洗需要注意的是不要将有用的数据过滤掉,对于每个过滤规则认真进行验证,并要用户确认。

随着网络技术的发展,特别是Internet和Intranet技术的飞快发展,使得非结构化数据的数量日趋增大。这时,主要用于管理结构化数据的关系数据库的局限性暴露地越来越明显。因而,数据库技术相应地进入了“后关系数据库时代”,发展进入基于网络应用的非结构化数据库时代。所谓非结构化数据库,是指数据库的变长纪录由若干不可重复和可重复的字段组成,而每个字段又可由若干不可重复和可重复的子字段组成。简单地说,非结构化数据库就是字段可变的数据库。

我国非结构化数据库以北京国信贝斯(iBase)软件有限公司的iBase数据库为代表。IBase数据库是一种面向最终用户的非结构化数据库,在处理非结构化信息、全文信息、多媒体信息和海量信息等领域以及Internet/Intranet应用上处于国际先进水平,在非结构化数据的管理和全文检索方面获得突破。它主要有以下几个优点:

(1)Internet应用中,存在大量的复杂数据类型,iBase通过其外部文件数据类型,可以管理各种文档信息、多媒体信息,并且对于各种具有检索意义的文档信息资源,如HTML、DOC、RTF、TXT等还提供了强大的全文检索能力。

(2)它采用子字段、多值字段以及变长字段的机制,允许创建许多不同类型的非结构化的或任意格式的字段,从而突破了关系数据库非常严格的表结构,使得非结构化数据得以存储和管理。

(3)iBase将非结构化和结构化数据都定义为资源,使得非结构数据库的基本元素就是资源本身,而数据库中的资源可以同时包含结构化和非结构化的信息。所以,非结构化数据库能够存储和管理各种各样的非结构化数据,实现了数据库系统数据管理到内容管理的转化。

(4)iBase采用了面向对象的基石,将企业业务数据和商业逻辑紧密结合在一起,特别适合于表达复杂的数据对象和多媒体对象。

(5)iBase是适应Internet发展的需要而产生的数据库,它基于Web是一个广域网的海量数据库的思想,提供一个网上资源管理系统iBase Web,将网络服务器(WebServer)和数据库服务器(Database Server)直接集成为一个整体,使数据库系统和数据库技术成为Web的一个重要有机组成部分,突破了数据库仅充当Web体系后台角色的局限,实现数据库和Web的有机无缝组合,从而为在Internet/Intranet上进行信息管理乃至开展电子商务应用开辟了更为广阔的领域。

(6)iBase全面兼容各种大中小型的数据库,对传统关系数据库,如Oracle、Sybase、SQLServer、DB2、Informix等提供导入和链接的支持能力。

通过从上面的分析后我们可以预言,随着网络技术和网络应用技术的飞快发展,完全基于Internet应用的非结构化数据库将成为继层次数据库、网状数据库和关系数据库之后的又一重点、热点技术。

数据库表:和某一个数据库相关联的表。

自由表: 和数据库无关联的表。

数据库表和自由表的区别:数据库表是属于某一个数据库而自由表不是。数据库表可以建立主索引而自由表不可以。

ABAP中的内表相当于其他程序设计语言中的二维数组,存储多行结构相同的数据

不同于二维数组,内表在创建后,列结构与列数是固定不变的,而行数是动态增长的

内表支持循环对每行数据进行 *** 作,也支持整体 *** 作

内表是具有行和列的表结构,然而,不同于数据库表,内表仅在程序运行期间在内存中存储数据

ABAP中有三种内表类型:标准表,哈希表,排序表

-- ABAP内表数据类型

内表数据对象是实际的内表,可以用数据进行填充

内表数据类型是用于定义内表数据对象的抽象数据类型(ADT)

可以使用的内表数据类型有:

Structure

数据库表

用户自定义数据类型

--ABAP内表声明

1>

TYPES: BEGIN OF line,

field1 TYPE i,

field2 TYPE i,

END OF line

声明一个数据类型

DATA: ITAB_WA TYPE(LIKE) line “ 声明一个内表工作区

DATA: ITAB TYPE(LIKE) line OCCURS 0 “ 声明一个无工作区的内表

DATA: ITAB TYPE(LIKE) STANDARD TABLE OF line INITIAL SIZE 0 “ 声明一个有工作区的内表

DATA: ITAB TYPE(LIKE) line OCCURS 0 WITH HEADER LINE

DATA: ITAB TYPE(LIKE) STANDARD TABLE OF line INITIAL SIZE 0 WITH HEADER LINE

2>

DATA: BEGIN OF line,

field1 TYPE i,

field2 TYPE i,

END OF line

声明一个line对象,该对象可以作为工作区使用

用DATA定义的line本身也是一个结构类型,也可再声明一个工作区

DATA: ITAB_WA TYPE(LIKE) line “ 声明一个工作区

DATA: ITAB TYPE(LIKE) line OCCURS 0 WITH HEADER LINE “ 声明一个带工作区的内表

DATA: ITAB TYPE(LIKE) STANDARD TABLE OF line INITIAL SIZE 0 WITH HEADER LINE “ 声明一个带工作区的内表

3> 直接定义内表,这个内表是有工作区的

DATA: BEGIN OF ITAB OCCURS 0 ,

CARR1 LIKE SPFLI-CARRID,

CONN1 LIKE SPFLI-CONNID,

END OF ITAB

DATA: ITAB1 TYPE ITAB(错误的,实践证明,定义出来的什么都不是)。

正确方法:ITAB1 TYPE ITAB OCCURS 0(这样定义后的是一个无工作区的内表)。

DATA: ITAB1 LIKE ITAB OCCURS 0 WITH HEADER LINE “定义一个带工作区内表

4> type ref to 定义内表

type ref to 属于ABAP中面向对象的编程。它是定义一个类的对象。

5>通过数据库表定义

data itab1 type table of sflight “ 定义一个不带内表的工作区

data wa1 like line of sflgit “ 定义一个内表工作区

data itab1 type table of sflight with header line “定义一个带内表的工作区

-- 两种内表定义方式的主要区别在于是否有隐式表头行

内表是按行进行访问的,然而,程序对内表的行 *** 作不能直接进行,必须使用一种接口来传输,这个接口就是工作区(Work Area)

--内表 *** 作

填充内表行

append <wa> to <itab> “ 不带表头行的填充

append <itab> “ 带隐式表头行的填充

插入内表行

insert <wa> into <itab> [INDEX idx] “

insert <itab> [INDEX idx ] “ 隐式表头行插入内表

-- 如果没有指定INDEX ,则默认插入到内表最后一行

读取内表行

read <itab> into <wa> [INDEX idx]

read <itab> [INDEX IDX]

修改内表行

modify <itab> from <wa> [INDEX idx]

modify <itab> [INDEX idx]

-- read itab index 3

-- itab-XX = ‘xxx’

-- modify itab index 4

删除内表行

delete <itab> [INDEX idx]

-- 带表头行和不带表头行语法一致 。

内表循环

Loop at <itab> into <wa>

<statement block>

endloop “ 带表头行的内表循环 *** 作

Loop at <itab>

<statement block>

endloop “ 不带表头行内表 *** 作

-- 循环体的MODIFY,DELETE等语句不必指定INDEX项,系统默认处理当前行

-- 如果不需要读取所有的内表行,可以使用WHERE选项进行限制

-- LOOP AT <itab> [WHERE <conditions>]

清空内表

clear <itab> “清空不带表头行内表

clear<itab>[] “清空带表头行内表

内表排序

SORT <itab> [ASCENDING | DESCENDING] [AS TEXT]

--ASCENDING和DESCENDING指定升序还是降序排列,如果不指定,缺省排序方式是升序

--AS TEXT影响字符字段的排序方式,如果不使用该选项,系统将按字符平台相应内部编码进行排序,否则,系统根据当前语言按字母顺序排序字符字段

删除重复行

DELETE ADJACENT DUPLICATES FROM <itab> [COMPARING <comp>]

-- 删除重复行之前须对内表进行排序

判断内表行数

DESCRIBE TALBE <itab> LINES <count>

将内表中部分或全部的数据行整体插入另一内表

INSERT LINES OF <itab1> [FROM n1] [TO n2] INTO [TABLE] <itab2> [INDEX <idx>]

-- insert lines of itab1 from 1 to 100 into itab2 “ 将内表1前100行数据附加到内表2

-- 两个内表必须具有相同的或可转换的行结构

将内表中部分或全部的数据行整体填充到另一内表

APPEND LINES OF <itab1> [FROM n1] [TO n2] TO <itab2>

按照条件或者索引删除一组选定行

DELETE <itab> [FROM n1] [TO n2] [WHERE <condition>]

-- delete itab1 from 1 to 100 where age >30 "删除内表前100行中年龄大于30 的记录 。

整体复制内表,目标内表原有内容被覆盖

MOVE <itab1> TO <itab2> 不带表头行的内表之间进行复制

MOVE <itab1>[] TO <itab2>[] 带表头行的内表之间进行复制

MOVE <itab1> TO <itab2>[] 不带表头行的内表复制到带表头行的内表

MOVE-CORRESPONDING <itab1> TO <itab2> 复制内表1中与内表2具有相同结构的字段进行复制,同样适用于工作区

查看表结构信息如下

1、descformattedtable_name;

2、desctable_name。

一、电脑常见问题

主板不启动,开机无显示,有显卡报警声。

故障原因:一般是显卡松动或显卡损坏。

处理办法:打开机箱,把显卡重新插好即可。要检查AGP插槽内是否有小异物,否则会使显卡不能插接到位;对于使用语音报警的主板,应仔细辨别语音提示的内容,再根据内容解决相应故障。

如果以上办法处理后还报警,就可能是显卡的芯片坏了,更换或修理显卡。如果开机后听到"嘀"的一声自检通过,显示器正常但就是没有图像,把该显卡插在其他主板上,使用正常,那就是显卡与主板不兼容,应该更换显卡。

以上就是关于数据库 查询表结构全部的内容,包括:数据库 查询表结构、mysql数据库怎么查看表结构、请数据库高手设计表结构等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9711777.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存