SQLite 入门教程(二)创建、修改、删除表
一、数据库定义语言 DDL
在关系型数据库中,数据库中的表 Table、视图 View、索引 Index、关系 Relationship 和触发器 Trigger 等等,构成了数据库的架构 Schema。 在 SQL 语句中,专门有一些语句用来定义数据库架构,这些语句被称为“数据库定义语言”,即 DDL。
SQLite 数据库引擎支持下列三种 DDL 语句:
- CREATE
- ALTER TABLE
- DROP
其中,CREATE 语句用来创建表 Table、视图 View、索引 Index、关系 Relationship 和触发器 Trigger, DROP语句用来删除表 Table、视图 View、索引 Index、关系 Relationship 和触发器 Trigger, ALTER TABLE 语句用来改变表的结构。
今天这一篇只涉及到表的相关内容,视图、触发器等到后面再讲。
二、SQLite 中的数据类型
SQLite 数据库中的数据一般由以下几种常用的数据类型组成:
- NULL - 空值
- INTEGER - 有符号整数
- REAL - 浮点数
- TEXT - 文本字符串
- BLOB - 二进制数据,如图片、声音等等
SQLite 也可以接受其他数据类型。
三、创建表 CREATE TABLE
首先,创建一个 test.db 数据库并进入 SQLite 命令行环境,还记得怎么做吗?
myqiao@ubuntu:~$ sqlite3 test.db -- Loading resources from /home/myqiao/.sqliterc SQLite version 3.7.4 Enter ".help" for instructions Enter SQL statements terminated with a ";" sqlite> .tables sqlite>
向上面这样,我们就在终端中创建了一个 test.db 数据库, 并且通过 .tables 命令查询数据库中的表,结果没有任何返回, 因为数据库本来就是空的嘛。
下面我们创建一个 Student 表,其中包含 Id、Name、Age 等字段.
sqlite> sqlite> CREATE TABLE Students(Id integer,Name text,age integer); sqlite> .tables Students sqlite> .schema Students CREATE TABLE Students(Id integer,Name text,age integer); sqlite>
向上面这样,一个 Students 表就被建立了,这回再运行 .tables 命令就有响应了, 系统告诉我们数据库中现在有一个 Students 表, 运行 .schema 命令,返回了我们创建这个表的 SQL 命令。
四、修改表 ALTER TABLE
SQLite 仅仅支持 ALTER TABLE 语句的一部分功能, 我们可以用 ALTER TABLE 语句来更改一个表的名字,也可向表中增加一个字段(列), 但是我们不能删除一个已经存在的字段,或者更改一个已经存在的字段的名称、数据类型、限定符等等。
- 改变表名 - ALTER TABLE 旧表名 RENAME TO 新表名
- 增加一列 - ALTER TABLE 表名 ADD COLUMN 列名 数据类型 限定符
下面我们来演示一下,将前面的 Students 表的名字改为 Teachers
sqlite> sqlite> .tables Students sqlite> ALTER TABLE Students RENAME TO Teachers; sqlite> .tables Teachers sqlite>
原来数据库中只有一个 Students 表,改名以后再运行 .tables 命令,发现 Students 表已经没了,现在变成了 Teachers 表。
下面改变 Teachers 表的结构,增加一个 Sex 列
sqlite> sqlite> .schema Teachers CREATE TABLE "Teachers"(Id integer,Name text,age integer); sqlite> ALTER TABLE Teachers ADD COLUMN Sex text; sqlite> .schema Teachers CREATE TABLE "Teachers"(Id integer,Name text,age integer, Sex text); sqlite>
五、删除表 DROP TABLE
删除一个表很简单,只要给出表名即可
- 删除表 - DROP TABLE 表名
下面,我们将 test.db 中的 Teachers 表删除
sqlite> sqlite> .tables Teachers sqlite> DROP TABLE Teachers; sqlite> .tables sqlite>
删除 Teachers 表后再运行 .tables 命令,发现数据库已经空了。
六、后续内容
其实创建一个表远没有这么简单,表的每一列可以有很多限定符,比如主列、非空、限制、默认值、唯一、键等等,这些内容留到下一篇吧
//===================================================================================================
转自:http://www.cnblogs.com/myqiao/archive/2011/07/12/2103527.html
SQLite 入门教程(二)创建、修改、删除表相关推荐
- MySQL进阶11--DDL数据库定义语言--库创建/修改/删除--表的创建/修改/删除/复制
/*进阶 11 DDL 数据库定义语言库和表的管理一:库的管理:创建/修改/删除二:表的管理:创建/修改/删除创建: CREATE DATABASE [IF NOT EXISTS] 库名;修改: al ...
- Mysql创建修改删除-表
创建表之前要链接到库 例如 库名为 student use student; 连接结束可以查看此库中所有表 show tables; 创建表 create table student(id int ...
- SharePoint 2013 入门教程之创建页面布局及页面
原文:SharePoint 2013 入门教程之创建页面布局及页面 在SharePoint的使用过程中,页面布局和页面时很重要的两个概念,主要用于数据个性化展示,下面,我们简单介绍一下SharePoi ...
- LittleVGL (LVGL)干货入门教程二之LVGL的输入设备(indev)API对接。
LittleVGL (LVGL)干货入门教程二之LVGL的输入设备(indev)API对接 前言: 阅读前,请确保你拥有以下条件: 你已经完成"显示API"的移植. 你已经实现了一 ...
- c语言类似于 n的标识符,C语言快速入门教程(二)
C语言快速入门教程(二) C语言的基本语法 本节学习路线图: 引言: C语言,顾名思义就是一门语言,可以类比一下英语; 你要说出一个英语的句子需要: 单词 + 语法! 将单词按照一定的语法拼凑起来就成 ...
- 微信小程序云开发 初学者入门教程二
微信小程序云开发 初学者入门教程二-前端操作数据库模块 如何操作数据库,作为一名前端,如果对数据的知识不够熟悉也没关系,从现在开始好好学习就行,数据库的操作内容差不多涉及增删改查四大模块,花一些业余的 ...
- python爬虫入门教程(二):开始一个简单的爬虫
2019/10/28更新 使用Python3,而不再是Python2 转载请注明出处:https://blog.csdn.net/aaronjny/article/details/77945329 爬 ...
- mysql利用触发器删除数据库_[数据库]mysql 触发器的创建 修改 删除
[数据库]mysql 触发器的创建 修改 删除 0 2015-12-16 23:00:04 //做一个简单的练习,创建一个简单的触发器 完成添加文章的时候,自动加上时间,默认作者 为 '日记本的回忆' ...
- ActiveReports 报表控件官方中文入门教程 (2)-创建、数据源、浏览以及发布
ActiveReports 报表控件官方中文入门教程 (2)-创建.数据源.浏览以及发布 原文:ActiveReports 报表控件官方中文入门教程 (2)-创建.数据源.浏览以及发布 本篇文章将阐述 ...
- R语言七天入门教程二:认识变量与运算符
R语言七天入门教程二:认识变量与运算符 一.什么是变量 1.变量 顾名思义,我们可以将变量理解为"可以改变的量",是计算机语言中能储存计算结果或能表示值的抽象概念.这里的值可以是数 ...
最新文章
- nginx服务器access_log日志分析及配置详解
- python接收邮件g_Python接收Gmail新邮件并发送到gtalk的方法
- GPU(CUDA)学习日记(十一)------ 深入理解CUDA线程层次以及关于设置线程数的思考
- LeetCode 75. Sort Colors (python一次遍历,模拟三路快排)
- 31.CSS3变形效果【下】
- 注入代码oracle
- git/github使用完整教程(2)分支
- 中年高校教师、行政人员的21个特征!
- 基于python+django框架+Mysql数据库的电影院售票选座系统设计与实现
- 站斧超级浏览器风控系统助力Lazada商家安全管理
- 如何处理图片放大后变模糊的情况?
- python requests 代理ip被禁_python requests 测试代理ip是否生效
- 用python做生信_1 python生信入门
- Android dex2jar反编译dex文件报错 Detail Error Information in File .\classes-error.zip
- php 按钮外观怎么改变,php 按钮样式
- SystemVerilog芯片验证 SV语言部分(一)
- ZZULIOJ-1035,分段函数求值(Python)
- 用Python Matplotlib实现可视化混沌系统
- 【2010强悍教程】一次性永远激活7290自带浏览器上网和彩信收发功能,不能上网的进。...
- gitee图库无法访问(2022.3.25)的解决办法
热门文章
- 北邮计算机学不学单片机,北邮小学期PC单片机.docx
- 计算机操作鉴定所需设备,计算机操作员职业技能鉴定标准(高级)
- linux java tar 卸载_linux下jdk的卸载与安装
- c语言野指针和空指针,C++中的空指针和野指针
- ubuntu查看默认python版本_ubuntu中修改默认Python版本号
- pytorch使用清华源安装仍失败解决方案
- Flink 分别读取kafka和mysql作为source
- 碎碎念 | 投资理财那些事
- Python 的 heapq 模块源码分析
- 为了追到小姐姐,我用 Python 制作了一个机器人