查询数据库里所有表名和字段名的语句

本文提供多种数据库中查询所有表名及字段名的方法,包括SQL Server、Oracle、Access等,涵盖查询表结构、字段类型及长度等实用SQL语句。

查询数据库里所有表名和字段名的语句

SQL 查询所有表名:
SELECT NAME FROM SYSOBJECTS WHERE TYPE='U'
SELECT * FROM INFORMATION_SCHEMA.TABLES
查询表的所有字段名:
SELECT NAME FROM SYSCOLUMNS WHERE ID=OBJECT_ID(' 表名' )
SELECT * FROM INFORMATION_SCHEMA.TABLES
SELECT * FROM INFORMATION_SCHEMA.VIEWS
SELECT * FROM INFORMATION_SCHEMA.COLUMNS
ORACLE 查看所有表名:
SELECT TABLE_NAME FROM USER_TABLES
ACCESS 查看所有表名:
SELECT NAME FROM MSYSOBJECTS WHERE TYPE=1 AND FLAGS=0
MSYSOBJECTS 是系统对象,默认情况是隐藏的。通过工具、选项、视图、显示、系统对象可以使之显示出来。

SQL Server数据库结构导出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 (SELECT count(*) FROM sysobjects 

WHERE (name in 

(SELECT name 

FROM sysindexes 

WHERE (id = a.id) AND (indid in 

(SELECT indid 

FROM sysindexkeys 

WHERE (id = a.id) AND (colid in 

(SELECT colid 

FROM syscolumns 

WHERE (id = a.id) AND (name = a.name))))))) AND 

(xtype = 'PK'))>0 then '√' else '' end) 主键, 

b.name 类型, 

a.length 占用位元组数, 

COLUMNPROPERTY(a.id,a.name,'PRECISION') as 长度, 

isnull(COLUMNPROPERTY(a.id,a.name,'Scale'),0) as 小数位数, 

(case when a.isnullable=1 then '√'else '' end) 允许空, 

isnull(e.text,'') 默认值

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 

order by a.id,a.colorder 

SQL Server数据库某一个表的表结构(字段名称,字段类型,长度)

select sc.name as 字段名,st.name as '数据类型',sc.length As 长度

from syscolumns sc,systypes st 

where sc.xtype=st.xtype

and sc.id in(

select id from sysobjects where xtype='U' and name='表名');

向达梦数据库(DM8)中的插入数据时,可以使用 `INSERT INTO` 语句。该语句允许为的特定字段插入指定值,也可以在不指定字段的情况下插入完整的行数据。以下是几种常见的插入数据的方式: ### 插入完整行数据 如果需要向中插入完整的行数据,则可以使用如下语法: ```sql INSERT INTO <> VALUES (<值1>, <值2>, ..., <值n>); ``` 例如,假设存在一个为 `CUSTOMER` 的,包含 `ID`、`NAME` `EMAIL` 三个字段,插入完整行数据的语句如下: ```sql INSERT INTO CUSTOMER VALUES (1, '张三', 'zhangsan@example.com'); ``` ### 插入指定字段数据 如果只需要向的部分字段插入数据,则可以显式指定目标字段,语法如下: ```sql INSERT INTO <> (<字段1>, <字段2>, ..., <字段n>) VALUES (<值1>, <值2>, ..., <值n>); ``` 例如,假设 `CUSTOMER` 中 `ID` 字段为自增列,插入数据时仅需指定 `NAME` `EMAIL` 字段: ```sql INSERT INTO CUSTOMER (NAME, EMAIL) VALUES ('李四', 'lisi@example.com'); ``` ### 插入多行数据 达梦数据库支持一次性插入多行数据,语法如下: ```sql INSERT INTO <> VALUES (<值1>, <值2>, ..., <值n>), (<值1>, <值2>, ..., <值n>), ... ; ``` 例如,向 `CUSTOMER` 中一次性插入多条记录: ```sql INSERT INTO CUSTOMER VALUES (2, '王五', 'wangwu@example.com'), (3, '赵六', 'zhaoliu@example.com'); ``` ### 从其他中插入数据 还可以通过 `INSERT INTO ... SELECT` 的方式,将其他中的数据插入到目标中。这种方式常用于数据迁移或批量导入操作。语法如下: ```sql INSERT INTO <目标> [(<字段1>, <字段2>, ..., <字段n>)] SELECT <字段1>, <字段2>, ..., <字段n> FROM <源> [WHERE <条件>]; ``` 例如,将 `TEMP_CUSTOMER` 中的数据插入到 `CUSTOMER` 中: ```sql INSERT INTO CUSTOMER (ID, NAME, EMAIL) SELECT ID, NAME, EMAIL FROM TEMP_CUSTOMER WHERE STATUS = 'ACTIVE'; ``` ### 注意事项 1. 插入数据时,必须确保字段的数据类型与值的数据类型匹配。 2. 如果字段设置了主键约束或唯一性约束,插入重复值会导致错误。 3. 对于自增字段(如 `IDENTITY`),插入数据时可以省略字段名值,系统会自动生成相应的值。 4. 在批量插入时,建议使用事务处理,以确保数据一致性完整性。 ### 示例代码 以下是一个完整的插入数据示例,包括插入单行、多行以及从其他插入数据: ```sql -- 插入单行数据 INSERT INTO CUSTOMER (NAME, EMAIL) VALUES ('陈七', 'chenqi@example.com'); -- 插入多行数据 INSERT INTO CUSTOMER VALUES (4, '周八', 'zhouba@example.com'), (5, '吴九', 'wujiu@example.com'); -- 从其他插入数据 INSERT INTO CUSTOMER (ID, NAME, EMAIL) SELECT ID, NAME, EMAIL FROM TEMP_CUSTOMER WHERE STATUS = 'ACTIVE'; ``` 通过上述方法,可以灵活地向达梦数据库中的插入数据,满足不同的业务需求[^1]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值