查询数据库中某个字段的sql语句怎么写

查询数据库中某个字段的sql语句怎么写,第1张

1、在计算机中,打开Oracle的连接程序,用新建的数据库管理员,进入【Oracle控制】的窗口上,鼠标左键单击【服务器】按钮,并选择【SQL工作表】,如下图所示。

2、接着,在【Oracle服务器】的窗口上,在输入窗口中输入SQL查询语句,并单击【执行】按钮,可以看到表格当前的数据,但是没有显示出字段类型,如下图所示。

3、 然后,在【SQL工作表】的窗口上,输入查询表格的字段类型的SQL语句,可以作为参考,如下图所示。

4、接着,在【SQL工作表】的窗口上,输入查询表格的字段类型的SQL语句,并单击【执行】按钮,在提示窗口中,显示出错误类型,如下图所示。

5、然后,在【SQL工作表】的窗口上,修改查询表格的字段类型的SQL语句,添加列名的关键字,并单击【执行】按钮。可以看到SQL语句执行成功的提示信息,如下图所示。

6、最后,在【SQL工作表】的窗口上,通过查询表格的字段类型的SQL语句,可以看到表格中字段的字段类型了,如下图所示。通过这样的 *** 作就学会了在Oracle数据库中查询表格的字段类型了。

如果表 PartitionTable

分区,以下查询将返回一个或多个行。

如果表未分区,则不返回任何行。

SELECT * FROM sys.partitions AS p

JOIN sys.tables AS t

ON p.object_id = t.object_id

WHERE p.partition_id IS NOT NULL

AND t.name = 'PartitionTable'

以下查询返回表的分区列的名称。

PartitionTable.

SELECT t.object_id AS Object_ID, t.name AS TableName, ic.column_id as PartitioningColumnID, c.name AS PartitioningColumnName

FROM sys.tables AS t

JOIN sys.indexes AS i

ON t.object_id = i.object_id

JOIN sys.columns AS c

ON t.object_id = c.object_id

JOIN sys.partition_schemes AS ps

ON ps.data_space_id = i.data_space_id

JOIN sys.index_columns AS ic

ON ic.object_id = i.object_id AND ic.index_id = i.index_id AND ic.partition_ordinal >0

WHERE t.name = 'PartitionTable'

AND i.type <= 1

AND c.column_id = 1

有两种方法可以实现对一个表分区.一是创建一个新的标识为分区表的表(你可参照此步骤),然后把数据复制到这张新表,再对这两张表分别改名.或者,像我写在下面的,通过重建或创建一个聚集索引来达到分区一个表.

一个SQL Server表和数据进行分区示例

--Table/Index creation

CREATE TABLE [dbo].[TABLE1]

([pkcol] [int] NOT NULL,

[datacol1] [int] NULL,

[datacol2] [int] NULL,

[datacol3] [varchar](50) NULL,

[partitioncol] datetime)

GO

ALTER TABLE dbo.TABLE1 ADD CONSTRAINT PK_TABLE1 PRIMARY KEY CLUSTERED (pkcol)

GO

CREATE NONCLUSTERED INDEX IX_TABLE1_col2col3 ON dbo.TABLE1 (datacol1,datacol2)

WITH (STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF,

ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)

ON [PRIMARY]

GO

-- Populate table data

DECLARE @val INT

SELECT @val=1

WHILE @val <1000

BEGIN

INSERT INTO dbo.Table1(pkcol, datacol1, datacol2, datacol3, partitioncol)

VALUES (@val,@val,@val,'TEST',getdate()-@val)

SELECT @val=@val+1

END

GO

通过查看sys.partitions系统视图,上面的代码创建了一个传统的单分区表.

SELECT o.name objectname,i.name indexname, partition_id, partition_number, [rows]

FROM sys.partitions p

INNER JOIN sys.objects o ON o.object_id=p.object_id

INNER JOIN sys.indexes i ON i.object_id=p.object_id and p.index_id=i.index_id

WHERE o.name LIKE '%TABLE1%'

objectname

indexname

partition_id

partition_number

rows

TABLE1PK_TABLE1720575940427120641999

TABLE1IX_TABLE1_col2col3720575940427776001999

创建已分区的SQL Server表

为了创建一个分区表,需要先创建一个分区函数和分区方案. 下面的示例中,将通过datatime字段对一个表分区. 这里是创建这些对象与在系统视图中查看这些元数据的代码.

CREATE PARTITION FUNCTION myDateRangePF (datetime)

AS RANGE RIGHT FOR VALUES ('20110101', '20120101','20130101')

GO

CREATE PARTITION SCHEME myPartitionScheme

AS PARTITION myDateRangePF ALL TO ([PRIMARY])

GO

SELECT ps.name,pf.name,boundary_id,value

FROM sys.partition_schemes ps

INNER JOIN sys.partition_functions pf ON pf.function_id=ps.function_id

INNER JOIN sys.partition_range_values prf ON pf.function_id=prf.function_id

现在我们有一个分区方案,可对表进行分区 *** 作. 既然我们想通过聚集索引来对一个创建了聚集索引的表进行分区,我们需要先删除掉这个索引并通过一个非聚集索引重建这个约束. 若这张表没有聚集索引,我们可忽略这一步,直接执行创建聚集索引语句. 类似地,若有一个聚集索引创建在分区字段上,我们可执行带DROP_EXISTING的创建聚集索引语句. 最后,若关注于执行此任务时数据库停止服务时间并且你使用的是SQL Server企业版本,可通过创建索引的ONLINE=ON选项来使数据库的停止服务时间最小. 记住,在使用ONLINE选项重建索引时,你可能会看到一些性能降低的现象. 这里是一些可能会乃至的脚本.

ALTER TABLE dbo.TABLE1 DROP CONSTRAINT PK_TABLE1

GO

ALTER TABLE dbo.TABLE1 ADD CONSTRAINT PK_TABLE1 PRIMARY KEY NONCLUSTERED (pkcol)

WITH (STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF,

ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]

GO

CREATE CLUSTERED INDEX IX_TABLE1_partitioncol ON dbo.TABLE1 (partitioncol)

WITH (STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF,

ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)

ON myPartitionScheme(partitioncol)

GO

在这些语句结束后,我们可再次查看sys.partitions系统视图(看上面的代码)并确认我们的表有4个分区.

objectname

indexname

partition_id

partition_number

rows

TABLE1IX_TABLE1_partitioncol720575940430397441233

TABLE1IX_TABLE1_partitioncol720575940431052802365

TABLE1IX_TABLE1_partitioncol720575940431708163366

TABLE1IX_TABLE1_partitioncol72057594043236352435

TABLE1IX_TABLE1_col2col3720575940433018881999

TABLE1PK_TABLE1720575940433674241999

SQL Server表和数据示例清除

--cleanup

DROP TABLE TABLE1

DROP PARTITION SCHEME myPartitionScheme

DROP PARTITION FUNCTION myDateRangePF


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存