什么是数据库 数据库( Database )是按照数据结构来组织、存储和管理数据的仓库 数据库可以分为 2 大种类 关系型数据库( 常用 ) 对象型数据库
常用关系型数据库
PC 端: Oracle 、 MysqL 、 sql Server 、 Access 、 DB2 、 Sybase 嵌入式 \ 移动客户端 : sqlite
数据库存储数据的步骤
新建一张表( table ) 添加多个字段( column ,列,属性) 添加多行记录( row ,每行存放多个字段对应的值)
关于sql
在程序运行过程中,要想 *** 作(增删改查,CRUD)数据库中的数据,必须使用sql语句
DDL 数据定义语言
命令 描述
create 创建一个张新的表, 一个新的视图或者数据库里的其它对象
alter 修改数据库中的某个已有的数据库对象, 比如:可以修改一个表的结构
drop 删除整个表,删险视图,或者删除数据库中的其它数据库对象
DML 数据 *** 作语言
命令 描述
insert 创建或者说是插入一条新的记录
update 修改表中的记录
delete 删除表中的记录
DQL 数据查询语言
命令 描术
select 从一个表或者是多个表中检索某些记录。
创建一张表:表名为Person
create table Person (ID_P int,Lastname varchar(255),Firstname varchar(255),Address varchar(255),City varchar(50));
创建表的时候生成主键,并且主键值自动增加
create table t_person (ID integer primary key auto increment,Lastname archer,)
向表Person插入一条数据
INSERT INTO 表名称 VALUES (值1,值2,....)
INSERT INTO table_name (列1,列2,...) VALUES (值1,....)
insert into Person values (100,'Gates','Bill','xuanwumen 10','beijing');
insert into Person (Lastname,Address) values (’xiaosan’,‘beijing’);
从表Person中查询数据
select * from Person; //从表Peson里查询所有字段的所有数据
select Lastname,Firstname from Person ; //从表Peron里查义字段为Lastname,Firsname的所有记录的数据。
select * from Person where Lastname = 'Gates'; //根据指定的条件,从表Person里查询相对应的数据,where后面跟的就是条件。
排序
select Lastname,Firstname from Person where age >= 18 order by age asc;//(order by)排序 sac表示升序 desc表示降序
select Lastname,Firstname from Person where age >= 18 order by age asc, num asc; //先按照age排序, 如果num相同, 则按照num排序
limit 常用来做分页查询。
使用limit可以精确地控制查询结果的数量,格式
select * from 表名 limit 数值1, 数值2;
select *from person limit 4,8; 可以理解为, 跳过最前面的4条数据, 然后再取8条数据。
从表Person中删除行数据
delete from Person where Lastname='san'; //指的是将表Peson里Lastname等san的这一行数据删除。
delete from Person //删表Person中的所有数据
delete * from Person //在标准SQL语句也表示删除表Person的所有数据。 但是在**sqlite**里不能使用这个种语方法。
删除表格
drop table Person;//功能是删除整张表格
更新(更改)表Peson里的数据
update Person set Lastname='qingyun' where Firstname='Bill';//更新表Person Firstname='Bill' 这条数据的Lastname为新值'qingyun'
update Person set Lastname='henan',Firstname='zhengzhou' where ID_P = 200; //按照条件,ID_P=200,修改这条数据的两个字段值,Firstname改为zhengzhou,Lastname 改为'henan'
在sqlite数据库里, 更新表结构
alter table Person add Age int; //更新Person表结构, 功能是添加新的一列
注意的是:标准sql里可以使用alert关键字来达到删除一列, 修改列名和列类型的功能。但是在sqlite环境里, 是不支持。
条件语句:
where
下面的运算符可在 WHERE 子句中使用:
*** 作符 | 描述 |
等于 | |
不等于 | |
大于 | |
小于 | |
大于等于 | |
小于等于 | |
在某个范围内 | |
搜索某种模式 |
select count (*) from person; 查询表里一共有多少条数据;
select * from person limit 2; 限制每次查询的列数(即 条数)为2条;
简单约束:
建表时可以给特定的字段设置一些约束条件,常见的约束有
not null:规定字段的值不能为null
unique:规定字段的值必须唯一
default:指定字段的默认值
(建议:尽量给字段设定严格的约束,以保证数据的规范性)
示例
createtablet_student(IDinteger,nametextnotnullunique,ageintegernotnulldefault1) ;
name字段不能为null,并且唯一
age字段不能为null,并且默认为1
外键约束:
利用外键约束可以用来建立表与表之间的联系
外键的一般情况是:一张表的某个字段,引用着另一张表的主键字段
新建一个外键
create tablet_student (IDinteger primary keyautoincrement, name text,age integer,class_ID integer,constraint fk_t_student_class_ID_t_class_IDforeign key(class_ID) (ID)) ;referencest_class
t_student表中有一个叫做fk_t_student_class_ID_t_class_ID的外键
这个外键的作用是用t_student表中的class_ID字段引用t_class表的ID字段
sqlite3 终端简单 *** 作:
.save + sql文件名, 保存到文件。
.show 展现数据的状态
.shell + 终端命令, 可以查看当前位置, 文件等;
.mode 改变数据展现样式
.headers
.output 如果加个文件夹, 输出的内容到文件夹, 如果不加, 标准输出到屏幕;
tableS 如果不指定表名, 则表示列出当前数据库里所有的表名, 如果指定了表名(可以使用通配符),则是列出当前数据库与指定的在模式匹配的表名。
schema 如果指定了表名,则可以列出创建此表的SQL语句, 如果不指定表名, 则会列出当前数据库所有表的表结构(以SQL语句形式列出)
read 后面跟文件名, 意思是读取文件里的SQL语句, 并执行。 总结
以上是内存溢出为你收集整理的SQLite3 学习总结全部内容,希望文章能够帮你解决SQLite3 学习总结所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)