bigint
巨整型,巨整型是八个字节的整数,精度为 19 位。巨整型的范围从 -9,223,372,036,854,775,808 到
9,223,372,036,854,775,807。
binary
二进制
bit
字节
char
字符类型
detetime
时间类型
decimal
Decimal 数据类型 Decimal 变量存储为 96 位(12 个字节)无符号的整型形式,并除以一个 10 的幂数。
这个变比因子决定了小数点右面的数字位数,其范围从 0 到 28。变比因子为 0(没有小数位)的情形下,
最大的可能值为 +/-79,228,162,514,264,337,593,543,950,335。而在有 28 个小数位的情况下,最大值为
+/-79228162514264337593543950335,而最小的非零值为 +/-00000000000000000000000000001。
float
单精度类型
image
类型
int
整形
money
货币类型
nchar
字符类型,根据 unicode 标准所进行的定义,用给定整数代码返回 unicode 字符。
ntext
文本类型
numeric
decimal(numeric ) 同义,用于精确存储数值
decimal 数据类型最多可存储 38 个数字,所有数字都能够放到小数点的右边。decimal 数据类型存储了一
个准确(精确)的数字表达法;不存储值的近似值。
nvarchar
可变长度 (varchar) 字符数据类型。
real
float 和 real 数据
float 和 real 数据类型被称为近似的数据类型。在近似数字数据类型方面,float 和 real 数据的使用遵
循 IEEE 754 标准。
smalldatetime
短日期类型
smallint
短整型
smallmoney
短货币型
sql_variant
一种数据类型,用于存储 SQL Server 支持的各种数据类型(不包括 text、ntext、image、timestamp 和
(1) 整数型
整数包括bigint、int、smallint和tinyint,从标识符的含义就可以看出,它们的表示数范围逐渐缩小。
l bigint:大整数,数范围为 -263 (-9223372036854775808)~263-1 (9223372036854775807) ,其精度为19,小数位数为0,长度为8字节。
l int:整数,数范围为 -231 (-2,147,483,648) ~231 - 1 (2,147,483,647) ,其精度为10,小数位数为0,长度为4字节。
l smallint:短整数,数范围为 -215 (-32768) ~215 - 1 (32767) ,其精度为5,小数位数为0,长度为2字节。
l tinyint:微短整数,数范围为 0~255,长度为1字节,其精度为3,小数位数为0,长度为1字节。
(2) 精确整数型
精确整数型数据由整数部分和小数部分构成,其所有的数字都是有效位,能够以完整的精度存储十进制数。精确整数型包括decimal 和 numeric两类。从功能上说两者完全等价,两者的唯一区别在于decimal不能用于带有identity关键字的列。
声明精确整数型数据的格式是numeric | decimal(p[,s]),其中p为精度,s为小数位数,s的缺省值为0。例如指定某列为精确整数型,精度为6,小数位数为3,即decimal(6,3),那么若向某记录的该列赋值56342689时,该列实际存储的是563427。
decimal和numeric可存储从 -1038 +1 到 1038 –1 的固定精度和小数位的数字数据,它们的存储长度随精度变化而变化,最少为5字节,最多为17字节。
l 精度为1~9时,存储字节长度为5;
l 精度为10~19时,存储字节长度为9;
l 精度为20~28时,存储字节长度为13;
l 精度为29~38时,存储字节长度为17。
例如若有声明numeric(8,3),则存储该类型数据需5字节,而若有声明numeric(22,5),则存储该类型数据需13字节。
注意:声明精确整数型数据时,其小数位数必须小于精度;在给精确整数型数据赋值时,必须使所赋数据的整数部分位数不大于列的整数部分的长度。
(3) 浮点型
浮点型也称近似数值型。顾名思义,这种类型不能提供精确表示数据的精度,使用这种类型来存储某些数值时,有可能会损失一些精度,所以它可用于处理取值范围非常大且对精确度要求不是十分高的数值量,如一些统计量。
有两种近似数值数据类型:float[(n)]和real,两者通常都使用科学计数法表示数据,即形为:尾数E阶数,如56432E20,-298E10,1287659E-9等。
l real:使用4字节存储数据,表数范围为-340E + 38 到 340E + 38,数据精度为7位有效数字。
l float:定义中的n取值范围是1~53,用于指示其精度和存储大小。当n在1~24之间时,实际上是定义了一个real型数据,存储长度为4字节,精度为7位有效数字;当n在25~53之间时,存储长度为8字节,精度为15位有效数字。当缺省n时,代表n在25~53之间。float型数据的数范围为- 179E+308 到 179E+308。
(4) 货币型
SQL Server提供了两个专门用于处理货币的数据类型:money和smallmoney,它们用十进制数表示货币值。
l money:数据的数范围为-263 (-9223372036854775808)~263-1 (9223372036854775807) ,其精度为19,小数位数为4,长度为8字节。money的数的范围与bigint相同,不同的只是money型有4位小数,实际上,money就是按照整数进行运算的,只是将小数点固定在末4位。
l smallmoney:数范围为 –231 (-2,147,483648) ~231 - 1 (2,147,483647) ,其精度为10,小数位数为4,长度为4字节。可见smallmoney与int的关系就如同money与bigint的关系。
当向表中插入money或smallmoney类型的值时,必须在数据前面加上货币表示符号($),并且数据中间不能有逗号(,);若货币值为负数,需要在符号$的后面加上负号(-)。例如:$1500032,$680,$-200009088都是正确的货币数据表示形式。
(5) 位型
SQL Server中的位(bit)型数据相当于其他语言中的逻辑型数据,它只存储0和1,长度为一个字节。但要注意,SQL Server对表中bit类型列的存储作了优化:如果一个表中有不多于 8 个的bit列,这些列将作为一个字节存储,如果表中有 9 到 16 个 bit 列,这些列将作为两个字节存储,更多列的情况依此类推。
当为bit类型数据赋0时,其值为0,而赋非0(如100)时,其值为1。
若表中某列为bit类型数据,那么该列不允许为空值(有关空值概念本节稍后即做介绍),并且不允许对其建立索引。
(6) 字符型
字符型数据用于存储字符串,字符串中可包括字母、数字和其它特殊符号(如#、@、&等等)。在输入字符串时,需将串中的符号用单引号或双引号括起来,如’abc’、”Abc<Cde”。
SQL Server字符型包括两类:固定长度 (char) 或可变长度 (varchar) 字符数据类型。
l char[(n)]
定长字符数据类型,其中n定义字符型数据的长度,n在1到8000之间,缺省为1。当表中的列定义为char(n)类型时,若实际要存储的串长度不足n时,则在串的尾部添加空格以达到长度n,所以char(n)的长度为n。例如某列的数据类型为char(20),而输入的字符串为”ahjm1922”,则存储的是字符ahjm1922和12个空格。若输入的字符个数超出了n,则超出的部分被截断。
l varchar[(n)]
变长字符数据类型,其中n的规定与定长字符型char中n完全相同,但这里n表示的是字符串可达到的最大长度。varchar(n)的长度为输入的字符串的实际字符个数,而不一定是n。例如,表中某列的数据类型为varchar(100),而输入的字符串为”ahjm1922”,则存储的就是字符ahjm1922,其长度为8字节。
当列中的字符数据值长度接近一致时,例如姓名,此时可使用 char;而当列中的数据值长度显著不同时,使用varchar较为恰当,可以节省存储空间。
(7) Unicode字符型
Unicode是“统一字符编码标准”,用于支持国际上非英语语种的字符数据的存储和处理。SQL Server的Unicode字符型可以存储Unicode标准字符集定义的各种字符。
Unicode字符型包括nchar[(n)]和nvarchar[(n)]两类。nchar是固定长度 Unicode 数据的数据类型,nvarchar 是可变长度 Unicode 数据的数据类型,二者均使用 UNICODE UCS-2 字符集。
l nchar[(n)]:nchar[(n)]为包含n个字符的固定长度 Unicode 字符型数据,n 的值在 1 与 4,000 之间,缺省为1。长度为2n字节。若输入的字符串长度不足n,将以空白字符补足。
l nvarchar[(n)]:nvarchar[(n)]为最多包含n个字符的可变长度 Unicode 字符型数据,n 的值在 1 与 4,000之间,缺省为1。长度是所输入字符个数的两倍。
实际上,nchar、nvarchar与char、varchar的使用非常相似,只是字符集不同(前者使用Unicode字符集,后者使用ASCII字符集)。
(8) 文本型
当需要存储大量的字符数据,如较长的备注、日志信息等等,字符型数据的最长8000个字符的限制可能使它们不能满足这种应用需求,此时可使用文本型数据。
文本型包括text和ntext两类,分别对应ASCII字符和Unicode字符。text类型可以表示最大长度为 231-1 (2,147,483,647) 个字符,其数据的存储长度为实际字符数个字节。ntext可表示最大长度为 230 - 1 (1,073,741,823) 个Unicode字符,其数据的存储长度是实际字符个数的两倍(以字节为单位)。
(9) 二进制型
二进制数据类型表示的是位数据流,包括binary(固定长度)和varbinary(可变长度)两种。
l binary [(n) ]:固定长度的n个字节二进制数据。n取值范围为 1 到 8,000,缺省为1。binary(n)数据的存储长度为 n+4 字节。若输入的数据长度小于n,则不足部分用0填充;若输入的数据长度大于n,则多余部分被截断。
输入二进制值时,在数据前面要加上0x,可以用的数字符号为0—9、A—F(字母大小写均可)。因此,二进制数据有时也被称为十六进制数据。例如0xFF、0x12A0分别表示值FF和12A0。因为每字节的数最大为FF,故在“0x”格式的数据每两位占1个字节。
l varbinary [(n) ]:n个字节变长二进制数据。n取值范围为 1 到 8,000,缺省为1。varbinary(n)数据的存储长度为实际输入数据长度+4个字节。
(10) 日期时间类型
日期时间类型数据用于存储日期和时间信息,包括datetime和smalldatetime两类。
l datetime:datetime类型可表示的日期范围从 1753 年 1 月 1 日到 9999 年 12 月 31 日的日期和时间数据,精确度为百分之三秒(333 毫秒或 000333 秒),例如1到3毫秒的值都表示为0毫秒,4到6毫秒的值都表示为4毫秒。
datetime类型数据长度为8字节,日期和时间分别使用4个字节存储。前4 字节用于存储datetime类型数据中距1900 年 1 月 1 日的天数,为正数表示日期在1900年1月1日之后,为负数则表示日期在1900年1月1日之前。后4个字节用于存储datetime类型数据中距12:00(24小时制)的毫秒数。
用户以字符串形式输入datetime类型数据,系统也以字符串形式输出datetime类型数据,将用户输入到系统以及系统输出的datetime类型数据的字符串形式称为datetime类型数据的“外部形式”,而将datetime在系统内的存储形式称为“内部形式”,SQL Server负责datetime类型数据的两种表现形式之间的转换,包括合法性检查。
用户给出datetime类型数据值时,日期部分和时间部分分别给出。
日期部分的表示形式常用的格式如下:
年 月 日 2001 Jan 20、2001 Janary 20
年 日 月 2001 20 Jan
月 日[,]年 Jan 20 2001、Jan 20,2001、Jan 20,01
月 年 日 Jan 2001 20
日 月[,]年 20 Jan 2001、20 Jan,2001
日 年 月 20 2001 Jan
年(4位数) 2001表示2001年1月1日
年月日 20010120、010120
月/日/年 01/20/01、1/20/01、01/20/2001、1/20/2001
月-日-年 01-20-01、1-20-01、01-20-2001、1-20-2001
月日年 012001、12001、01202001、1202001
说明:年可用4位或2位表示,月和日可用1位或2位表示。
时间部分常用的表示格式如下:
时:分 10:20、08:05
时:分:秒 20:15:18、20:15:182
时:分:秒:毫秒 20:15:18:200
时:分AM|PM 10:10AM、10:10PM
l smalldatetime:smalldatetime类型数据可表示从 1900 年 1 月 1 日到 2079 年 6 月 6 日的日期和时间,数据精确到分钟,即29998 秒或更低的值向下舍入为最接近的分钟,29999 秒或更高的值向上舍入为最接近的分钟。Smalldatetime类型数据的存储长度为4字节,前2个字节用来存储smalldatetime类型数据中日期部分距1900年1月1日之后的天数;后2个字节用来存储smalldatetime类型数据中时间部分距中午12点的分钟数。
用户输入smalldatetime类型数据的格式与datetime类型数据完全相同,只是它们的内部存储可能不相同。
(11) 时间戳型
标识符是timestamp。若创建表时定义一个列的数据类型为时间戳类型,那么每当对该表加入新行或修改已有行时,都由系统自动将一个计数器值加到该列,即将原来的时间戳值加上一个增量。记录timestamp列的值实际上反映了系统对该记录修改的相对(相对于其他记录)顺序。一个表只能有一个timestamp 列。Timestamp类型数据的值实际上是二进制格式数据,其长度为8字节。
(12) 图象数据类型
标识符是image,它用于存储、照片等。实际存储的是可变长度二进制数据,介于 0 与 231-1 (2,147,483,647) 字节之间。
(13) 其它数据类型
除了上面所介绍的常用数据类型外,SQL Server 2000还提供了其它几种数据类型:cursor、sql_variant、table和uniqueidentifier。
Cursor:是游标数据类型,用于创建游标变量或定义存储过程的输出参数。
Sql_variant:是一种存储 SQL Server 支持的各种数据类型(除text、ntext、image、timestamp 和 sql_variant 外)值的数据类型。Sql_variant的最大长度可达 8016 字节。
Table:是用于存储结果集的数据类型,结果集可以供后续处理。
Uniqueidentifier:是唯一标识符类型。系统将为这种类型的数据产生唯一标识值,它是一个16字节长的二进制数据。
1中国国家知识基础设施(China National Knowledge Infrastructure,简称CNKI)
参见>
用LINQ(语言集成查询)完成你说的这些任务很方便,具体的细节问题还得你自己做。下面举出两个例子供你参考,这两个例子用数组代替数据库,对数据库也可用同样的方法。
例1,用bool值作关键字区分两组的结果,注意group子句中的表达式产生的结果。
public class Student
{
public string Name { get; set; }
public int ID { get; set; }
public List<int> Scores;
}
public static List<Student> GetStudents()
{
//实例化数据源,注意各成员内部成绩序列的初始化
List<Student> students = new List<Student>
{
new Student {Name="张勇", ID=1, Scores= new List<int> {97, 72, 81, 60}},
new Student {Name="王磊", ID=2 Scores= new List<int> {75, 84, 91, 39}},
new Student {Name="孙敏", ID=3, Scores= new List<int> {88, 94, 65, 85}},
new Student {Name="刘晓", ID=4, Scores= new List<int> {97, 89, 85, 82}},
new Student {Name="扬帆", ID=5, Scores= new List<int> {35, 72, 91, 70}}
};
return students;
}
static void Main()
{
List<Student> students = GetStudents();
//用true或false分组,查询变量是IEnumerable<IGrouping<bool, Student>>类型
var booleanGroupQuery = from student in students
group student by studentScoresAverage() >= 80;
foreach (var studentGroup in booleanGroupQuery)
{
ConsoleWriteLine(studentGroupKey == true "平均分高于80" : "平均分低于80");
foreach (var student in studentGroup)
ConsoleWriteLine("{0,4} {1} {2}", studentID, studentName, studentScoresAverage());
}
}
输出:
平均分低于80
1 张勇 775
2 王磊 7225
5 扬帆 67
平均分高于80
3 孙敏 83
4 刘晓 8825
例2,查询人名先排序再分组,可以用姓作为分组关键字。
string[] Name = {"张明","刘新","王宏","刘洋","张媛","张宝","王金贵","刘东","王凯","刘芳"};
var sortedGroups = from name in Name
orderby name
group name by name[0] into newGroup
select newGroup;
foreach (var nameGroup in sortedGroups)
{
ConsoleWriteLine(nameGroupKey);
foreach (var name in nameGroup)
ConsoleWriteLine(" "+name);
}
输出:
刘
刘东 刘芳 刘新 刘洋
王
王宏 王金贵 王凯
张
张宝 张明 张媛
输出结果按姓分类,组内排序。
《C#编程指南》(清华大学出版社2011年1月出版,可网购)第5章和第17章专门讨论LINQ查询更新数据库。
使用SQLite方式存储数据
在Android中一共提供了5种数据存储方式,分别为:
(1)Files:通过FileInputStream和FileOutputStream对文件进行 *** 作。具体使用方法可以参阅博文《Android学习笔记34:使用文件存储数据》。
(2)Shared Preferences:常用来存储键值对形式的数据,对系统配置信息进行保存。具体使用方法可以参阅博文《Android学习笔记35:使用Shared Preferences方式存储数据》。
(3)Content Providers:数据共享,用于应用程序之间数据的访问。
(4)SQLite:Android自带的轻量级关系型数据库,支持SQL语言,用来存储大量的数据,并且能够对数据进行使用、更新、维护等 *** 作。
(5)Network:通过网络来存储和获取数据。
本篇博文介绍第四种方式,通过Android自带的SQLite数据库存储数据。
1SQLite简介
SQLite是一款开源的、嵌入式关系型数据库,第一个版本Alpha发布于2000年。SQLite在便携性、易用性、紧凑性、高效性和可靠性方面有着突出的表现。
SQLite和C/S模式的数据库软件不同,它是一款嵌入式数据库,没有独立运行的进程,与所服务的应用程序在应用程序进程空间内共生共存。它的代码与应用程序代码也是在一起的,或者说嵌入其中,作为托管它的程序的一部分。因此不存在数据库的客户端和服务器,使用SQLite一般只需要带上它的一个动态库,就可以享受它的全部功能。
数据库服务器在程序中的好处是不需要网络配置或管理。将数据库客户端与服务器运行在同一个进程中,可以省去不少的 *** 作及麻烦:不用担心防火墙或者地址解析;不用浪费时间管理复杂的授权和权限;可以减少网络调用相关的消耗;可以简化数据库管理并使程序更容易部署。
SQLite数据库通过数据库级上的独占性和共享锁来实现独立事务处理。这意味着多个进程可以在同一时间从同一数据库读取数据,但是只有一个可以写入数据。在某个进程向数据库执行写 *** 作之前,必须获得独占锁定。在发出独占锁定后,其他的读写 *** 作将不会再发生。
此外,SQLite数据库中的所有信息(比如表、视图、触发器等)都包含在一个文件内,方便管理和维护。SQLite数据库还支持大部分 *** 作系统,除电脑上使用的 *** 作系统之外,很多手机上使用的 *** 作系统同样可以运行。同时,SQLite数据库还提供了多语言的编程接口,供开发者使用。
2SQL基本命令
SQL是与关系型数据库通信的唯一方式。它专注于信息处理,是为构建、读取、写入、排序、过滤、映射、分组、聚集和通常的管理信息而设计的声明式语言。
在讲解SQL基本命令之前,有必要先了解一下SQLite所支持的数据类型都有哪些。
21 SQLite支持的数据类型
SQLite采用动态数据存储类型,会根据存入的值自动进行判断。SQLite支持以下5种数据类型:
(1)NULL:空值
(2)INTEGER:带符号的整型
(3)REAL:浮点型
(4)TEXT:字符串文本
(5)BLOB:二进制对象
22 SQL基本命令
表是探索SQLite中SQL的起点,也是关系型数据库中信息的标准单位,所有的 *** 作都是以表为中心的。那么如何使用SQL命令创建一张表呢?
221创建表
表是由行和列组成的,列称为字段,行称为记录。
使用CREATE命令可以创建表,CREATE命令的一般格式为:
CREATE [TEMP/TEMPORARY] TABLE table_name (column_definitions [, constraints]);
其中,[]中的内容是可选的,用TEMP或TEMPORARY关键字声明的表是临时表,这种表只存活于当前会话,一旦连接断开,就会被自动销毁。如果没有明确指出创建的表是临时表,则创建的是基本表,将会在数据库中持久存在,这也是数据库中最常见的表。
CREATE TABLE命令至少需要一个表名和一个字段名,上述命令中的table_name表示表名,表名必须与其他标识符不同。column_definitions由用逗号分隔的字段列表组成,每个字段定义包括一个名称、一个域(类型)和一个逗号分隔的字段约束。其中,域是指存储在该列的信息的类型,约束用来控制什么样的值可以存储在表中或特定的字段中。
一条创建表的命令示例如下:
1 CREATE TABLE tab_student (studentId INTEGER PRIMARY KEY AUTOINCREMENT,
2 studentName VARCHAR(20),
3 studentAge INTEGER);
如上,我们创建了一个名为tab_student的表,该表包含3个字段:studentId、 studentName和studentAge,其数据类型分别为:INTEGER、VARCHAR和INTEGER。
此外,通过使用关键字PRIMARY KEY,我们指定了字段studentId所在的列是主键。主键确保了每一行记录在某种方式上与表中的其他行记录是不同的(唯一的),进而确保了表中的所有字段都是可寻址的。
SQLite为主键提供自增长功能,当定义字段类型为INTEGER PRIMARY KEY时,SQLite将为该字段创建默认值,该默认值确保整数值是唯一的。SQLite使用64-bit单符号整数主键,因此,该字段的最大值是9,223,372,036,854,775,807。当达到最大值时,SQLite会自动搜索该字段还未使用的值,并作为要插入的值。从表中删除记录时,rowid可能被回收并在后面的插入中使用。因此,新创建的rowid不一定是按照严格顺序增长的。如果想要SQLite使用唯一的自动主键值,而不是填补空白,可以在主键定义INTEGER PRIMARY KEY中加入关键字AUTOINCREMENT。AUTOINCREMENT关键字阻止rowid回收,它将为新插入的记录产生新的(不是回收的)rowid。
222插入记录
使用INSERT命令可以一次插入一条记录,INSERT命令的一般格式为:
INSERT INTO tab_name (column_list) VALUES (value_list);
其中,tab_name指明将数据插入到哪个表中,column_list是用逗号分隔的字段名称,这些字段必须是表中存在的,value_list是用逗号分隔的值列表,这些值是与column_list中的字段一一对应的。
比如,向刚才创建的tab_student表中插入一条记录,便可以使用如下的语句完成:
INSERT INTO tab_student (studentId, studentName, studentAge) VALUES (1, “jack”, 23);
通过以上的语句,便插入了一条studentName=”jack”, studentAge=”23”的记录,该记录的主键为studentId=1。
223更新记录
使用UPDATE命令可以更新表中的记录,该命令可以修改一个表中一行或者多行中的一个或多个字段。UPDATE命令的一般格式为:
UPDATE tab_name SET update_list WHERE predicate;
其中,update_list是一个或多个字段赋值的列表,字段赋值的格式为column_name=value。WHERE子句使用断言识别要修改的行,然后将更新列应用到这些行。
比如,要更新刚才插入到tab_student表中的记录,便可以使用如下的语句完成:
UPDATE tab_student SET studentName=”tom”, studentAge=”25” WHERE studentId=1;
通过以上的语句,便可以将刚才插入的主键为studentId=1的记录更新为studentName=”tom”, studentAge=”25”了。
224删除记录
使用DELETE命令可以删除表中的记录,DELETE命令的一般格式为:
DELETE FROM table_name WHERE predicate;
其中,table_name指明所要删除的记录位于哪个表中。和UPDATE命令一样,WHERE子句使用断言识别要删除的行。
比如,要删除刚才插入的记录,便可以使用如下的语句完成:
DELETE FROM tab_student WHERE studentId=1;
225查询记录
SELECT命令是查询数据库的唯一命令。SELECT命令也是SQL命令中最大、最复杂的命令。
SELECT命令的通用形式如下:
SELECT [distinct] heading
FROM tables
WHERE predicate
GROUP BY columns
HAVING predicate
ORDER BY columns
LIMIT count,offset;
其中,每个关键字(如FROM、WHERE、HAVING等)都是一个单独的子句,每个子句由关键字和跟随的参数构成。GROUP BY和HAVING一起工作可以对GROUP BY进行约束。ORDER BY使记录集在返回之前按一个或多个字段的值进行排序,可以指定排序方式为ASC(默认的升序)或DESC(降序)。此外,还可以使用LIMIT限定结果集的大小和范围,count指定返回记录的最大数量,offset指定偏移的记录数。
在上述的SELECT命令通用形式中,除了SELECT之外,所有的子句都是可选的。目前最常用的SELECT命令由三个子句组成:SELECT、FROM、WHERE,其基本语法形式如下:
SELECT heading FROM tables WHERE predicate;
比如,要查询刚才插入的记录,便可以使用如下的语句完成:
SELECT studentId, studentName, studentAge FROM tab_student WHERE studentId=1;
至此,我们介绍了SQL中最基本和最常用的CREATE、INSERT、UPDATE、DELETE和SELECT命令。当然了,这里只是对其进行了简单的介绍,有关SQLite中SQL命令的详细使用方法,可以参阅《SQLite权威指南》一书的第三章和第四章。
3数据库 *** 作辅助类SQLiteOpenHelper
Android提供了一个重要的类SQLiteOpenHelper,用于辅助用户对SQLite数据库进行 *** 作。
SQLiteOpenHelper的构造函数原型如下:
public SQLiteOpenHelper(Context context, String name, SQLiteDatabaseCursorFactory factory, int version);
其中,参数context表示应用程序运行的环境,包含应用程序所需的共享资源。参数name表示Android的数据库名字。参数factory是SQLiteDatabaseCursorFactory类对象,用于存储查询Android SQLite数据库的结果集。参数version表示应用程序所用的数据库的版本,该版本并非SQLite的真正版本,而是指定应用程序中的SQLite数据库的版本,当该版本号发生变化时,将会触发SQLiteOpenHelper类中的onUpgrade()或onDowngrade()方法。
SQLiteOpenHelper类的所有方法如图1所示。
图1 SQLiteOpenHelper类的方法
其中,close()方法用于关闭SQLiteOpenHelper对象中的SQLite数据库;getReadableDatabase()方法和getWriteableDatabase()方法类似,getReadableDatabase()方法以只读状态打开SQLiteOpenHelper对象中指定的SQLite数据库,任何想要修改数据库的 *** 作都是不允许的;getWriteableDatabase()方法也是打开数据库,但是允许数据库正常的读/写 *** 作;在一个不存在的数据库上调用任何方法时,都会隐式的调用SQLiteOpenHelper对象的onCreate()方法;当应用程序第一次访问数据库时,则会调用onOpen()方法,但是,如果版本号发生了变化的话,则会调用onUpgrade()或onDowngrade()方法。
4数据库类SQLiteDatabase
SQLiteDatabase类用来完成对数据库的 *** 作任务,比如表的选择、插入、更新和删除语句等。
SQLiteDatabase类中常用的用于执行SQL语句的方法有以下一些。
(1)execSQL()方法:
public void execSQL (String sql);
public void execSQL (String sql, Object[] bindArgs);
(2)query()方法:
public Cursor query (String table, String[] columns, String selection, String[] selectionArgs, String
groupBy, String having,String orderBy, String limit);
public Cursor query (boolean distinct, String table, String[] columns, String selection, String[] selectionArgs, String
groupBy, String having, String orderBy, String limit, CancellationSignal cancellationSignal);
public Cursor query (String table, String[] columns, String selection, String[] selectionArgs, String groupBy, String
having,String orderBy);
public Cursor query (boolean distinct, String table, String[] columns, String selection, String[] selectionArgs, String
groupBy, String having, String orderBy, String limit);
(3)queryWithFactory()方法:
public Cursor queryWithFactory (SQLiteDatabaseCursorFactory cursorFactory, boolean distinct, String table, String[]columns, String selection, String[] selectionArgs, String groupBy, String having, String
orderBy, String limit,CancellationSignal cancellationSignal);
public Cursor queryWithFactory (SQLiteDatabaseCursorFactory cursorFactory, boolean distinct, String table, String[]columns, String selection, String[] selectionArgs, String groupBy, String having, String orderBy, String limit);
(4)rawQuery()方法:
public Cursor rawQuery (String sql, String[] selectionArgs, CancellationSignal cancellationSignal);
public Cursor rawQuery (String sql, String[] selectionArgs);
(5)rawQueryWithFactory()方法:
public Cursor rawQueryWithFactory (SQLiteDatabaseCursorFactory cursorFactory, String sql, String[]
selectionArgs,String editTable);
public Cursor rawQueryWithFactory (SQLiteDatabaseCursorFactory cursorFactory, String sql, String[]
selectionArgs,String editTable, CancellationSignal cancellationSignal);
其中,execSQL()方法都有一个参数sql,这个参数是一个SQL语句。第二个参数bindArgs接收一个数组,数组中的每个成员捆绑了一个查询。execSQL()方法用于运行那些没有返回值的查询语句,比如创建、插入、更新和修改表。
query()方法和queryWithFactory()方法是在数据库中运行一些轻量级的单查询语句,参数包括table、columns、groupBy、having、orderBy、limit等SQL语句关键字。这些方法允许将SQL语句传递给相关方法,而不必直接使用SQL语句。
rawQuery()方法和rawQueryWithFactory()方法也都有一个参数sql,用于执行SQL查询语句,返回值是Cursor对象。这两个方法都有一个版本能够接收一个字符串数组selectionArgs作为参数,通过这个参数,SQLiteDatabase对象将把捆绑的SQL语句中的问号(?)用这个数组中的值代替,并按照一一对应的位置关系进行取代。
SQLiteDatabase类提供了大约50个方法,除此之外还有一些用于打开数据库的方法(如openDatabase()、openOrCreateDatabase()等),用于管理SQLite事务的方法(如beginTransaction()、endTransaction()等),用于测试数据库是否被锁住的方法(如isDbLockedByCurrentThread()、isDbLockedByOtherThread()等),以及获取数据库基本信息的方法(如getMaximumSiza()、getVersion()等)。这里就不一一介绍了,具体可以参阅SQLiteDatabase类的API帮助文档。
5游标类Cursor
在Android中,查询数据是通过Cursor类来实现的,当我们使用SQLiteDatabasequery()或SQLiteDatabaserawQuery()方法时,会得到一个Cursor对象,Cursor指向的就是每一条记录,它提供了很多有关查询的方法,如图2所示。
>
动力机械及工程专业
动力机械及工程硕士点于1997年由内燃机和热力叶轮机械两个硕士点调整合并而成,是教育部首批硕士、博士点授予权单位,并设有博士后流动站。动力机械及工程学科为国家重点学科(培育),内燃机实验室为辽宁省重点实验室,也是船舶制造国家工程研究中心的组成部分。该点现有教授5名(其中博士生导师4名)、副教授、高级工程师11名,教师中有博士学位16名,形成了以中、青年为骨干的教师队伍。教师队伍学术思想活跃,与国外知名大学、科研机构,国内科研院所及企业有较多的交流合作。1970年代末提出的柴油机热预混合燃烧方式目前已成为国内外柴油机的热点研究课题。
该硕士点主要学术研究及科研领域有两大类,即内燃机和热力叶轮机械。其中内燃机主要研究领域有:喷雾与燃烧、激光技术测量、排气净化、代用燃料、新能源混合动力、内燃机振动与噪声及故障诊断;内燃机CAD/CAE、设备与结构安全性评价及寿命预测、内燃机测试与电控、催化燃烧及化学反应动力学。热力叶轮机械主要研究领域有:燃气轮机关键技术及汽轮机气动性能、可靠性研究、透平机械热力状态在线监测与故障诊断、燃机与燃料电池复合发电新型动力循环、新型组合吸气式发动机研究、计算流体力学及计算燃烧学。
该硕士点共承担国家、省、部及企事业科研项目200多项,通过省、部级以上的科研鉴定32项;获教育部、农业部、机电部、省教委各类科技进步奖20项;在国内外主要学术刊物及学术会议上发表研究论文580多篇;出版专著15部;获得发明专利30项。
该硕士点指导教师:宋希庚、隆武强、高希彦、王晓放、冀春俊、薛冬新、郭晓平、孙培岩、
王正、满长忠、于学兵、冯立岩、 谢蓉、 王巍、杨凤珍、刘艳、许晓光、
苏庆运、唐斌、周红秀、杜宝国、 田夫
注:标“”者为博士生导师
学科、专业名称(代码)
研 究 方 向
考试科目
(科目编号)
备 注
080703▲▲动力机械及工程
01 内燃机燃料、喷雾、燃烧与排气净化
02 内燃机振动与噪声及故障诊断
03 内燃机测试与电控、内燃机CAD/CAE
04 设备与结构安全性评价及寿命预测
05 新能源混合动力
06 动力燃气、蒸汽轮机关键技术及性能评估研究
07 计算流体力学、新型循环及先进动力装置研究
① 101思想政治理论
1-5研究方向:
② 201英语一 203日语选一
6-7研究方向:
② 201英语一
③ 301数学一
④ 841 热工基础
注:热工基础包括50分必做题(工程热力学和传热学各25分),选做题(工程热力学和传热学各100分,二选一)。
欢迎跨学科、专业考生报考该专业
大连理工大学学术型硕士研究生考试科目参考书目
说明:若要定购下列参考书目,请直接与大连理工大学教育书店联系,联系电话:0411-84708536
科目编号
科目名称
参考书目
101
思想政治理论
国家统一命题
111
单独考试思想
政治理论
我校自主命题,非单独考试考生不得选考
201
英语一
国家统一命题
202
俄语
国家统一命题
203
日语
国家统一命题
240
英语
各大学外语专业二外使用教材
241
俄语
各大学外语专业二外使用教材
242
日语
各大学外语专业二外使用教材
243
德语
各大学外语专业二外使用教材
244
法语
各大学外语专业二外使用教材
250
单独考试英语
我校自主命题,非单独考试考生不得选考
251
单独考试俄语
我校自主命题,非单独考试考生不得选考
252
单独考试日语
我校自主命题,非单独考试考生不得选考
301
数学一
国家统一命题
302
数学二
国家统一命题
303
数学三
国家统一命题
311
教育学专业基础综合
国家统一命题
312
心理学专业基础综合
国家统一命题
313
历史学专业基础
国家统一命题
314
数学
国家统一命题
315
化学
国家统一命题
360
数学物理方法
361
数学分析
《数学分析》,编者:李成章、黄玉民,科学出版社,2005年第二版
408
计算机学科专业基础综合
国家统一命题
414
植物生理学与生物化学
国家统一命题
611
单独考试数学
我校自主命题,非单独考试考生不得选考
614
基础英语
各大学英语专业使用教材
615
日语水平测试
各大学高年级专业日语教材
616
综合俄语
各大学俄语专业使用教材
617
行政管理学
《行政管理学》,编者:夏书章,高等教育出版社、中山大学出版社,2008年版
618
现代汉语
《现代汉语》,编者:黄伯荣、廖序东,高等教育出版社,2007年增订四版
《现代汉语语法研究教程》,编者:陆俭明,北京大学出版社,2005年版
619
传播学
《传播学原理》,编者:张国良,复旦大学出版社,2009年7月第2版
《传播学教程》,编者:郭庆光,中国人民大学出版社,1999年11月
620
民商法原理
《民法》,编者:魏振瀛,北京大学出版社、高等教育出版社,第三版
《商法》,编者:范健,北京大学出版社、高等教育出版社,第三版
621
马克思主义哲学原理
《马克思主义哲学原理》,编者:陈先达,中国人民大学出版社,第二版
《马克思主义哲学教程》,编者 赵家祥,聂锦芳,张立波,北京大学出版社,2003年
622
教育管理学
《教育管理学》,编者:陈孝彬,北京师范大学出版社,1999年修订本
623
城市规划历史与理论
《中国城市建设史》,中国建筑工业出版社
《外国城市建设史》,中国建筑工业出版社
《城市规划原理》,中国建筑工业出版社(第3版)
624
建筑设计理论综合
《中国建筑史》,中国建筑工业出版社
《外国建筑史(19世纪末叶以前)》,中国建筑工业出版社 《外国近现代建筑史》,中国建筑工业出版社
625
中外美术史
《中国美术史》,洪再新编著,中国美术学院出版社
《外国美术简史》,中央美术学院美术史系外国美术史教研室编著,高等教育出版社或中国青年出版社
626
分析化学及分析化学实验
含化学分析与仪器分析部分:《分析化学》, 编者:刘志广等,高等教育出版社
《仪器分析》,编者:刘志广等,大连理工大学出版社,2007年第二版
627
药物化学
《药物化学》,郑虎主编,第五版,人民卫生出版社
《药物化学》,仉文生,李安良主编,高等教育出版社
630
无机化学
《无机化学》,无机化学教研室主编,高等教育出版社,2006第五版
631
分子生物学
《现代分子生物学》,编者:朱玉贤、李毅,北京高等教育出版社
635
马克思主义基本原理
《马克思主义基本原理概论》,马克思主义理论研究和建设工程重点教材,本书编写组,高等教育出版社,2009年修订版
636
体育学专业基础综合
《学校体育学》,人民体育出版社出版,周登嵩主编,2004年
《运动训练学》,人民体育出版社,体育院校通用教材
《运动生理学》,人民体育出版社,体育院校通用教材
678
社会保障学
《社会保障学》(第二版),主编者:陈树文,大连理工大学出版社,2007年出版
501
建筑设计(6小时)
《中国建筑史》,中国建筑工业出版社
《外国建筑史(19世纪末以前)》,中国建筑工业出版社
《外国近现代建筑史》,中国建筑工业出版社
《建筑空间组合论》,编者:彭一刚,中国建筑工业出版社
502
规划设计(6小时)
《城市规划资料集》,中国建筑工业出版社,第5、6分册,城市设计
503
命题创作(手绘)(6小时)
801
英语专业综合
语言学部分(50分):
1 多选题: 一般为4个选项(15题,15分)
2 判断题: 确定句子中的提法对错(15题,15分)
3 简答题(写出语言学术语的定义)(2题, 8分)
4 论述题(分析和解答问题)(2题, 12分)
参考书目:
《语言学教程》(修订版),胡壮麟,北京大学出版社。
文学部分(50分):
1文学术语解释:15个小题,每题2分,共30分;
例:Bildungsroman:a kind of novel that follows the development of the hero or heroine from childhood or adolescence into adulthood, through a troubled quest for identity
2文学作品分析:1个题,20分。阅读一首诗歌或一部短片小说,根据问题写出800-1000英文单词的短文。
参考书目:1Oxford Concise Dictionary of Literary Terms, 上海外语教育出版社(《牛津文学术语词典》2008)
2《英国文学作品选读》(第1-3册), 陈嘉,商务印书馆,1982
3 《英国文学通史》, 侯维瑞,上海外语教育出版社,2002
4 《美国文学欣赏》,吴定柏,上海外语教育出版社,2009
5 《美国文学简史》,常耀信,南开大学出版社,2008
翻译部分(50分):
内容包括翻译理论和英汉互译。总分为50分,其中:(1)理论部分填空题占20分;(2)短语翻译占10分;(3)英汉语篇翻译占10分;(4)汉英语篇翻译占10分。
参考书目:1《新编汉英翻译教程》,陈宏薇,李亚舟 (主编)上海外语教育出版社,2006
2《新编英汉翻译教程》,孙致礼(主编),上海外语教育出版社,2006
3 The Theory and Practice Translation (翻译理论与实践)(英文版),Eugene ANida & Charles R Taber,上海外语教育出版社,2006
4《实用英汉翻译教程》,申雨平,戴宁,外语教学与研究出版社,2005
5《布局谋篇——英汉篇章互译技巧》,陈海庆等(编著)大连理工大学出版社,2009,1月
802
翻译与写作(日 )
各大学高年级专业日语教材
803
俄汉互译
各大学高年级俄语专业教材
804
高等代数
《高等代数》,编者:王萼芳等高等教育出版社,2003年第三版
805
半导体物理
《半导体物理学》,编者:孟宪章、康昌鹤,吉林大学出版社
或
《半导体物理学讲义》,编者:胡礼中,大连理工大学教育书店出售(第三稿)
806
量子力学
《量子力学》,编者:宋鹤山,大连理工大学出版社,第二版
《量子力学导论》,编者:曾谨言,北京大学出版社,第二版
807
电动力学
《电动力学》,编者:郭硕鸿,高等教育出版社
808
神经科学基础
《神经科学基础》,编者:李继硕,高等教育出版社
809
病理生理学
《病理生理学》,编者:金惠铭人民卫生出版社,第六版
816
材料力学
《材料力学》,编者:刘鸿文,高等教育出版社,第三版上下册
821
控制工程基础
《机械工程控制基础》(第一版),祝守新、邢英杰、韩连英主编,清华大学出版社出版,2008年8月;
或
《控制工程基础》,王益群、孔祥东,机械工业出版社
823
机械制造技术基础
《金属切削原理》(第2版),机械工业出版社,陈日曜主编;
《机械制造技术基础》(第3版),卢秉恒编,机械工业出版社。
825
材料科学基础
《材料科学基础》,主编:胡赓祥,蔡珣,上海交通大学出版社
《金属固态相变原理》,主编:徐洲 赵连城 ,科学出版社
827
建筑材料学
《建筑材料学》(第2版),编者:王立久,中国水利水电出版社,2008年7月
828
工程管理专业基础
1.《工程项目管理》⑴《工程项目管理》,编者:成虎,高等教育出版社,2004版, ⑵《土木工程施工》(12、13章),编者:毛鹤琴,武汉工业大学出版社,2000年8月第一版;
2.《工程经济学》,编者:姜早龙 中南大学出版社
829
材料力学(土)
《材料力学》,编者:孙训芳,高等教育出版社,第四版
830
水力学
《水力学》,刘亚坤编著,中国水利水电出版社,2008年版
841
热工基础
《工程热力学》,编者:沈维道等,高等教育出版社,第三版,面向21世纪教材
《传热学》,编者: 杨世铭等,高等教育出版社,2006年,第四版
846
汽车理论
>《汽车理论》,编者:余志生编,机械工业出版社,2000年 5 月,第三版
848
船舶静力学
1.《船舶原理(上册)》,编者:盛振邦,上海交通大学出版社,2003年9月第一版
2.《船舶静力学》,编者:朱军,国防科技大学出版社出版
849
船舶动力装置
《民用船舶动力装置》,编者:商圣义,人民交通大学出版社,1996 ISBN7-114-02343-X
或《船舶动力装置概论》,编者:张志华,哈尔滨工程大学出版社
850
声学基础
《声学基础》,编者:杜功焕、朱哲民、龚秀芬,南京大学出版社
851
电子技术(模拟电子技术与数字电子技术)
《电子技术基础 模拟部分》,编者:康华光,高等教育出版社,1999年第四版或2006年第五版
《数字电路与系统》,编者:王兢、王洪玉,电子工业出版社,2007
852
信号系统与通信原理
信号与系统、通信原理各占50%。
《信号与线性系统》,编者:管致中,高教出版社,第三版或第四版
《通信原理》,编著:樊昌信等,国防工业出版社,第5版
853
电路理论
《电路》,主编:邱关源(第四版),高等教育出版社
《电路理论基础》,主编:陈希有(第三版),高等教育出版社
854
自动控制原理(含现代20%)
《自动控制原理》,主编:孟华,机械工业出版社,2007年9月
《现代控制理论》,主编:王金城,化学工业出版社,2007年4月
《自动控制原理》,主编:胡寿松(第四版),科学出版社
855
单独考试计算机学科专业基础综合
我校自主命题,非单独考试考生不得选考
857
语言综合
《语言学纲要》,编者:徐通锵、叶蜚声,北京大学出版,2003年版
《古代汉语》,编者:王力,中华书局,2000年重排版
858
中国特色社会主义理论体系概论
《毛泽东思想和中国特色社会主义理论体系概论》,马克思主义理论研究和建设工程重点教材,本书编写组,高等教育出版社,2009年修订版
859
伦理学原理
《伦理学引论》,编者:张传有,人民出版社,2006年版
860
思想政治教育原理与方法
《现代思想政治教育学》,编者:张耀灿等,人民出版社,2006年版
《现代思想政治教育调查方法与spss软件应用》, 编者:戴艳军等,大连理工大学出版社,2002年版
862
管理学原理
《管理学-原理与方法》,周三多、陈传明、鲁明泓编著,复旦大学出版社,第四版
《管理学》,(美)编者:斯蒂芬•P•罗宾斯 黄卫伟等译 中国人民大学出版社2004年版
863
>教育学原理
《教育学》(新编本),编者:王道俊、王汉澜,人民教育出版社,1999年版
864
政治学原理
《政治学基础》,编者:王浦劬,北京大学出版社,2006年版
865
新闻传播实务
《中国新闻采访写作教程》,著者:刘海贵,复旦大学出版社,2008年1月第一版
《当代新闻编辑》,编者:张子让,复旦大学出版社,2004年6月第二版
866
科学技术史(含命题作文)
《科学技术发展简史》,编者:远德玉、丁云龙,东北大学出版社,2002年版
868
西方哲学史
《西方哲学简史》,编者:赵敦华,北京大学出版社
869
民商法综合
《法理学》,编者:张文显,北京大学出版社、高等教育出版社,第三版
《知识产权法》编者:刘春田,北京大学出版社、高等教育出版社,第三版
《经济法》,编者:杨紫烜,北京大学出版社、高等教育出版社,第二版
873
公共经济学基础
《公共经济学》,编者:陈树文、王大刚,大连理工大学出版社,第一版;
或
《公共经济学》,编者:金镝,大连理工大学出版社,2005年8月;
875
信息管理与信息系统
《信息系统分析与设计》(第二版),编者:邝孔武、王晓敏,清华大学出版社;
《数据库系统概论》(第三版),编者:萨师煊、王珊,高等教育出版社
876
管理学
《管理学》,汪克夷、易学东、刘荣编,大连理工大学出版社(第四版)
877
经济学原理
《西方经济学·微观部分》(第四版)、《西方经济学·宏观部分》(第四版),高鸿业主编,中国人民大学出版社,2007年3月版
879
高分子化学及物理
《高分子化学》,编者:潘祖仁,化学工业出版社,第三版
《高分子物理》,编者:金日光,化学工业出版社,第二版
880
生物化学及生物化学实验
《生物化学》,编者:王镜岩等,高等教育出版社,第三版
《生物化学实验原理和方法》,编者:陈雅蕙等,北京大学出版社,第二版
881
热力学基础
《工程热力学》,编者:毕明树,化工出版社
882
环境科学概论
《环境科学概论》,编者:杨志峰、刘静玲,高等教育出版社;
《环境化学》,编者:戴树桂等,高等教育出版社,面向21世纪教材;
《环境化学教程》,编者:刘兆荣,陈忠明、赵广英、陈旦华,化学工业出版社;
《环境毒理学》,编者:孟繁强等, 高等教育出版社,普通高等教育“十五”国家规划教材;
《环境管理学》,编者:叶文虎,高等教育出版社,面向21世纪课程教材;
883
环境工程原理
《环境工程微生物学》,编者:周群英、高廷耀,高教出版社(第二版);
《水污染控制工程》,上下册,编者:高廷耀,高教出版社(第二版);
《环境工程学》,编者:蒋展鹏,高教出版社(第二版);
《大气污染控制工程》,编者:郝吉明、马广大,高教出版社(第二版);
884
物理化学及物理化学实验
《物理化学简明教程》(第二版),“十一五”规划教材,傅玉普 王新平主编,大连理工大学出版社
《物理化学学习指导》(第三版),编者:傅玉普等大连理工大学出版社
《物理化学考研重点热点导引与综合能力训练》(第三版),编者:傅玉普等大连理工大学出版社
《基础化学实验》(第二版),编者:孟长功、辛剑,高等教育出版社
885
有机化学及有机化学实验
《有机化学》(第二版),主编:高占先,高等教育出版社
《基础化学实验》(第二版),编者:孟长功、辛剑,高等教育出版社
886
化工原理及化工原理实验
《化工原理》(上、下册),高等教育出版社
《化工原理实验》,大连理工大学出版社
以上就是关于数据库中助学金表数据类型是什么全部的内容,包括:数据库中助学金表数据类型是什么、SQL Server数据库--表--新建表时的数据类型都是什么意思啊、关于一些学术资料数据库的英文名等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)