数据存储的几种方式

---恢复内容开始---

iOS有四种数据持久化的方式

1.属性列表(plist文件)

2.对象归档(NSKeyedArchiver , NSKeyedUnarchiver)

//3.偏好设置(NSUserDefault)

4.SQLite 数据库

5.CoreData

持久化方式的比较:

1.属性列表、对象归档适合小数据量存储和查询操作

2.SQLite CoreData 适合大数据量的存储和查询操作

一、SQLite的使用

1.简要说明: SQlite 是一个开源的、内嵌式的关系型数据库。它是最初发布于2000年,在便携性、易用性、紧凑型、有效性和可靠性方面有很大的突破;

2.SQLite数据库结构简单 ,适用于嵌入式 小型应用

二、SQL语句

数据定义语句(DDL :Data Definition Language)

  其语句包括动词Creat(创建表)Drop (删除表)

数据操作语言(DML:Data Manipulation language)

其语句包括 Insert(插入行)、update(修改行)、delete (删除)

数据查询语句 (DQL : Data Query language)

其语句包括 select 用于查询数据

详细说明:

表的创建: 

creat table 表名 (字段名1 字段类型1,字段名2 字段类型2....);

creat table if not exists 表名 (字段名1 字段类型1,字段名2 字段类型2.......);

 实例: creat table t_student (id integer, name text,age integer);

删表:

drop table 表名;

例: drop table t_person

SQLite 将数据的存储划分为以下几种存储类型:

1.NULL :表示该值为NULL值

2.INTEGER:无符号

 3.REAL :浮点值

4.TEXT :文本字符串

5.BOOL :二进制数据

简单约束:

建表的时候可以给特定的字段设置一些约束条件 :

1.  用not null 指定字段的值不能为空

2.用unique 指定字段的值必须唯一

3.用default 指定字段的默认值

实例: creat table t_student(id integer,name text not null unique,age integer not null  default 1)

 表示: name 字段的值不能为空  ,并且唯一

age 字段:的值为null ,并且默认值是1;

    DML 语句

插入数据(insert  into)

 1.语法: insert into 表名 (字段一,字段二,。。。。。)values(值一,值二,。。。。。。)

2.举例: insert into t_tudent(name,age)values(“peter”,“20”);

3.注意:数据库的字符串的内容应该用单引号或是双引号

更新数据(update)

1.语法: update 表名 set 字段1 = 字段1 的值 ,字段2 = 字段2的值;

2.举例: update t_student set name = “peter”,age = 12;

3.注意:这里会将t_student中的所有记录的名字全部改成peter ,年龄全部改成12;

删除数据(delete)

1.语法 :delete from 表名

2.举例: delete from t_student 

3.注意:这里会将t_student表中的记录都删掉

       条件语句

如果只想更新或者删除某些固定的记录,那就必须在DML语句后面加上一些条件限制

条件语句的格式如下:

1.where 字段 =  某个值 and 字段 >某个值 //and 相当于&&

2.where 字段 = 某个值 or 字段 = 某个值 //or 相当于 ||

条件举例:

1.将年龄大于10并且姓名不等于jack的记录年龄都改为5;

update t_student age = 5 where age >10 and name != "jack";

2.删除年龄小于等于 10 或年龄大于30 的记录

delete from t_student where age <=10 or age>=30;

DQL语句 (查询语句)

1.查询格式:

select 字段一,字段二,from 表名;

select name,age,from t_student;

2.如果想查询所有字段可以用:

select *from 表名;

select *from t_student;

3.也可以添加设置条件语句

select * from t_student where age>20;

4.计算记录的数量 可以用count(字段)或者count(*)

select count(*)from t _student;

select count (age)from t_student where height <1.80;

5.排序语法:

1. 查询出来的结果用order by 进行排序

select *from t_student order by 字段;

例:select *from t_student order by age;

2.  默认情况下是按照升序进行排序的 (由小到大)

实例; select *from t_student order by age desc;//降序、

  select *from t_student order by age asc;//升序(默认的)

限制查询数量:

select *from 表名 limit 数值1,数值2;

select *from t_student limit 4,8;

以上语法; 跳过前面的四条语句,然后取出8条记录

主键约束: (primary key)

保证每条记录的唯一性:

主键是唯一的标识某一条记录的,可以是一个字段或是多个字段,比如t_student 可以增加一个id字段来作为主键,相当于人的身份证;

注意: 主键的设计原则;

1.主键应当是对用户没有用意义的

2.永远不能更新主键;

3.主键不能包含动态变化的数据

4.主键应该有计算机自动生成

 

转载于:https://www.cnblogs.com/ztlucky/p/5158742.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/375117.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机原理学习(6)-- x86-32 CPU和内存管理之分页管理

前言 上一篇我们了解了x86-16 CPU计算机的内存访问方式&#xff0c;寻址方式&#xff0c;以及基于MS-DOS的应用程序的内存布局。这一篇会主要介绍32位处理器的内存访问&#xff0c;内存管理以及应用程序的内存布局。虽然目前64位CPU已经非常普及了&#xff0c;不过相对于32位的…

ESP定律

当程序载入OD之后 004AC460 > $ 60 pushad;程序停在这里 F8 指向pushad指令 pushad是把寄存器中数据入栈 栈中数据如下&#xff1a; 0012FFA4 7C930208 |EDI <-- ESP指向栈顶 0012FFA8 FFFFFFFF |ESI 0012FFAC 0012FFF0 |EBP 0012FFB0 0012F…

socket通信简介

前言 我们深谙信息交流的价值&#xff0c;那网络中进程之间如何通信&#xff0c;如我们每天打开浏览器浏览网页时&#xff0c;浏览器的进程怎么与web服务器通信的&#xff1f;当你用QQ聊天时&#xff0c;QQ进程怎么与服务器或你好友所在的QQ进程通信&#xff1f;这些都得靠sock…

SQL Server自动化运维系列——关于邮件通知那点事(.Net开发人员的福利)

需求描述 在我们的生产环境中&#xff0c;大部分情况下需要有自己的运维体制&#xff0c;包括自己健康状态的检测等。如果发生异常&#xff0c;需要提前预警的&#xff0c;通知形式一般为发邮件告知。 邮件作为一种非常便利的预警实现方式&#xff0c;在及时性和易用性方面也有…

So easy Webservice 1.Socket建设web服务

socket 是用来进行网络通讯的&#xff0c;简单来说&#xff0c;远程机器和本地机器各建一个socket&#xff0c;然后通过该socket进行连接通讯 socket简单模型图&#xff1a; socket的原理图&#xff1a; 代码实现&#xff1a; 1.创建socket服务端&#xff1a;用于处理客户端发送…

去除字符串中重复字符

题目 设计算法并写出代码移除字符串中重复的字符&#xff0c;不能使用额外的缓存空间。注意&#xff1a; 可以使用额外的一个或两个变量&#xff0c;但不允许额外再开一个数组拷贝。 进一步地&#xff0c; 为你的程序写测试用例。 解答 这道题目其实是要你就地(in place)将字符…

MyEclipse 6.5安装maven插件

MyEclipse 6.5安装maven插件 原文 http://www.blogjava.net/caojianhua/archive/2013/11/05/406013.html 一、卸载原有maven插件 MyEclipse 6.5集成了Maven插件&#xff0c;不过有不少bug&#xff0c;用习惯了m2eclipse&#xff0c;不想在这上面浪费时间。要安装m2eclipse&…

两列右侧自适应布局--(来自网易)

<div class"g-bd1 f-cb"><div class"g-sd1"><p>左侧定宽</p></div><div class"g-mn1"><div class"g-mn1c"><p>右侧自适应</p></div></div> </div> /* 两列右…

Gradle 笔记

网上有一篇文章说的很明白&#xff0c;图文来教你在eclipse下用gradle 来打包Androidhttp://blog.csdn.net/x605940745/article/details/41242687 步骤为&#xff1a; 1. Elipse里面导出&#xff0c;Generate Gradle build files 2. 找到生成的gradle文件夹&#xff0c;里面有…

sql server 自定义函数的使用

sql server 自定义函数的使用自定义函数 用户定义自定义函数像内置函数一样返回标量值&#xff0c;也可以将结果集用表格变量返回 用户自定义函数的类型: 标量函数:返回一个标量值 表格值函数{内联表格值函数、多表格值函数}:返回行集&#xff08;即返回多个值&#xff09; 1、…

怎么设置才能让外网ip可以访问mysql数据库[转]

转自&#xff1a; http://www.hongyanliren.com/89.html 使用mysql中&#xff0c;很多人都会遇到这样的问题&#xff1a;在vps服务器或者云服务器上安装了mysql后&#xff0c;使用其他工具在外网ip之下根本就连接不上mysql&#xff0c;到底是什么原因导致外网ip无法访问mysql数…

Java 自带MD5 校验文件

http://www.iteye.com/topic/1127319 前天第一次发表博客到论坛&#xff0c;关于Java文件监控一文&#xff0c;帖子地址在&#xff1a;http://www.iteye.com/topic/1127281 评论的朋友很多&#xff0c;下载代码的朋友很不少&#xff0c;感谢在论坛上看我帖子的朋友&#xff0c;…

决策树资料汇总

2012年8月26日决策树&#xff08;Decision tree&#xff09;决策树是以实例为基础的归纳学习算法。它从一组无次序、无规则的元组中推理出决策树表示形式的分类规则。它采用自顶向下的递归方式&#xff0c;在决策树的内部结点进行属性值的比较&#xff0c;并根据不同的属性值从…

metasploitable2渗透测试

一、系统弱密码登录 1、在kali上执行命令行telnet 192.168.26.129 2、Login和password都输入msfadmin 3、登录成功&#xff0c;进入系统 4、测试如下&#xff1a; 二、MySQL弱密码登录&#xff1a; 1、在kali上执行mysql –h 192.168.26.129 –u root 2、登录成功&#…

Portainer.io:让容器管理变得更加直观

在现代软件开发和部署中&#xff0c;容器化技术已经变得越来越流行。Docker 是其中一种领先的容器化平台&#xff0c;而 Portainer.io 则是一个优秀的管理工具&#xff0c;使得 Docker 的使用变得更加简单和可视化。本文将介绍 Portainer.io 的基本功能和如何在 Docker 上安装和…

仓库信息查询练习

use cangku create table cangkubiao ( cno varchar(50) primary key not null, city varchar(50)not null, mianji int not null ) insert into cangkubiao values(wh1,北京,370) insert into cangkubiao values(wh2,上海,500) insert into cangkubiao values(wh3,广州,200) …

python开发的一些tips

1. Notepad编写python脚本 1&#xff09;新建文件&#xff0c;编写代码 2&#xff09;点击菜单栏&#xff0c;“语言”—>“P”—>“Python”&#xff0c;设置脚本为Python语言的高亮&#xff08;这样保存文本的时候&#xff0c;Notepad也可以自动识别文件类型为.py&…

metasploitable3渗透测试

1、攻击windows服务器漏洞 用nmap对网段进行扫描nmap -sP 192.168.123 在进行IP扫描 发现Windows服务器漏洞 步骤: msfconsole---进入渗透模块

以前写的一个下载小说的工具

因为当时发现只有一个站点有。但是时时联网的要求太让人不爽。就写了一个给全下下来了。 用到了: 1. 正则表达式&#xff0c;分析章节和内容&#xff1b; 2. 线程池下载&#xff0c;并且对下载中的相关超时做了一些处理&#xff1b; 3. 文件生成与写入&#xff0c;注意格式问题…

数学之路-python计算实战(14)-机器视觉-图像增强(直方图均衡化)

我们来看一个灰度图像&#xff0c;让表示灰度出现的次数&#xff0c;这样图像中灰度为 的像素的出现概率是是图像中全部的灰度数&#xff0c; 是图像中全部的像素数, 实际上是图像的直方图&#xff0c;归一化到 。把 作为相应于 的累计概率函数, 定义为&#xff1a;是图像的…