sqlite查看所有表名及字段名,及判断是否存在的方法
2016-03-14 11:27
597 查看
sqlite查看所有表名及字段名
select name fromsqlite_master where type='table' order by name;
我们可以通过如下语句查看这个内建表的所有记录
select * fromsqlite_master;
由此可以进一步引申:判断指定的表是否存在,可以用如下语句:
selectcount(*) from sqlite_master wheretype='table' and name = 'yourtablename';
其中yourtablename表示你要判断的表名,如果查询结果大于0,表示该表存在于数据库中,否则不存在。
PRAGMA table_info([tablename])
比如:我想查看表catalog的所有列信息,可以用下述代码,结果如图所示:
PRAGMA table_info(catalog)
命令:ALTER TABLE table-name ADD COLUMN column-namecolumn-type
例如:在student表中添加一列名为name,类型为varchar:
alter table student add column name varchar;
alter table catalog add column xxx1 char(20) default '';
alter table student drop column name // 该行在SQlite中不能用,SQlite不支持drop
可采用如下思路,类似于swap()函数的过程。
比如我有表A,A中有x、y、z三列。我要将表A中的x列删掉。那么,
第1步,新建一个表B,B中含有y、z两个字段,且类型与A中的y、z类型相同。
第2步,将A中的所有y、z两列的值拷贝到B中。
上面两步使用一句命令即可完成
create table B asselect y,z from A
注意,如果A中y的类型为char,则上面create命令会在B中创建类型为TEXT的y列。即char类型会被改变。
第3步,将A表删除
drop table ifexists A
第4步,将B重命名为A
alter table Brename to A
create table B as select y,z from A
1. 查询与判断表
查询sqlite中所有表,可用如下sql语句。原理是,sqlite中有一个内建表sqlite_master,这个表中存储这所有自建表的表名称等信息。select name fromsqlite_master where type='table' order by name;
我们可以通过如下语句查看这个内建表的所有记录
select * fromsqlite_master;
由此可以进一步引申:判断指定的表是否存在,可以用如下语句:
selectcount(*) from sqlite_master wheretype='table' and name = 'yourtablename';
其中yourtablename表示你要判断的表名,如果查询结果大于0,表示该表存在于数据库中,否则不存在。
2. 查询与判断列
通过以下语句可查询出某个表的所有字段信息PRAGMA table_info([tablename])
比如:我想查看表catalog的所有列信息,可以用下述代码,结果如图所示:
PRAGMA table_info(catalog)
3. Sqlite中新增、删除、重命名列
3.1 新增一列
方法:使用sql命令命令:ALTER TABLE table-name ADD COLUMN column-namecolumn-type
例如:在student表中添加一列名为name,类型为varchar:
alter table student add column name varchar;
alter table catalog add column xxx1 char(20) default '';
3.2 删除一列
方法:由于drop命令在sqlite中不可用于删除列,alter table student drop column name // 该行在SQlite中不能用,SQlite不支持drop
可采用如下思路,类似于swap()函数的过程。
比如我有表A,A中有x、y、z三列。我要将表A中的x列删掉。那么,
第1步,新建一个表B,B中含有y、z两个字段,且类型与A中的y、z类型相同。
第2步,将A中的所有y、z两列的值拷贝到B中。
上面两步使用一句命令即可完成
create table B asselect y,z from A
注意,如果A中y的类型为char,则上面create命令会在B中创建类型为TEXT的y列。即char类型会被改变。
第3步,将A表删除
drop table ifexists A
第4步,将B重命名为A
alter table Brename to A
3.3 重命名一列
方法:与删除一列相同,在sqlite中alter同样无法重命名一列。如果想重命名,那么思路与删除一列相同。4. Sqlite中新增、删除、重命名表
Sql语句在3.2中已有。整理如下。4.1 新增表
create table A(id char(20),channeltext,name text,primary key (id))create table B as select y,z from A
4.2 删除表
drop table if exists A4.3 重命名表
alter table B rename to A相关文章推荐
- Change MySQL default character set to UTF-8 in my.cnf?
- db2与oracle区别
- sqlite3---代码操作
- MySQL——启动后停止——错误编码3534
- 1、利用jdbc,连接mysql数据库
- Oracle EBS查看别人提交请求的输出
- Redis 缓存 + Spring 的集成示例
- mysql slave从库负载均衡方案选择
- DB理论--数据库泛型和设计
- oracle归档日志满所引发的问题及解决
- JMeter2.13 连接 sql server
- MONGODB 2.6.8 的一个BUG [Assertion: 13548:BufBuilder attempted to grow() to 134217728 bytes, past the ]
- 如何让plsql查询的数据可编辑
- mysql被sql注入的一次打脸经历
- Redhat5.8 环境下编译安装 Redis 并将其注册为系统服务
- oracle11g导出数据库不完善问题解决
- activiti工作流数据库表详细介绍(23张表)
- 数据库之三范式
- MySQL5.7 Replication主从复制配置教程
- Redis3.0.7 cluster/集群 安装配置教程