MySQL and Sql Server:Getting metadata using sql script (SQL-92 standard)
MySQL:
use sakila; -- show fields from table_name;
-- show keys from table_name; SELECT `REFERENCED_TABLE_NAME`
FROM `information_schema`.`KEY_COLUMN_USAGE`
WHERE
`TABLE_NAME` = '[table_containing_foreign_key]' AND
`COLUMN_NAME` = '[foreign_key]'; SHOW COLUMNS FROM City; select * from information_schema.tables; select * from information_schema.tables
where table_schema='sakila'; select * from information_schema.tables; select * from information_schema.KEY_COLUMN_USAGE;
select * from information_schema.PARAMETERS;
select * from information_schema.VIEWS;
select * from information_schema.TRIGGERS; -- get Table/Fields metadata
SELECT table_schema, table_name, column_name, ordinal_position, data_type,
numeric_precision, column_type, column_default, is_nullable, column_comment
FROM information_schema.columns
-- WHERE (table_schema='sakila' and table_name = 'city') -- 显示指定表
WHERE table_schema='sakila'
order by ordinal_position; -- get Foregn Keys referenced table
SELECT `REFERENCED_TABLE_NAME`
FROM `information_schema`.`KEY_COLUMN_USAGE`
WHERE `TABLE_NAME` = 'city';
-- `TABLE_NAME` = 'table_name' AND
-- `COLUMN_NAME` = 'Column_Name' -- get indexes (primary and foreign) for a table -- get All indexes and referreced table
SELECT *
FROM `information_schema`.`KEY_COLUMN_USAGE`
WHERE
`TABLE_NAME` = 'city' AND
`TABLE_SCHEMA` = 'sakila'; SELECT *
FROM `information_schema`.`REFERENTIAL_CONSTRAINTS`
WHERE
`TABLE_NAME` = 'city' AND
`CONSTRAINT_SCHEMA` = 'sakila'; -- get STORED PROCEDURES
SELECT *
FROM `information_schema`.`ROUTINES`
WHERE
`ROUTINE_SCHEMA` = 'sakila'; -- get TRIGGERS SELECT *
FROM `information_schema`.`TRIGGERS`
WHERE
`TRIGGER_SCHEMA` = 'sakila'; -- get EVENTS SELECT *
FROM `information_schema`.`EVENTS`
WHERE
`EVENT_SCHEMA` = 'sakila'; -- get VIEWS
SELECT *
FROM `information_schema`.`VIEWS`
WHERE
`TABLE_NAME` = 'city' AND
`TABLE_SCHEMA` = 'sakila'; -- 'COLUMNS' 'EVENTS' 'FILES' 'TABLES'
SELECT table_schema, table_name, column_name, ordinal_position, data_type, numeric_precision, column_type FROM information_schema.columns
WHERE table_name = 'TABLES';
sql server :
--SQL-92 standard select TABLE_CATALOG, TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME, DATA_TYPE, CHARACTER_MAXIMUM_LENGTH from DuVehicle.information_schema.columns; SELECT * FROM DuVehicle.INFORMATION_SCHEMA.PARAMETERS;
GO GO
/*INFORMATION_SCHEMA views: View Name Description
CHECK_CONSTRAINTS Holds information about constraints in the database
COLUMN_DOMAIN_USAGE Identifies which columns in which tables are user-defined datatypes
COLUMN_PRIVILEGES Has one row for each column level permission granted to or by the current user
COLUMNS Lists one row for each column in each table or view in the database
CONSTRAINT_COLUMN_USAGE Lists one row for each column that has a constraint defined on it
CONSTRAINT_TABLE_USAGE Lists one row for each table that has a constraint defined on it
DOMAIN_CONSTRAINTS Lists the user-defined datatypes that have rules bound to them
DOMAINS Lists the user-defined datatypes
KEY_COLUMN_USAGE Lists one row for each column that's defined as a key
PARAMETERS Lists one row for each parameter in a stored procedure or user-defined function
REFERENTIAL_CONSTRAINTS Lists one row for each foreign constraint
ROUTINES Lists one row for each stored procedure or user-defined function
ROUTINE_COLUMNS Contains one row for each column returned by any table-valued functions
SCHEMATA Contains one row for each database
TABLE_CONSTRAINTS Lists one row for each constraint defined in the current database
TABLE_PRIVILEGES Has one row for each table level permission granted to or by the current user
TABLES Lists one row for each table or view in the current database
VIEW_COLUMN_USAGE Lists one row for each column in a view including the base table of the column where possible
VIEW_TABLE_USAGE Lists one row for each table used in a view
VIEWS Lists one row for each view */
SQL Server Metadata Toolkit 2005 - 2014 https://sqlmetadata.codeplex.com/
Automatic Graph Layout
https://github.com/Microsoft/automatic-graph-layout
https://www.nuget.org/packages/Microsoft.Msagl/
http://www.microsoft.com/en-us/download/details.aspx?id=52034
MySQL 表的注释(备注)信息
-- 创建带解释的表
CREATE TABLE groups(
gid INT PRIMARY KEY AUTO_INCREMENT COMMENT '设置主键自增ID',
gname VARCHAR(200) COMMENT '名称'
) COMMENT='群表'; SHOW CREATE TABLE city;
#查看表的注释
SELECT table_name,table_comment FROM information_schema.tables WHERE table_schema = 'sakila' AND table_name ='groups'; # 查看列的注释 涂聚文 Geovin Du
SHOW FULL COLUMNS FROM city; SELECT column_name, column_comment FROM information_schema.columns WHERE table_schema ='sakila' AND table_name = 'groups'; -- 表注释,列注释city_id
use sakila; -- 表描述
ALTER TABLE city COMMENT='城市表'; -- 更改注释
alter table city modify column city varchar(50) comment '城市名称'; ALTER TABLE city MODIFY COLUMN `city_id` smallint(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '城市ID'; ALTER TABLE city MODIFY COLUMN `country_id` smallint(5) unsigned NOT NULL COMMENT '国家代码'; ALTER TABLE city MODIFY COLUMN city_id smallint(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '城市ID'; ALTER TABLE city MODIFY COLUMN country_id smallint(5) unsigned NOT NULL COMMENT '国家代码'; alter table city modify column last_update timestamp comment '更新时间'; SHOW CREATE TABLE city;
#查看表的注释
SELECT table_name as '表名',table_comment as '表注释' FROM information_schema.tables WHERE table_schema = 'sakila' AND table_name ='city'; # 查看列的注释
SHOW FULL COLUMNS FROM city; SELECT column_name as '列名', column_comment as '列注释' FROM information_schema.columns WHERE table_schema ='sakila' AND table_name = 'city'; SELECT * FROM information_schema.columns WHERE table_schema ='sakila' AND table_name = 'city';
-- 数据库中所有表的主键和外键约束信息的Sql语句
-- 1方法
SELECT C.TABLE_SCHEMA, -- 拥有者,
C.REFERENCED_TABLE_NAME, -- 父表名称 ,
C.REFERENCED_COLUMN_NAME, -- 父表字段 ,
C.TABLE_NAME, -- 子表名称,
C.COLUMN_NAME, -- 子表字段,
C.CONSTRAINT_NAME, -- 约束名,
T.TABLE_COMMENT, -- 表注释,
R.UPDATE_RULE, -- 约束更新规则,
R.DELETE_RULE -- 约束删除规则
FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE C
JOIN INFORMATION_SCHEMA. TABLES T
ON T.TABLE_NAME = C.TABLE_NAME
JOIN INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS R
ON R.TABLE_NAME = C.TABLE_NAME
AND R.CONSTRAINT_NAME = C.CONSTRAINT_NAME
AND R.REFERENCED_TABLE_NAME = C.REFERENCED_TABLE_NAME
WHERE C.REFERENCED_TABLE_NAME IS NOT NULL ; SELECT C.TABLE_SCHEMA 拥有者,
C.REFERENCED_TABLE_NAME 父表名称 ,
C.REFERENCED_COLUMN_NAME 父表字段 ,
C.TABLE_NAME 子表名称,
C.COLUMN_NAME 子表字段,
C.CONSTRAINT_NAME 约束名,
T.TABLE_COMMENT 表注释,
R.UPDATE_RULE 约束更新规则,
R.DELETE_RULE 约束删除规则
FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE C
JOIN INFORMATION_SCHEMA. TABLES T
ON T.TABLE_NAME = C.TABLE_NAME
JOIN INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS R
ON R.TABLE_NAME = C.TABLE_NAME
AND R.CONSTRAINT_NAME = C.CONSTRAINT_NAME
AND R.REFERENCED_TABLE_NAME = C.REFERENCED_TABLE_NAME
WHERE C.REFERENCED_TABLE_NAME IS NOT NULL ;
-- 2方法
select O.CONSTRAINT_SCHEMA,O.CONSTRAINT_NAME,O.TABLE_SCHEMA,O.TABLE_NAME,O.COLUMN_NAME,O.REFERENCED_TABLE_SCHEMA,O.REFERENCED_TABLE_NAME,O.REFERENCED_COLUMN_NAME,O.UPDATE_RULE,O.DELETE_RULE,O.UNIQUE_CONSTRAINT_NAME,T.CONSTRAINT_TYPE from (
select K.CONSTRAINT_SCHEMA,K.CONSTRAINT_NAME,K.TABLE_SCHEMA,K.TABLE_NAME,K.COLUMN_NAME,K.REFERENCED_TABLE_SCHEMA,K.REFERENCED_TABLE_NAME,K.REFERENCED_COLUMN_NAME,R.UPDATE_RULE,R.DELETE_RULE,R.UNIQUE_CONSTRAINT_NAME from information_schema.KEY_COLUMN_USAGE K LEFT join information_schema.REFERENTIAL_CONSTRAINTS R on K.CONSTRAINT_NAME=R.CONSTRAINT_NAME)
as O inner join Information_schema.TABLE_CONSTRAINTS T on O.Table_Name=T.TABLE_NAME and T.CONSTRAINT_NAME=O.CONSTRAINT_NAME where O.CONSTRAINT_SCHEMA!='mysql' and O.CONSTRAINT_SCHEMA!='sys';
#查询数据库中所有表的自增主键: SELECT
t.TABLE_NAME,
c.COLUMN_NAME,
ts.AUTO_INCREMENT
FROM
INFORMATION_SCHEMA.TABLE_CONSTRAINTS AS t,
information_schema.TABLES AS ts,
information_schema.KEY_COLUMN_USAGE AS c
WHERE
t.TABLE_NAME = ts.TABLE_NAME
AND ts.TABLE_NAME = c.TABLE_NAME
-- AND t.TABLE_SCHEMA = 数据库名称
AND t.CONSTRAINT_TYPE = 'PRIMARY KEY'
ORDER BY ts.`AUTO_INCREMENT` DESC;
# 查询数据库中所有表的主键及数量:
SELECT
t.TABLE_NAME,
t.CONSTRAINT_TYPE,
c.COLUMN_NAME,
c.ORDINAL_POSITION
FROM
INFORMATION_SCHEMA.TABLE_CONSTRAINTS AS t,
INFORMATION_SCHEMA.KEY_COLUMN_USAGE AS c,
information_schema.TABLES AS ts
WHERE
t.TABLE_NAME = c.TABLE_NAME
AND t.TABLE_SCHEMA = 'sakila'
AND t.CONSTRAINT_TYPE = 'PRIMARY KEY'; # 查看所有没有主键的表
SELECT
#CONCAT("truncate table ",table_name,";")
table_name
FROM
information_schema. TABLES
WHERE
table_schema = 'sakila'
AND TABLE_NAME NOT IN (
SELECT
table_name
FROM
information_schema.table_constraints t
JOIN information_schema.key_column_usage k USING (
constraint_name,
table_schema,
table_name
)
WHERE
t.constraint_type = 'PRIMARY KEY'
AND t.table_schema = 'sakila'
); --
SELECT column_name FROM INFORMATION_SCHEMA.`KEY_COLUMN_USAGE`
WHERE table_name='city' AND constraint_name='PRIMARY'
AND CONSTRAINT_SCHEMA='sakila'; show keys from `city` where key_name='PRIMARY'; select DISTINCT COLUMN_NAME from INFORMATION_SCHEMA.COLUMNS where table_name='city' AND COLUMN_KEY='PRI'; SELECT
t.TABLE_NAME,
t.CONSTRAINT_TYPE,
c.COLUMN_NAME,
c.ORDINAL_POSITION
FROM
INFORMATION_SCHEMA.TABLE_CONSTRAINTS AS t,
INFORMATION_SCHEMA.KEY_COLUMN_USAGE AS c
WHERE
t.TABLE_NAME = c.TABLE_NAME
AND t.TABLE_SCHEMA = 'sakila'
AND t.CONSTRAINT_TYPE = 'PRIMARY KEY';
ALTER DATABASE testdb SET RECOVERY FULL;
BACKUP DATABASE testdb TO DISK='c:temp\testdb.bak' WITH INIT;
MySQL and Sql Server:Getting metadata using sql script (SQL-92 standard)的更多相关文章
- SQL Server定时自动抓取耗时SQL并归档数据发邮件脚本分享
SQL Server定时自动抓取耗时SQL并归档数据发邮件脚本分享 第一步建库和建表 USE [master] GO CREATE DATABASE [MonitorElapsedHighSQL] G ...
- SQL SERVER 2012 从Enterprise Evaluation Edtion 升级到 Standard Edtion SP1
案例背景:公司从意大利购买了一套中控系统,前期我也没有参与其中(包括安装.实施都是第三方),直到最近项目负责人告诉我:前期谈判以为是数据库的License费用包含在合同中,现在经过确认SQL Serv ...
- [转]SQL SERVER – Importance of Database Schemas in SQL Server
原文地址http://blog.sqlauthority.com/2009/09/07/sql-server-importance-of-database-schemas-in-sql-server/ ...
- 安装 SQL Server 2008 时提示需要删除 SQL Server 2005 Express 工具
已安装 SQL Server 2005,安装 SQL Server 2008 时提示需要删除 SQL Server 2005 Express 工具 错误提示:已安装 SQL Server 2005 E ...
- SQL Server代理(5/12):理解SQL代理错误日志
SQL Server代理是所有实时数据库的核心.代理有很多不明显的用法,因此系统的知识,对于开发人员还是DBA都是有用的.这系列文章会通俗介绍它的很多用法. 如我们在这个系列的前几篇文章所见,SQL ...
- SQL SERVER 2008配置Database Mail –用SQL 数据库发邮件
SQL SERVER 2008配置Database Mail –用SQL 数据库发邮件 https://blogs.msdn.microsoft.com/apgcdsd/2011/06/28/sql ...
- SQL SERVER 2014 安装图解(含 SQL SERVER 2014 安装程序共享)
开篇介绍 2015年1月1日,新的一年开始之际,本来应该好好做点有意义的事情来跨个年的.结果,老习惯 - 睡觉之前一定要折腾一下电脑,说干就干,给新到的 DELL 电脑装虚机,下载 SQL SERVE ...
- SQL Server定时自动抓取耗时SQL并归档数据脚本分享
原文:SQL Server定时自动抓取耗时SQL并归档数据脚本分享 SQL Server定时自动抓取耗时SQL并归档数据脚本分享 第一步建库 USE [master] GO CREATE DATABA ...
- SQL Server中存储过程比直接运行SQL语句慢的原因
原文:SQL Server中存储过程比直接运行SQL语句慢的原因 在很多的资料中都描述说SQLSERVER的存储过程较普通的SQL语句有以下优点: 1. 存储过程只在创造时进行编译即可,以 ...
- SQL Server on Ubuntu——Ubuntu上的SQL Server(全截图)
本文从零开始一步一步介绍如何在Ubuntu上搭建SQL Server 2017,包括安装系统.安装SQL等相关步骤和方法(仅供测试学习之用,基础篇). 一. 创建Ubuntu系统(Create U ...
随机推荐
- 设置UniDbGrid的整行显示颜色,如果某字段值是我们的控制字段
设置UniDbGrid的整行显示颜色,如果某字段值是我们的控制字段,使用下列判断设置更快捷一点: procedure TUniForm.UniDBGridDrawColumnCell(Sender: ...
- 项目中使用同一dll的不同版本
在一个项目中,因为使用了一些插件,这些插件使用了不同版本的log4net,有1.2版本,有2.0版本的.当运行的时候发生冲突. 解决办法:在config中加入如下的配置 <dependentAs ...
- [转]kaldi上的深度神经网络
转:http://blog.csdn.net/wbgxx333/article/details/41019453 深度神经网络已经是语音识别领域最热的话题了.从2010年开始,许多关于深度神经网络的文 ...
- Kaldi单音素模型 训练部分
在Kaldi中,单音素GMM的训练用的是Viterbi training,而不是Baum-Welch training.因此就不是用HMM Baum-Welch那几个公式去更新参数,也就不用计算前向概 ...
- SVM理解
https://blog.csdn.net/feilong_csdn/article/details/62427148
- 微信小程序之自定义模态弹窗(带动画)实例
1.基本需求. 实现用户自定义弹框 带动画(动画可做参靠,个人要是觉得不好看可以自定义动画) 获取弹出框的内容,自定义事件获取 2.案例目录结构 二.程序实现具体步骤 1.弹框index.wxml代码 ...
- poj2699
神题目=神题解+神读入 题意:n个人比赛, 两两比,共n*(n-1), 赢得1分, n<=10(这给了我们枚举的暗示),如果一个人打败了所有比自己分数高的人, 或者他本身就是分数最高的, 那么他 ...
- javascript Navigator对象属性和方法
Navigator对象 Navigator 对象包含的属性描述了正在使用的浏览器.可以使用这些属性进行平台专用的配置.虽然这个对象的名称显而易见 的是 Netscape 的 Navigator 的浏览 ...
- 【LeetCode】21.合并两个有序链表
题目 将两个有序链表合并为一个新的有序链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 示例: 输入:1->2->4, 1->3->4 输出:1->1-> ...
- 关于 Spring Security 5 默认使用 Password Hash 算法
账户密码存储的安全性是一个很老的话题,但还是会频频发生,一般的做法是 SHA256(userInputpwd+globalsalt+usersalt) 并设置密码时时要求长度与大小写组合,一般这样设计 ...