用sql获取数据库中所有的表名的方法:
1、oracle下:select table_name from all_tables;
2、MySQL下:select table_name from information_schema.tables where table_schema='csdb' and table_type='base table';
3、sql server下:select name from sys.tables go
㈡ SQL实战新手入门:获取数据-SELECT语句(1)
获取数据 SELECT语句( )
现在MYLIBRARY表中已经有了数据 可以对该表执行查询 以精确地查找所具有的图书 SELECT语句用于从表中获取数据 要使用SELECT语句获取数据 只需要告诉它表名和列名
SELECT all_my_books FROM myLibrary;
尽管该查询可以产生一个图书信息的列表 但它还不是特别有用 该图书信息是一大堆的数据 将其存储在一个关系型数据库中的唯一好处就是可以轻而易举地重新获取或打印这些信息 如果要搜索数据呢?要查找是否有某一本特定的图书 必须获取所有的记录 然后人工地逐一遍历每一条记录!这并不是我们期望从一个复杂的RDBMS软件获得的结果
需要采用某种办法来标识存储在表中的记录的特殊关键词 例如图书名称或ISBN号 对于该问题 一个标准的程序设计方式的答案就是对记录进行解析 将记录切分为多个片段 并在一个循环中遍历查找特定的目标词汇 对于表中的每一条记录重复执行这一过程 如果没有特定于厂商的过程化扩展 SQL无法执行任何类似的操作 这种方式违背了SQL语言是一种声明性语言的本质 并要求深刻地理解数据结构 下面让我们再看一看输入到MYLIBRARY表中的第一条记录
SQL Bible by Alex Kriegel Boris M Trukhnov Paperback: pages
Publisher: Wiley; edition (April ) Language: English
ISBN :
如何才能将记录切分为不同的信息片段呢?每一个片段之间的标记是什么呢?如何区分图书的名称和作者呢?如果使用空格符作为分隔符 那么SQL和Bible将被切分为不同的片段 但在逻辑上SQL和Bible属于同一个信息片段 如何才能知道by是一个介词 而不是作者姓名中的一部分?解决的办法来自SQL结构化的本性 毕竟SQL是一种结构化的查询语言 要解决这一问题 需要更多的列来存储不同片段的信息 将一个笨重的字符串拆分为多个语义上有着密切联系的数据片段就可以独立地标识每一个数据片段 因为每一个片段都成为一个单独的列 回到CREATE TABLE语句(首先删除现有的表)
DROP TABLE myLibrary;
根据上面的讨论创建一个新表
CREATE TABLE myLibrary
(
title VARCHAR( )
author VARCHAR( )
author VARCHAR( )
publisher VARCHAR( )
pages INTEGER
publish_date VARCHAR( )
i *** n VARCHAR( )
book_language VARCHAR( )
)
在新表的结构中 将原来的单个列拆分为 个列 另外还可以添加第 个列 将作者的名和姓拆分到两个单独的列中(这就是将在第 章中讨论的数据建模过程) 就目前而言 除了将PAGES列的数据类型设置为INTEGER类型以表示图书包含多少页之外 对于其他所有的列都使用了相同的数据类型 并缩短了每一个列中所能包含的字符数量 本章后面将进一步解释将PAGES列设置为INTEGER类型的原因 读者或许还会考虑到修改PUBLISH_DATE列的数据类型 通常情况下 日期数据的行为与字符数据不同 DBMS提供了专门用于日期和时间的数据类型
现在 无须将所有的数据都保存在同一个桶中 对于各个列的数据类型可以有更多的选择 可以将不同的列定义为不同的数据类型 当插入或更新各个列中的数据(本章后面将对此进行介绍)时 建议不要将数据类型搞混
本章后面还将重新审视数据类型 第 章也将详细地介绍数据类型
读者可能已经注意到 在新的MYLIBRARY表中有两个作者列 这是为了适应一本图书有两个作者的情形 这也提出了另外一个问题 当一本图书只有一个作者或者一本图书有 个作者时 该如何处理呢?该问题将在第 章和第 章的数据建模小节中进行深入的探讨 这里 读者只需要注意对于未使用的列将自动使用默认值进行填充 如果读者发现经常需要在表中添加新的列 那么最好花时间阅读一下关于数据库规范化方面的内容(请参见第 章)
接下来将向新表中插入数据 这一步骤与之前介绍的插入操作完全相同 唯一的差别在于VALUES列表变得更长 因为原来只包含一个列 而现在包含了 个列 在VALUES列表中 除了PAGES列的值之外 所提供的所有其他数据都必须用单引号括起来 引号表明了这些数据是字符数据 没有引号则表示数值数据
INSERT INTO myLibrary VALUES (
SQL Bible
Alex Kriegel
Boris M Trukhnov
Wiley
April
English )
返回目录 SQL实战新手入门
编辑推荐
Oracle索引技术
高性能MySQL
lishixin/Article/program/SQL/201311/16484
㈢ 如何用SQL语言从wincc数据库获取数据,实时获取与获取保存的数据有什么区别
步骤1:在SQLSERVER中设一个远程登陆的账号sa, 密码也设置xxx(自己定)
(SQL配置管理器中,把通信协议TCP/IP相关的服务都启用
在SQL中,安全性---登陆账号---SA的属性---状态—启用授权登陆和允许访问SQLSERVER引擎 )
以上设备和配置保证模仿远程用户来我这个计算机SQLSEVER服务器访问数据库.
二 载入系统的类包/名字空间
using System.Data;
using System.Data.SqlClient;
三 建立连接对象sqlconnection 专门负责与数据库服务器连接
四 定义一个sqldatareader对象,专门从数据库指定表中读出数据
五 定义一个SQL查询命令对象 sqlcommand ,让它负责从数据库去操作读,并把读到结果数据交给sqldatareader对象
protected void Button1_Click(object sender, EventArgs e)
{
String mys = "xxxx;database= xxxx; User ID=xxx;pwd=xxxx;Trusted_Connection=no"; //连接串
SqlConnection myc = new SqlConnection(mys); //定义一个连接对象myc,负责去连接mys串定义的服务器和数据库
myc.Open();
Response.Write("连接成功");
//准备读出数据
SqlDataReader myread;
string sql="查询语句";
SqlCommand mycom = new SqlCommand(sql , myc);
//定义mycom,在myc这个数据连接中去执行指定的select查询命令
myread = mycom.ExecuteReader(); //把mycom的执行查询的结果数据交给myread
while (myread.Read()) //遍历表中的所有行,read( )一次,可读一行,往下跳
{
//从查询结果中取一行出来
for (int i = 0; i <myread.FieldCount ; i++)
Response.Write(myread[i].ToString());
Response.Write("<br>");
}
myc.Close();
}
㈣ 怎么用Sql语句获取一个数据库中的所有表的名字
在程序中通过sql语句查询来获得某个数据库的所有表名,代码如下:
SELECT
table_name
FROM
information_schema.tables
WHERE table_schema = 'mydatabasename'
AND table_type = 'base table'
(4)sql自动获取数据库扩展阅读
1,利用sys.tables目录视图查询所有表的名字,sys.tables目录视图为每个表对象返回一行. 示例语句如下:
select * from sys.tables
注意:sys.tables目录视图也只有在SQL SERVER2005及以上的版本中才能使用。
2,利用存储过程sp_tables sp_tables存储过程,可返回可在当前环境中查询的对象列表。这代表可在FROM子句中出现的任何对象。 我们可以执行如下语句:
exec sp_tables
在结果集中筛选出所有TABLE_TYPE等于TABLE的记录就是表信息了。
㈤ 用sql语句怎么从数据库中提取结果
1、我们首先在创建一个WEB页面,用EF导入数据库中的一个实体模型,然后创建一个按钮,点击按钮以后用EF向数据库中执行insert操作。