精华内容
下载资源
问答
  • 常用数据库有哪些

    千次阅读 2019-09-20 09:09:28
    表 1 所示列出了每一类数据库的前 3~5 ...表 1 各类数据库排名 大类 类别 前3~5名 说明 SQL 关系数据库 Oracle、MySQL/MariaDB、SQL Server、PostgrcSQL、 DB2 遵循“表一记录”模型。按行存...

    表 1 所示列出了每一类数据库的前 3~5 名,排名会不断变化,实时的排名参见 http://db-engines.com/en/ranking 网站。
     

    表 1 各类数据库排名
    大类 类别 前3~5名 说明
    SQL 关系数据库 Oracle、MySQL/MariaDB、SQL Server、PostgrcSQL、 DB2 遵循“表一记录”模型。按行存储在文件中(先第 1 行,然后第 2 行……)
    NoSQL 时序数据库 InfluxDB、RRDtool、Graphite、OpcnTSDB、Kdb+    存储时间序列数据,每条记录都带有时间戳。如存储从感应器采集到的数据
    键/值数据库 Redis、Memcached、Riak KV、Hazelcast、Ehcache  遵循“键——值”模型,是最简单的数据库管理系统
    文档数据库 MongoDB、Couchbase、Amazon DynamoDB、CouchDB、MarkLogic 无固定结构,不同的记录允许有不同的列数和列类型。列允许包含多值,记录允许嵌套
    图数椐库 Neo4j、OrientDB、Titan、Virtuoso、ArangoDB     以“点——边”组成的网络(图结构)来存储数据
    搜索引擎 Elasticsearch、Solr、Splunk、MarkLogic、Sphinx  存储的目的是为了搜索,主要功能是搜索
    对象数据库 Caché、db4o、Versant Object Database、ObjcctStore、Matisse  受面向对象编程语言的启发,把数据定义为对象并存储在数据库中,包括对象之问的关系,如继承
    宽列数据库 Cassandra、HBase、Accumulo 按照列(由“键——值”对组成的列表)在数据文件中记录数据,以获得更好的请求及遍历效率。一行中的列数允许动态变化,且列的数目可达数百万,每条记录的关键码不同,支持多值列。

    下面对排名靠前的开源数据库做一些简单介绍。

    1. MySQL/MariaDB

    2008 年美国 Sun 公司花费 10 亿美元收购 MySQL,一年后 Oracle 公司又花费 60 亿美元收购了 Sun 公司,从此 Sun 公司的服务器、操作系统、MySQL 等产品线全部归属 Oracle 公司。

    拉力·艾立森奉行的经营哲学是“竞争不过它,我就买了它”。竞争不过,说明竞争对手的产品更具优势,所以收购它,从而变成自己的优势。几十年来,Oracle 从一家小型数据库公司变成今天覆盖硬件、平台软件、数据库、中间件、应用软件各个层次产品线的 IT 巨无霸,靠的就是美国的良好环境和总裁奉行的收购策略。

    MySQL 数据库占据中小型数据库应用市场的半壁江山,在这块市场,Oracle 数据库明显占下风,巅峰时世界上超过 70% 的网站后台都采用 MySQL 数据库。但是自从被 Oracle 公司收购后,MySQL 发展明显趋缓,是继续开源还是闭源,Oracle 公司一直没下定论。于是 MySQL 的原班人马陆续离开 Oracle 公司,另立炉灶,推出了 MariaDB 开源数据库。

    MariaDB 继承了 MySQL 小巧精悍、简洁高效、稳定可靠的特征,并与 MySQL 保持兼容。时至今日,已有 Google、Facebook 等知名企业把应用从 MySQL 切换到了 MariaDB 上,各种 Linux 发行版的操作系统默认数据库都开始采用 MariaDB;而 Apple 公司反应更快,当 Oracle 公司收购 Sun 公司时,就切换到了 PostgreSQL 数据库。

    截至 2014 年年末的数据库综合排名,MySQL 继续位居第二名,但是其表现出来的颓势较明显,而 MariaDB 却具备强劲的生命力。

    MariaDB 是一个开源的免费的关系数据库,截至发稿前的最新版本是 10.0.15,安装包可从 https://downloads.mariadb.org 网站下载。整个安装包大约 200MB,几乎能在所有的操作系统上安装和运行,与 Oracle 数据库、SQL Server、DB2 等商业数据库动辄好几张光盘相比,算是短小精悍了。

    另外,也可以从这个网站下载数据库的源代码。对于非数据库型的 SaaS 云提供商来说,云端采用 MariaDB 是最好的选择,而且可以轻松搭建数据库集群。

    2. PostgreSQL

    PostgreSQL 能被苹果公司大量使用并替换早期的 MySQL 数据库,说明其一定有不俗的表现。在 2014 年年末的数据库排行榜上,PostgreSQL 位居第四位,号称世界上最先进的、最安全的开源数据库,也是面向对象的关系数据库。

    华为内部局域网接入控制系统 SPES 也采用 PostgreSQL 数据库,在 Linux 操作系统上运行,极少出问题。经过十多年的磨砺,如今 PostgreSQL 数据库具备如下特点:

    • 面向对象,安全性极高,能运行在全部主流的操作系统上,完全 ACID 兼容。
    • 支持外键、连接、视图、触发器和存储过程(多语言)。
    • 支持最新的 SQL 2008 标准的数据类型,包括整型、数字型、字符型、布尔型、可变字符型、日期型、时间戳、自增长型以及各种二进制对象(如图片、声音和视频等)。
    • 提供了各种流行语言的编程接口,如 C/C++Java、.NET、Perl、Python、Ruby、Tcl、ODBC 等。


    PostgreSQL 数据库同时具备很多众多令人振奋的优点,比如在线备份、数据域、表分区、表空间、嵌套事务、时刻点恢复、两段式提交、多版本并发控制、子查询等。

    在 PostgreSQL 中,数据库大小没有限制,表大小上限为 32TB,一条记录的大小上限为 1.6TB,字段大小上限是 1GB,一个表包含的记录数没有限制,一条记录的字段数上限为 1600 个,一个表上创建的索引数目没有限制。

    另外,SQLite 是一个非常小型的 ACID 兼容的关系数据库,适合嵌入式系统。

    3. InfluxDB

    InfluxDB 是一个开源的时间序列数据库,能应付极高的写和查询并发数,主要用于存储大规模的时间戳数据(每条记录自动附加时间戳),如 DevOps 监控数据、应用系统运行指标数据、物联网感应器采集的数据及实时分析的结果数据等。InfluxDB 具备如下特征:

    • 全部用 Go 语言编写,并被编译成单一运行程序,无须第三方依赖。
    • 简洁、高效地写和查询 HTTP(S)编程接口(API)。
    • 通过插件能与其他的数据采集工具集成,如 Graphite、collectd、OpenTSDB。
    • 可以搭建高可用性的 InfluxDB 环境。
    • 量身定制化的类-SQL 语言。
    • 允许给序列数据附加标签来创建索引,以便快速高效查询。
    • 通过定义策略轻松实现自动失效过时的数据。
    • 基于 Web 的管理界面。


    对于一个具体的时间序列应用来说,除存储外,还需要集成数据采集、可视化和告警功能。为此,InfluxData 社区相应提供了 Telegraf(数据采集)、Chronograf(数据可视化)、Kapacitor(告警)三个开源项目,再加上 InfluxDB,能部署成一个完整的时间序列应用系统(简称为 TICK)。这四者的关系如图 1 所示。

    数据采集示意图
    图 1  数据采集示意图

    4. Redis

    Redis 是遵循 BSD 开源协议的存储系统,数据存储在内存中,因此具备极高的性能,可用作数据库、缓存和消息中间件。Redis 支持多种类型的数据结构,如字符串、哈希、列表、集合、带范围查询的有序集合、位图、hyperloglogs 和带半径查询的地理空间索引。

    Redis 内置了复制、脚本语言编程、最近最少使用(LRU)淘汰、事务以及不同级别的磁盘持久化等功能,通过 Redis Sentinel 和集群自动分区机制实现高可用性。Redis 采用 C 语言编写,能运行在 Windows、MacOS X、Linux、Solaris 等操作系统上,不过 Linux 是其最佳的运行平台,无须第三方依赖,它提供了最广泛的编程语言接口。

    5. MongoDB

    MongoDB 是排名第一的文档数据库,属于 NoSQL 大类,诞生于 2009 年,正好是云计算兴起的前夜。MongoDB 采用 C++ 语言开发,能运行在 Windows、MacOS X、Linux、Solaris 操作系统上,提供了绝大部分计算机语言的编程接口。保存在 MongoDB 中的一条记录称为一个文档,类似 JSON 语法,例如:

    从上面的例子可以看出,一个文档就是“键:值”对的集合。

    MongoDB 的主要优势包括:高性能、富查询语言(支持 CRUD、数据聚合、文本搜索和地理空间查询)、高可靠性、自动伸缩架构、支持多存储引擎。MongoDB 适合文档存储、检索和加工的应用场合,如大数据分析。

    6. Neo4j

    Neo4j 是一个用 Java 语言开发的图数据库,它将结构化数据存储在由“点—边”组成的网络(数学术语叫“图”)上而不是表中。与关系数据库相比,图数据库擅长处理大量复杂、互连接、低结构化的数据。这些数据变化迅速,需要频繁查询,如果使用关系数据库,那么这些查询会导致大量的表连接,因此会产生性能上的问题。

    Neo4j 重点解决了拥有大量连接的传统关系数据库在查询时出现的性能衰退问题。Neo4j 还提供了非常快的图算法、推荐系统和 OLAP 风格的分析,而这一切在目前的关系数据库系统中都无法实现。Neo4j 提供了广泛使用的 REST 接口,能够方便地集成到基于 Java、PHP、.NET 和 JavaScript 的环境里。

    Neo4j 使用 Cypher 语言进行增删改操作,例如:

    创建了两个节点:变量“e1”和“e2”,标签“员工”,属性“{……}”。

    创建了一条边,最终形成下图,如图 2 所示。

    最终形成
    图 2  最终形成

    7. Elasticsearch

    Elasticsearch 是一个高度可扩展的开源全文搜索和分析引擎,用于存储、搜索和近乎实时地分析大规模数据。Elasticsearch 常被人们用于构建具备复杂搜索功能的应用系统,比如维基百科和优步的搜索,再比如网店中搜索商品、商业智能、日志收集与分析、价格告警等。利用 Elasticsearch 实现的数据采集、存储和可视化套件 ELK(Elasticsearch、Logstash、Kibana)在日志分析领域应用最为广泛。

    8. Caché

    大概 20 年前,人们提出了后关系型数据库的概念,目前已有不少产品,其中由 InterSystems 公司开发的 Caché 是后关系型数据库中的领头羊,它提供 3 种方式访问数据:对象访问、SQL 访问、直接对多维数据数组访问,而且 3 种访问方式能够并发访问同一数据。多维数据结构和多种数据库访问方式构成了后关系型数据库的基础。

    Caché 数据库具备如下一些特点:

    1)速度快

    Caché 数据库在同等条件下查询相同数据,比 Oracle 等普通数据库要快 7~20 倍。

    2)节省存储空间

    存储空间可能节省 2/3,而基于 Caché 的应用程序,比原来基于关系型数据库的应用程序运行有可能快 20 倍。

    3)使用简单

    Caché 数据库支持标准 SQL 语句,因此不太熟悉 M 语言的用户依然可以轻松对数据库中的数据进行操作。

    4)接口容易

    Caché 数据库支持 ODBC 标准接口,因此在与其他系统进行数据交换时非常容易,同时 Caché 亦可以将数据输出为文本文件格式,以供其他系统访问调用。

    5)真正的三层结构

    Caché 数据库能够在真正意义上实现 3 层结构,实现真正的分布式服务,便于做横向扩张。

    6)对象型编辑

    Caché 数据库是真正的对象型数据库,开发时用户可直接用数据库定义自己想要的对象,然后再在其他开发工具中调用该对象的方法和属性即可完成开发工作,非常方便。

    7)支持 Web 开发

    Caché 数据库提供自带的 Web 开发工具,使用、维护非常方便,符合当今软件业发展的趋势。

    8)价格便宜

    Caché 数据库的价格比 Oracle 数据库要便宜很多。

    Caché 数据库在欧美的医疗系统使用最为普遍,被医疗界公认为首选的数据库,国内中山大学第三附属医院、深圳南山医院、北京安贞医院等也采用 Caché 数据库

    9. Cassandra

    Cassandra 是在 Google 的 Bigtable 基础上发展起来的 NoSQL 数据库,由脸谱于 2008 年用 Java 语言开发,目前被贡献给 Apache 基金会。Cassandra 被称为“列数据库”,这里的“列”不是指关系数据库中一个表中的列,而是由“键—值”对组成的列表(语法与 Python 语言中的列表相同),如:

    Cassandra 中一行数据语法是“一行的键={列,列,…}”,一行可包含上百万列,比如:

    Cassandra 中的列族(ColumnFamily)格式是“列族名={若干行}”,一个列族可包含几十亿行,例如:

    一个 Cassandra 运行实例管理很多键空间(Keyspace),Keyspace 相当于关系数据库管理系统中的数据库,一个键空间包含很多列族。键空间、列族、行、列的关系如图 3 所示。

    键空间、列族、行、列的关系
    图 3  键空间、列族、行、列的关系


    所以,Cassandra 中的寻址是一个四维或者五维哈希表:

    比如:

    返回广东理工职业学院(gdpi)计算机系(computer)张三(zsan)这个学生的年龄。

    OpenStack 生态中的 HBase 也是列数据库,目前排名第二。

    展开全文
  • 数据库常用的锁有哪些

    万次阅读 2019-01-14 22:13:12
    一、数据库为什么需要锁? 为了保证数据的一致性。mysql数据库存在多种数据引擎,MySQL各存储引擎使用了三种类型(级别)的锁定机制:表级锁定,行级锁定和页级锁定。 二、表级锁 1.表级锁(表级锁一次会将整个表...

    一、数据库为什么需要锁?

    为了保证数据的一致性。mysql数据库存在多种数据引擎,MySQL各存储引擎使用了三种类型(级别)的锁定机制:表级锁定,行级锁定和页级锁定。

    二、表级锁

    1.表级锁(表级锁一次会将整个表锁定,所可以很好的避免死锁问题)

    (1)锁定粒度大,锁冲突概率高、并发度低;

    (2)好处是不会出现死锁、开销小、获取锁和释放锁的速度很快;

    (3)使用表级锁定的主要是MyISAM,MEMORY,CSV等一些非事务性存储引擎,适用于以查询为主,少量更新的应用。

    三、行级锁

    1.行级锁

    (1)好处是锁定对象的颗粒度很小,发生锁冲突的概率低、并发度高;

    (2)缺点是开销大、加锁慢,行级锁容易发生死锁

    (详解mysql死锁问题https://blog.csdn.net/Michaeles/article/details/86484716 

    (3)使用行级锁定的主要是InnoDB存储引擎、及分布式存储引擎NDBCluster等。适用于对事务完整性要求较高的系统。InnoDB支持行级锁(row-level locking)和表级锁,默认为行级锁。

    2.InnoDB行级锁类型

    (1)共享锁:又称读锁,简单讲就是多个事务对同一数据进行共享一把锁,都能访问到数据,但是只能读不能修改

    (2)排他锁:又称写锁,排他锁就是不能与其他所并存,如一个事务获取了一个数据行的排他锁,其他事务就不能再获取该行的其他锁,只有获取排他锁的事务可以对数据进行读取和修改。

    (3)意向锁是InnoDB自动加的,不需用户干预。意向锁不会与行级的共享 / 排他锁互斥!!!

    3.注意事项

    (1)排他锁指的是一个事务在一行数据加上排他锁后,其他事务不能再在其上加其他的锁。但可以直接通过select ...from...查询数据,因为普通查询没有任何锁机制

    (2)mysql InnoDb引擎中update,delete,insert语句自动加排他锁;

    //意向锁之间是互相兼容的,意向共享锁和普通共享锁之间是兼容的。

    4.适用场景

    (1)共享锁适用于:用来确认某行记录是否存在,并确保没有人对这个记录进行UPDATE或者DELETE操作,如果当前事务也需要对该记录进行更新操作,则很有可能造成死锁。

      (2) 排他锁适用于:锁定行记录后需要进行更新操作的应用;

    共享锁(S):SELECT * FROM table_name WHERE ... LOCK IN SHARE MODE
    排他锁(X):SELECT * FROM table_name WHERE ... FOR UPDATE

    //https://www.cnblogs.com/boblogsbo/p/5602122.html

    5.为什么使用意向锁?

    提高了效率。

    1.事务 A 先获取了某一行的 排他锁 ,并未提交:
    
    SELECT * FROM users WHERE id = 6 FOR UPDATE;
    
    (1)事务 A 获取了 users 表上的 意向排他锁 。
    (2)事务 A 获取了 id 为 6 的数据行上的 排他锁 。
    
    2.事务 C 也想获取 users 表中某一行的 排他锁 :
    
    SELECT * FROM users WHERE id = 5 FOR UPDATE;
    
    (1)事务 C 申请 users 表的 意向排他锁 。
        事务 C 检测到 事务 A 持有 users 表的 意向排他锁 。
        因为意向锁之间并不互斥,所以 事务 C 获取到了 users 表的 意向排他锁 。
        因为id 为 5 的数据行上不存在任何 排他锁 ,最终 事务 C 成功获取到了该数据行上的 排他锁 。
    

    四、页面锁

    1.页面锁

    (1)介于行级锁和表级锁之间;

    (2)会发生死锁;

    (3)BDB采用页面锁(page-level locking)或表级锁,默认为页面锁。 

    五、关于锁的常见问题

    1.InnoDB存储引擎什么时候会锁住整张表(什么时候使用行级锁),什么时候或只锁住一行呢(使用行锁)? 

    只有通过索引条件查询数据,InnoDB才使用行级锁,否则,InnoDB将使用表锁! 记住:一定要记住为匹配条件字段加索引

    2.什么时候使用行级锁?什么时候使用表级锁?

    (1)在增删改查时匹配的条件字段不带有索引时,innodb使用的是表级锁,

    3.行级锁锁的是什么?行级锁怎么实现加锁?

    (1)行级锁是针对索引加的锁;

    (2) InnoDB行锁是通过索引上的索引项来实现的,这一点MySQL与Oracle不同,后者是通过在数据中对相应数据行加锁来实现的。

    4.mysql读锁和写锁?

    (1)因为只有触发了读写锁,我们才会谈是进行行级锁定还是进行表级锁定;

    (2)用select 命令时触发读锁,当使用update,delete,insert时触发写锁,并且使用rollback或commit后解除本次锁定。

    5.常见的锁算法:

    next KeyLocks锁,同时锁住记录(数据),并且锁住记录前面的Gap    

    Gap锁,不锁记录,仅仅记录前面的Gap

    Recordlock锁(锁数据,不锁Gap)

    所以其实 Next-KeyLocks=Gap锁+ Recordlock锁

    6.什么时候会释放锁?

    提交事务或回滚事务就会释放锁。

     

    展开全文
  • NetCore WebApi爬坑(三)——NetCore WebApi 常用数据库增删查改、条件查询、模糊查询等一系列数据库操作 数据库MySQL,废话不多说,开始今天的代码: GET: 条件查询: 一、查询所有记录: List<...

    数据库MySQL,废话不多说,开始今天的代码:

    GET

    条件查询:

    一、查询所有记录:

    List<Article> articles = _context.Articles.ToList<Article>();
    

    二、根据主键进行查询

    Article article = _context.Articles.Find(id);
    

    三、根据非主键信息字段进行查询(如果找不到会返回Null,但不报异常

    List<Product> products = _context.Products
      .Where(p => p.Name == name)
      .ToList<Product>();
    

    四、查询一条记录

    Article articles = _context.Articles
        .Single(article=>article.Title==title);
    

    注意:此时应要求该字段做唯一性约束,该方法期待必须返回一条记录,0条和多条都会报异常。
    而First方法会取众多记录中的第一条,如果找不到会报异常,但有多条符合条件就取一条不报异常

    五、模糊查询(1)

    List<Article> articles = _context.Articles
      .Where(article => article.Title.Contains(title))
      .ToList();
    

    五、模糊查询(2)

    List<Article> articles = _context.Articles
      .Where(article => EF.Functions.Like(article.Title,$"{title}%"))
      .ToList();
    

    注意:Like方法和String的Contains方法都能实现模糊查询,主要区别在于:EF.Functions.Like()方法支持通配符,而StartsWith、Contains和EndsWith方法是不支持通配符的,比较下面两个方法,第1条语句可以实现预期效果,但第2条语句不行。

    (1) EF.Functions.Like(article.Title,“%[a-z]%”)
    
    (2) article.Title.Contains("[a-z]")
    

    排序:

    List<Article> articles = _context
        .Articles.OrderBy(article=>article.Title)
        .ToList<Article>();
    
    List<Article> articles = _context
      .Articles.OrderByDescending(article=>article.Title)
      .ToList<Article>();
    

    预先加载(可以使用Include方法,以便指定要包含在查询结果的相关的数据)

    Article article = _context.Articles
      .Include(a => a.author)
      .First();
    

    上述代码中article的author属性不再为null。

    加载多项

    var blogs = context.Blogs
      .Include(blog => blog.Posts)
      .Include(blog => blog.Owner)
      .ToList();
    

    多级预加载

    List<Column> columns = _context.Columns
      .Include(column => column.Articles)
      .ThenInclude(article=> article.author)
      .ToList<Column>();
    

    非跟踪查询(No-tracking queries)
    如果仅仅是只读查询,采用非跟踪查询会提供查询的性能。

    List<Article> articles = _context.Articles
      .AsNoTracking()
      .ToList<Article>();
    

    原始的 SQL 查询
    可以使用FromSql扩展方法,实现基于原始的 SQL 查询的 LINQ 查询。

    List<Article> articles = _context.Articles
      .FromSql("select * from cms_article")
      .ToList();
    

    也可以使用原始的 SQL 查询来执行存储的过程。

    var blogs = context.Blogs
      .FromSql("EXECUTE dbo.GetMostPopularBlogs")
      .ToList();
    

    或者实现带参数的查询

    var sql = $"select * from cms_article where title like '%{titlewithsql}%'";
    List<Article> articles = _context.Articles
      .FromSql(sql)
      .ToList();
    

    预加载Include、Where 与OrderBy都可以使用

    List<Article> articles = _context.Articles
      .FromSql(sql)
      .Include(a=>a.author)
      .ToList();
    
    var searchTerm = ".NET";
    var blogs = context.Blogs
      .FromSql($"SELECT * FROM dbo.SearchBlogs({searchTerm})")
      .Where(b => b.Rating > 3)
      .OrderByDescending(b => b.Rating)
      .ToList();
    

    注意:如果使用字符串串联来动态生成的查询字符串的任何部分,则你将负责验证任何输入,以防止受到 SQL 注入式攻击

    分页

    int pageSize = 10;
    int pageNumber = 2;
    List<Article> articles = _context.Articles
      .AsNoTracking()
      .Skip(pageSize* pageNumber)
      .Take(pageSize)
      .ToList<Article>();
    

    Post:

    添加数据

    使用DbSet.Add方法将添加的实体类的新实例。

    var blog = new Blog { Url = "http://www.vnfan.com" };
    context.Blogs.Add(blog);
    context.SaveChanges();
    

    更新数据

    var blog = context.Blogs.Find("xx");
    blog.Url = "http://www.vnfan.com/blog";
    context.SaveChanges();
    

    删除数据

    var blog = context.Blogs.First();
    context.Blogs.Remove(blog);
    context.SaveChanges();
    

    在单个 SaveChanges 的多个操作

    context.Blogs.Add(new Blog { Url = "http://www.vnfan.com/blog_one" });
    context.Blogs.Add(new Blog { Url = "http://www.vnfan.com/blog_two" });
    
    // update
    var firstBlog = context.Blogs.First();
    firstBlog.Url = "";
    
    // remove
    var lastBlog = context.Blogs.Last();
    context.Blogs.Remove(lastBlog);
    
    context.SaveChanges();
    

    SaveChanges是事务性的,以上代码不需要额外增加任何事务性代码。

    使用连接池

    String connStr = Configuration.GetConnectionString("MySQLConnection");
    services.AddDbContextPool<SalesContext>(builder=> builder.UseMySQL(connStr));
    

    建议尽量使用连接池方式连接数据库。

    展开全文
  • DB2数据库常用查询语句

    千次阅读 2018-08-31 17:00:59
    DB2数据库常用查询: 1、DB2查找存储过程语句,存储过程名字大写 SELECT PROCNAME,TEXT,CREATE_TIME,A. * FROM SYSCAT.PROCEDURES a WHERE PROCNAME = ‘TEST_AAA’ with ur; SELECT TEXT, PROCNAME ,a.* from ...

    DB2数据库常用查询:

    1、DB2查找存储过程语句,存储过程名字大写

    SELECT PROCNAME,TEXT,CREATE_TIME,A. * FROM SYSCAT.PROCEDURES  a WHERE  PROCNAME = 'TEST_AAA' with ur; 
    SELECT TEXT, PROCNAME ,a.* from syscat.procedures a  where  TEXT like  '%TEST_AAA%' with ur;  

    2、DB2数据库查找一个表的索引语句

    SELECT * from syscat.indexes where tabname=upper('TEST_AAA') with ur;

    3、DB2数据库查看属于哪个表空间语句

    SELECT tabname, tbspace from syscat.tables where tabname=upper('TEST_AAA')with ur;

    4、DB2数据库查看函数语句

    SELECT * from syscat.functions where funcschema='TEST_AAA' and funcname='TEST_AAA'  with ur;

    5、DB2数据库查看锁表语句

    SELECT trim(substr(A.TABSCHEMA,1,8))||'.'||substr(A.TABNAME, 1,15) as TABNAME, A.LOCK_MODE,A.DBPARTITIONNUM,A.AGENT_ID, SUBSTR(B.APPL_ID,1,20) AS APPL_ID, B.CLIENT_PID,SUBSTR(CLIENT_PLATFORM,1,8) AS CPLATFORM, SUBSTR(B.CLIENT_NNAME,1,8) AS CLIENT_NAME FROM SYSIBMADM.SNAPLOCK A, SYSIBMADM.APPLICATIONS B WHERE A.AGENT_ID = B.AGENT_ID 
    AND TABNAME=upper('TEST_AAA') with ur;

    6、DB2数据库查看触发器语句

    select TRIGNAME,TEXT,a.* from SYSCAT.TRIGGERS  a  where TEXT  like  '%TEST_AAA%';

    7、DB2数据库查看 包绑定

    SELECT c.pkgname,a.routinename from syscat.routines a,syscat.routinedep b,syscat.packages c where b.routinename=a.specificname and b.bname = c.pkgname and a.routinename in (select a.routinename from syscat.routines a,syscat.routinedep b where b.routinename=a.specificname and b.btype='T' and b.bname='表名') with ur; 

    8、DB2数据库查看表空间大小

    SELECT substr(tbsp_name,1,20) as TABLESPACE_NAME,substr(tbsp_content_type,1,10) as TABLESPACE_TYPE,sum(tbsp_total_size_kb)/1024 as TOTAL_MB, sum(tbsp_used_size_kb)/1024 as USED_MB,sum(tbsp_free_size_kb)/1024 as FREE_MB,tbsp_page_size AS PAGE_SIZE  from SYSIBMADM.TBSP_UTILIZATION where tbsp_name  in ('表空间名') group by tbsp_name,tbsp_content_type,tbsp_page_size with ur;

    9、DB2数据库根据报错找到指定的表和列
    先查询报错的表

    SELECT * FROM SYSCAT.TABLES WHERE TBSPACEID = 10 AND TABLEID =43 with ur;

    再根据表名找到指定列

    SELECT * FROM SYSCAT.COLUMNS WHERE TABNAME= 'TEST_AAA' AND COLNO = 3  with ur;
    展开全文
  • 数据库常用查询命令

    万次阅读 2017-06-19 10:45:39
    数据库不区分大小写新建一个teacher表create table teacher(name varchar(20),sex char(1),birth DATE,birthaddr varchar(20)PRIMARY KEY(name))表的内容包含员工姓名、性别、出生日期、出生城市。由于name、...
  • SQL数据库学习,常用语句查询大全

    万次阅读 多人点赞 2016-02-13 21:09:05
    SQL数据库的大全解析,包括简单查询和多表查询
  • MySQL数据库常用索引

    千次阅读 多人点赞 2020-05-24 23:47:26
    本文关键字:数据库、MySQL、索引的作用、常用索引。在使用数据库的过程中,经常会进行数据的查询。随着数据量的增大,查询的时间会变的原来越长,这就需要合理的建立索引来提高查询效率。
  • 目录 一、数据库操作语句 创建数据库操作 ...最近在进行SQL server数据库的相关学习,所以对该数据库的一些常用的操作语句进行了些总结。在这里和小伙伴们一起分享一下。先从最基本的数据库的操作语句开始。
  • 常用数据库查询语句--个人总结

    千次阅读 2017-02-10 18:13:12
    简单,常用增删改查询语句
  • 目录 数据排序 普通降序或升序排序 仅显示指定行的排序 按照指定条件查询并排序 数据查询 ...今天就接着和大家分享一下在SQL server数据库常用的数据排序、查询等语句分析, 数据排序 .
  • Where子句常用查询条件

    千次阅读 2020-01-08 16:38:03
    IN:IN 操作符允许我们在 WHERE 子句中规定多个值。...EXISTS:用于检查子查询是否至少会返回一行数据,该子查询实际上并不返回任何数据,而是返回值True或False ORDER BY:排序 GROUP BY:分组 HAVING:对分组...
  • django ORM常用查询条件

    千次阅读 2018-12-24 10:57:04
    django ORM常用查询条件 参考https://www.cnblogs.com/Forever77/p/10165158.html 假设一个模型 class Article(models.Model): title=models.CharField(max_length=50) content=models.TextField() class Meta:...
  • 常用数据库排名及分类介绍

    万次阅读 多人点赞 2019-07-10 21:46:20
    DB-Engines:2019年6月全球数据库排行 DB-Engines 数据库流行度排行榜 6 月更新已发布,排名前二十如下:总体排名和上个月相比基本一致,其中排名前三的Oracle、MySQL 和 Microsoft SQL Server 也是分数增加最多的...
  • 来源:我的博客站 OceanicKang |《【ThinkPHP】ThinkPHP5 常用数据库查询语句》 tp_data 数据表 id name status 3 thinkphp 1 4 thinkphp 1 5 thinkphp 1 6 thinkphp 1...
  • 数据库操作常用的词汇

    千次阅读 2018-09-20 11:22:04
    查看当前有哪些数据库 CREATE DATABASE ....;创建数据库 DROP DATABASE......;删除数据库 mysql -u root -p;登录mysql USE ......;使用数据库 CREATE TABLE ...;创建表 PRIMARY KEY 主键约束 FOREIGN KEY ;...
  • 本文主要记录目前比较常用的两种ASP.NET数据库查询和提取模式。 方法一:是利用SQL的查询语句来进行数据库检索,然后利用DataReader提取数据,进行输出。 方法二:是利用ENTITY FRAMEWORK,构建连接,利用Linq语句...
  • MYSQL 数据库常用语句

    万次阅读 多人点赞 2018-01-05 08:28:34
    一 、常用操作数据库的命令 1.show databases; 查看所有的数据库 2.create database test; 创建一个叫test的数据库 3.drop database test;删除一个叫test的数据库 5.show tables; 在选中的数据库之中查看所有的表 ...
  • 常用数据库常用命令使用

    万次阅读 2018-03-28 10:55:13
    SQL:Structured Query Language,结构化查询语言(数据以查询为主,99% 都是在进行查询操作)。SQL 主要分为三种: • DDL:Data Definition Language,数据定义语言,用来维护存储数据的结构(数据库、表),代表...
  • 常用数据库对比

    千次阅读 2018-01-07 11:08:21
    从网上找了点MySQL、Oracle、SqlServer的优缺点: MySql: 优点:  1.支持5000万条记录的数据仓库 ...MyISAM数据库与磁盘非常地兼容而不占用过多的CPU和内存。MySQL可以运行于Windows系统而不
  • 常用内存数据库介绍

    千次阅读 2011-09-09 17:36:09
    1. 内存数据库简介 1.1 概念 一、什么是内存数据库 传统的数据库管理系统把所有数据都放在磁盘上进行管理,所以称做磁盘数据库(DRDB:Disk-Resident Database)。磁盘数据库需要频繁地访问磁盘来进行数据的...
  • IBM的DB2数据库常用命令及查询

    千次阅读 2018-05-10 13:01:00
    2019独角兽企业重金招聘Python工程师标准>>> IBM的DB2数据库常用命令及查询 2017年04月16日 11:57:31 阅读数:3343 1、 打开命令行窗口 #db2cmd 2、 打开控制中心 #db2cmd db2cc 3、 打开命令编辑器 #db2cmd db2ce =...
  • 数据库条件查询及运算符

    千次阅读 2019-04-29 22:08:45
    条件 使用where子句对表中的数据筛选,结果为true的行会出现在结果集中 语法如下: select * from 表名 where 条件; 例: select * from students where id=1; where后面支持多种运算符,进行条件的处理 比较...
  • 常用数据库比较

    千次阅读 2007-08-14 16:25:00
    常用数据库比较|中国IT实验室常用数据库比较. unknown 2002-6-29 保存本文 · 推荐给好友 QQ上看本站 收藏本站. 目前,商品化的数据库管理系统以关系型数据库为主导产品,技术比较成熟。面向对象的数据库管理系统...
  • 数据库基础(常用SQL语句)

    万次阅读 多人点赞 2019-10-07 13:49:59
    一、数据库级及SQL语言简介 1、目前主流数据库 微软:sql server、access 瑞典:mysql ibm: db2 ...DQL-------------数据查询语言 select … From … Where DML-------------数据操纵语言 insert、upda...
  • 解决办法就是做数据库分页查询,分批返回数据,以下是我在做项目中常用的2种数据库分页方式。 一、跳过多少条取多少条(使用关键字top) declare @pageCount int --页数 declare @pageNo int --页码 declare @...
  • DM达梦数据库常用命令整理

    千次阅读 2020-09-10 17:05:12
    命令设计的均为简单的命令,即查询,创建,定义等方式成功即可,不涉及复杂的限制参数,参考条件等。此次使用的为DM V8单实例数据库,不涉及特殊模式下,个别特殊命令的查询。 一:数据库相关命令 查询实例信息 SQL&...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 304,980
精华内容 121,992
关键字:

常用的查询条件有哪些数据库