字典sql
❶ sql Server中如何實現類似於字典的功能
很顯然 行轉 列。在sqlserver 中可以實現的。sqlserver 2005以上版本更容易 用unpivot函數
你先把 sheet1 這個表 裝換成
sheet1
c1
d1
a1
b1
給你個例子
姓名 語文 數學 物理
---------- ----------- ----------- -----------
張三 74 83 93
李四 74 84 94
可以轉成
姓名 課程 分數
---------- ---- -----------
李四 語文 74
李四 數學 84
李四 物理 94
張三 語文 74
張三 數學 83
張三 物理 93
你看下 sqlserver pivot /unpivot 函數 一個行轉列,一個列轉行
❷ 請問sql中的數據字典是什麼,起到什麼作用
就是維護整個資料庫運行的內部表。屬於資料庫系統的表。
oracle官方的解釋是
One of the most important parts of an Oracle database is its data dictionary, which is a read-only set of tables that provides information about the database. A data dictionary contains:
The definitions of all schema objects in the database (tables, views, indexes, clusters, synonyms, sequences, proceres, functions, packages, triggers, and so on)
How much space has been allocated for, and is currently used by, the schema objects
Default values for columns
Integrity constraint information
The names of Oracle users
Privileges and roles each user has been granted
Auditing information, such as who has accessed or updated various schema objects
Other general database information
The data dictionary is structured in tables and views, just like other database data. All the data dictionary tables and views for a given database are stored in that database's SYSTEM tablespace.
❸ sql資料庫字典表有什麼用
數據字典是關於數據的信息的集合,也就是對數據流圖中包含的所有元素的定義的集合. 組成 1數據流 2數據流分量,即數據元素 3數據存儲 4處理 數據字典 資料庫的重要部分是數據字典。它存放有資料庫所用的有關信息,對用戶來說是一組只讀的表。數據字典內容包括: 資料庫中所有模式對象的信息,如表、視圖、簇、及索引等。 分配多少空間,當前使用了多少空間等。 列的預設值。 約束信息的完整性。 用戶的名字。 用戶及角色被授予的許可權。 用戶訪問或使用的審計信息。 其它產生的資料庫信息。 資料庫數據字典是一組表和視圖結構。它們存放在SYSTEM表空間中。 資料庫數據字典不僅是每個資料庫的中心。而且對每個用戶也是非常重要的信息。用戶可以用SQL語句訪問資料庫數據字典。
❹ sql的數據流圖,數據字典是什麼樣的
數據流圖就是用一些不同意義的幾何圖形表示資料庫裡面不同的結構,然後就構成的數據流圖。
數據字典我們所用到的一般就是將資料庫裡面的欄位用表格形式表現出來的。
❺ SQL怎麼創建數據字典表,最好舉個例子!
我的理解數據字典表就是普通的表,例如性別的數據字典表
而這個字典表即可以包含, xmdm(代碼),xmmc(名稱),xmsm (說明) 三列,可根據使用情況增加或減少列,裡面的數據,即包含了 男,女,未知,三個選擇 這男,女等就是字典
是可以列舉完全的。
❻ SQL資料庫數據字典怎麼生成的
數據字典是關於數據的信息的集合,也就是對數據流圖中包含的所有元素的定義的集合。
資料庫數據字典是一組表和視圖結構。它們存放在SYSTEM表空間中。
資料庫數據字典不僅是每個資料庫的中心。而且對每個用戶也是非常重要的信息。用戶可以用SQL語句訪問資料庫數據字典。
生成資料庫參考代碼如下:
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Carbe>
-- Create date: <2014-09-19>
-- Description: <生成資料庫字典>
-- =============================================
CREATE PROCEDURE [dbo].[CreateDatabaseDictionarie]
AS
BEGIN
DECLARE @TableName nvarchar(35),@htmls varchar(8000)
DECLARE @欄位名稱 VARCHAR(200)
DECLARE @類型 VARCHAR(200)
DECLARE @長度 VARCHAR(200)
DECLARE @數值精度 VARCHAR(200)
DECLARE @小數位數 VARCHAR(200)
DECLARE @默認值 VARCHAR(200)
DECLARE @允許為空 VARCHAR(200)
DECLARE @外鍵 VARCHAR(200)
DECLARE @主鍵 VARCHAR(200)
DECLARE @描述 VARCHAR(200)
SET NOCOUNT ON;
DECLARE Tbls CURSOR
FOR
Select distinct Table_name
FROM INFORMATION_SCHEMA.COLUMNS
order by Table_name
OPEN Tbls
PRINT '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">'
PRINT '<html xmlns="http://www.w3.org/1999/xhtml">'
PRINT ' <head>'
PRINT ' <title>KC管理系統-資料庫字典</title>'
PRINT ' <style type="text/css">'
PRINT ' body{margin:0; font:11pt "arial", "微軟雅黑"; cursor:default;}'
PRINT ' .tableBox{margin:10px auto; padding:0px; width:1000px; height:auto; background:#FBF5E3; border:1px solid #45360A}'
PRINT ' .tableBox h3 {font-size:12pt; height:30px; line-height:30px; background:#45360A; padding:0px 0px 0px 15px; color:#FFF; margin:0px; text-align:left }'
PRINT ' .tableBox table {width:1000px; padding:0px }'
PRINT ' .tableBox th {height:25px; border-top:1px solid #FFF; border-left:1px solid #FFF; background:#F7EBC8; border-right:1px solid #E0C889; border-bottom:1px solid #E0C889 }'
PRINT ' .tableBox td {height:25px; padding-left:10px; border-top:1px solid #FFF; border-left:1px solid #FFF; border-right:1px solid #E0C889; border-bottom:1px solid #E0C889 }'
PRINT ' </style>'
PRINT ' </head>'
PRINT ' <body>'
FETCH NEXT FROM Tbls INTO @TableName
WHILE @@FETCH_STATUS = 0
BEGIN
Select @htmls = ' <h3>' + @TableName + ' : '+ CAST(Value as varchar(1000)) + '</h3>'
FROM sys.extended_properties AS A
WHERE A.major_id = OBJECT_ID(@TableName)
and name = 'MS_Description' and minor_id = 0
PRINT ' <div class="tableBox">'
PRINT @htmls
PRINT ' <table cellspacing="0">'
PRINT ' <tr>'
PRINT ' <th>欄位名稱</th>'
PRINT ' <th>類型</th>'
PRINT ' <th>長度</th>'
PRINT ' <th>數值精度</th>'
PRINT ' <th>小數位數</th>'
PRINT ' <th>默認值</th>'
PRINT ' <th>允許為空</th>'
PRINT ' <th>外鍵</th>'
PRINT ' <th>主鍵</th>'
PRINT ' <th>描述</th>'
PRINT ' </tr>'
DECLARE TRows CURSOR
FOR
SELECT
' <td>' + CAST(clmns.name AS VARCHAR(35)) + '</td>',
' <td>' + CAST(udt.name AS CHAR(15)) + '</td>' ,
' <td>' + CAST(CAST(CASE WHEN typ.name IN (N'nchar', N'nvarchar') AND clmns.max_length <> -1 THEN clmns.max_length/2 ELSE clmns.max_length END AS INT) AS VARCHAR(20)) + '</td>',
' <td>' + CAST(CAST(clmns.precision AS INT) AS VARCHAR(20)) + '</td>',
' <td>' + CAST(CAST(clmns.scale AS INT) AS VARCHAR(20)) + '</td>',
' <td>' + isnull(CAST(cnstr.definition AS VARCHAR(20)),'') + '</td>',
' <td>' + CAST(clmns.is_nullable AS VARCHAR(20)) + '</td>' ,
' <td>' + CAST(clmns.is_computed AS VARCHAR(20)) + '</td>' ,
' <td>' + CAST(clmns.is_identity AS VARCHAR(20)) + '</td>' ,
' <td>' + ISNULL(CAST(exprop.value AS VARCHAR(500)),'') + '</td>'
FROM sys.tables AS tbl
INNER JOIN sys.all_columns AS clmns ON clmns.object_id=tbl.object_id
LEFT OUTER JOIN sys.indexes AS idx ON idx.object_id = clmns.object_id AND 1 =idx.is_primary_key
LEFT OUTER JOIN sys.index_columns AS idxcol ON idxcol.index_id = idx.index_id AND idxcol.column_id = clmns.column_id AND idxcol.object_id = clmns.object_id AND 0 = idxcol.is_included_column
LEFT OUTER JOIN sys.types AS udt ON udt.user_type_id = clmns.user_type_id
LEFT OUTER JOIN sys.types AS typ ON typ.user_type_id = clmns.system_type_id AND typ.user_type_id = typ.system_type_id
LEFT JOIN sys.default_constraints AS cnstr ON cnstr.object_id=clmns.default_object_id
LEFT OUTER JOIN sys.extended_properties exprop ON exprop.major_id = clmns.object_id AND exprop.minor_id = clmns.column_id AND exprop.name = 'MS_Description'
WHERE (tbl.name = @TableName and exprop.class = 1) --I don't wand to include comments on indexes
ORDER BY clmns.column_id ASC
OPEN TRows
FETCH NEXT FROM TRows INTO @欄位名稱,@類型,@長度,@數值精度,@小數位數,@默認值,@允許為空,@外鍵,@主鍵,@描述
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT ' <tr>'
PRINT @欄位名稱
PRINT @類型
PRINT @長度
PRINT @數值精度
PRINT @小數位數
PRINT @默認值
PRINT @允許為空
PRINT @外鍵
PRINT @主鍵
PRINT @描述
PRINT ' </tr>'
FETCH NEXT FROM TRows INTO @欄位名稱,@類型,@長度,@數值精度,@小數位數,@默認值,@允許為空,@外鍵,@主鍵,@描述
END
CLOSE TRows
DEALLOCATE TRows
PRINT ' </table>'
PRINT ' </div>'
FETCH NEXT FROM Tbls INTO @TableName
END
PRINT ' </body>'
PRINT '</html>'
CLOSE Tbls
DEALLOCATE Tbls
END
❼ 什麼是sql,sql語句的分類,常見的資料庫對象以及所使用的數據字典
1、數據操縱語言(DML):用來操縱資料庫中數據的命令。包括:select、insert、update、delete。
2、數據定義語言(DDL):用來建立資料庫、資料庫對象和定義列的命令。包括:create、alter、drop。
3、數據控制語言(DCL):用來控制資料庫組件的存取許可、許可權等的命令。包括:grant、deny、revoke。
4、其他語言元素:如流程式控制制語言、內嵌函數、批處理語句等。
❽ sql兩張表(主表和字典表)關聯查詢,字典項翻譯問題
select t.dw,t1.name from jbxxb t
left join department t1 on t.dw=t1.code
❾ SQL資料庫數據字典怎麼生成的
SELECT 表名=case when a.colorder=1 then d.name else '' end,
--欄位序號=a.colorder,
欄位名=a.name,
--標識=case when COLUMNPROPERTY( a.id,a.name,'IsIdentity')=1 then '√'else '' end,
/*主鍵=case when exists(SELECT 1 FROM sysobjects where xtype='PK' and name
in ( SELECT name FROM sysindexes WHERE indid
in( SELECT indid FROM sysindexkeys WHERE id = a.id AND colid=a.colid )))
then '√' else '' end,
*/
類型=b.name,
--佔用位元組數=a.length,
長度=COLUMNPROPERTY(a.id,a.name,'PRECISION'),
小數位數=isnull(COLUMNPROPERTY(a.id,a.name,'Scale'),0),
允許空=case when a.isnullable=1 then '√'else '' end,
默認值=isnull(e.text,''),
欄位說明=isnull(g.[value],'')
FROM syscolumns a left join systypes b on a.xtype=b.xusertype inner join sysobjects d on a.id=d.id
and d.xtype='U' and d.name<>'dtproperties'
left join syscomments e on a.cdefault=e.id left join sysproperties g on a.id=g.id
and a.colid=g.smallid
order by a.id,a.colorder
❿ 有沒有製作MSSQL數據字典的工具
製作數據字典工具的sql文件必須Navicat或MySQLFront或Toad導出,我使用的是sqlyog,因此格式和這個工具有沖突,導致經常使用有問題,建議使用的話採用Navicat導出表結構,這樣就不會存在sql格式不兼容的問題。
比較哦可惜的是不能自動生成每個表的功能以及索引情況。先上一張圖展示一下效果:
對於MySQL, 總共三步操作:
一、點DataDictionaryTool版本號.bat打開圖形界面。
二、MySQL->載入sql腳本文件
三、MySQL->生成數據字典
對於Oracle,也是三步操作
一、點DataDictionaryTool版本號.bat打開圖形界面。
二、Oracle->載入sql腳本文件
三、Oracle->生成數據字典