酷狗音乐盒2013免费下-windows7优化设置

touchesbegan
2023年3月31日发(作者:谷歌不能用了吗)

常⽤SQLite语句及SQLite3的使⽤

1.创建表

CREATE创建

TABLE表

SQL约束⽤于限制加⼊表的数据的类型,在创建表时规定约束,主要有以下⼏种约束:

PRIMARYKEY主键每个表中都应有且只能有⼀个主键主键列不能为NULL值

AUTOINCREMENT⾃动增长

NOTNULL⾮空约束强制列不接受空值空值⽆法插⼊新纪录或更新纪录

UNIQUE唯⼀的约束唯⼀标识数据库表中的某个字段

语法:

CREATETABLE表名(字段名1字段类型,字段名2字段类型,……)

CREATETABLETeacher1(teacher_idINTEGERPRIMARYKEYAUTOINCREMENTNOTNULLUNIQUE,teacher_name

TEXT,teacher_sexBOOLEAN)

CREATETABLETeacher2(teacher_idINTEGERPRIMARYKEYAUTOINCREMENT,teacher_nameTEXT,teacher_sexBOOLEAN)

2.插⼊数据

INSERT插⼊⽤于表中数据的增加

语法1:字段和值对应

INSERTINTO表名(字段1,字段2,字段3,字段4)VALUES(值1,值2,值3,值4)

INSERTINTOStudents(name,sex)VALUES('zhangsan',0)

语法2:下⽅形式必须值跟字段⼀⼀对应⼀个都不能少

INSERTINTO表名VALUES(值1,值2,值3,值4,值5)

INSERTINTOStudentsVALUES('张三','男',23,175,70)

当值为⽂本时需要加单引号;当值为整型不需要加引号

3.查询数据

SELECT查询

全部(表⽰查询表中所有数据)

FROM

语法:

SELECT字段名FROM表名

SELECT字段名,字段名,字段名,……FROM表名

SELECT*FROM表名

SELECT*FROMStudents

语法:

在SELECT查询语句后+WHERE字段名运算符值

WHERE语句⽤于有条件地从表中选取数据,也可将WHERE⼦句添加到SELECT语句

SELECT*FROMStudentsWHEREnumber<10

SELECT*FROMStudentsWHEREnumber<10ORsex=1

SELECT*FROMStudentsWHEREnumber<10ANDnumber>5

SELECT*FROMStudentsWHEREageBETWEEN10AND100

提供运算符有=,!=,>,<,>=,<=,BETWEEN(在某个范围内前闭后闭)

AND和OR运算符⽤于基于⼀个或多个条件对数据进⾏过滤

如果两个条件都成⽴AND运算符返回⼀条数据

只要⼀个条件成⽴OR运算符就返回⼀条数据

like匹配

SELECT*FROMStudentsWHEREnamelike'zhang%'

SELECT*FROMStudentsWHEREnamelike'zhang_'

LIKE(搜索某种模式%可以代表任意⼀串字符代表⼀个任意字符)

%通配多个字符,通配⼀个字符

count()查询表中数据的条数。

SELECTcount()FROMstudent

数据库提供内置函数:MAX(最⼤值),MIN(最⼩值),AVG(平均值)SUM(总值)

语法:

SELECTMAX(字段名)FROM表名

max(列名)min(列名)查询这⼀列的最⼤,最⼩值.

SELECTmax(student_age)FROMstudent

嵌套:

SELECT*FROMstudentWHEREstudent_age=(SELECTmax(student_age)FROMstudent)

ORDERBY语句⽤于对结果集进⾏排序

根据指定列对结果集进⾏排序默认按照升序对记录进⾏排序,降序DESC,升序ASC

desending降序

asending升序

语法:

SELECT字段名FROM表名称ORDERBY字段名条件(DESC或ASC)

SELECT字段名,字段名FROM表名称ORDERBY字段名条件,字段名条件(DESC或ASC)

SELECT*FROMStudentsORDERBYnameDESC,ageDESC

SELECT*FROMstudentORDERBYstudent_ageASC

LIMIT限制

从第六条开始往后的15条

SELECT*FROMStudentsLIMIT5,15

4.修改数据

UPDATE更新语句⽤来修改表中的数据

set设置

语法:

UPDATE表名称SET列名称=新值WHERE列名称=某值

UPDATE表名称SET列名称=新值,列名称=新值WHERE列名称=某值

UPDATEStudentsSETage=20WHEREname='李雷'

UPDATEStudentsSETage=20,height=190.5WHEREname='李雷'

UPDATEStudentssetname='lisi',sex=1wherenumber<10ANDnumber>5

5.删除数据

DELETE删除⽤于删除表中的⾏

语法:

DELETEFROM表名称WHERE列名称=值

DELETEFROMStudentsWHEREname='⼩芳'

DELETEFROMStudentsWHEREnumber>25

SQLite3的使⽤

/*

使⽤数据库的准备⼯作

1.导⼊静态库

2.导⼊sqlite3.h头⽂件#import

使⽤数据库注意事项

1.使⽤数据库时,要保证数据库⽂件存在

2.使⽤数据库前,要保证数据库是打开状态

3.使⽤数据库后,要关闭数据库

*/

#import"ViewController.h"

#import

@interfaceViewController()

{

sqlite3*_db;

}

@property(retain,nonatomic)IBOutletUITextField*nameText;

@property(retain,nonatomic)IBOutletUITextField*ageTextField;

@end

@implementationViewController

-(void)viewDidLoad

{

[superviewDidLoad];

NSLog(@"%@",NSHomeDirectory());

}

-(void)dealloc{

[_nameTextrelease];

[_ageTextFieldrelease];

[superdealloc];

}

#pragmamark--创建数据库⽂件并打开数据库

-(BOOL)openDatabase

{

//数据库⽂件路径

NSString*filePath=[NSHomeDirectory()stringByAppendingPathComponent:@"Documents/"];

//UTF8String把oc的字符串转化成c的字符串

constchar*filename=[filePathUTF8String];

//sqlite3_open打开数据库的⽅法;如果有数据库⽂件就直接打开,如果没有数据库⽂件系统会⾃动创建⼀个数据库⽂件,并打开

//参数1.数据库⽂件的路径2.数据库对象,要打开的数据库

//返回值表⽰操作的状态码

intresult=sqlite3_open(filename,&_db);

if(result==SQLITE_OK)

{

NSLog(@"数据库打开成功");

returnYES;

}

else

{

NSLog(@"数据库打开失败");

//sqlite3_close关闭数据库的⽅法

sqlite3_close(_db);

returnNO;

}

}

}

#pragmamark--创建表

-(IBAction)createTable:(id)sender

{

//1.打开数据库

if(![selfopenDatabase])

{

return;

}

//2.创建表

NSString*str=@"CREATETABLEIFNOTEXISTSstudent(student_idINTEGERPRIMARYKEYAUTOINCREMENT,nameTEXT,ageINTEGER)";

char*error=nil;

//sqlite3_exec对数据库的操作:创建表,增删改,都是⽤这个⽅法

//参数1.数据库对象语句3.回调函数nil4.回调函数的参数nil

if(sqlite3_exec(_db,[strUTF8String],nil,nil,&error)==SQLITE_OK)

{

NSLog(@"创建表成功");

}

else

{

NSLog(@"创建表失败:%s",error);

}

//3.关闭数据库

sqlite3_close(_db);

}

#pragmamark--添加数据

-(IBAction)insertInto:(id)sender

{

//1.打开数据库2.执⾏增删改查的操作3.关闭数据库

if(![selfopenDatabase])

{

return;

}

NSString*str=[NSStringstringWithFormat:@"insertintostudent(name,age)values('%@',%d)",_,_ue];

char*error=nil;

if(sqlite3_exec(_db,[strUTF8String],nil,nil,&error)==SQLITE_OK)

{

NSLog(@"插⼊数据成功");

}

else

{

NSLog(@"插⼊数据失败:%s",error);

}

sqlite3_close(_db);

}

#pragmamark--删除数据

-(IBAction)delete:(id)sender

{

if(![selfopenDatabase])

{

return;

}

NSString*str=@"deletefromstudentwherestudent_id=6";

char*error=nil;

if(sqlite3_exec(_db,[strUTF8String],nil,nil,&error)==SQLITE_OK)

{

NSLog(@"删除成功");

}

else

{

NSLog(@"删除失败:%s",error);

}

sqlite3_close(_db);

}

#pragmamark--修改数据

-(IBAction)upData:(id)sender

{

if(![selfopenDatabase])

{

return;

}

NSString*str=[NSStringstringWithFormat:@"updatestudentsetname='%@'wherestudent_id=%d",@"马云",2];

if(sqlite3_exec(_db,[strUTF8String],nil,nil,nil)==SQLITE_OK)

{

NSLog(@"修改数据成功");

}

else

{

NSLog(@"修改数据失败");

}

sqlite3_close(_db);

}

#pragmamark--查询数据

-(IBAction)select:(id)sender

{

//先打开数据库,查询,关闭数据库

if(![selfopenDatabase])

{

return;

}

NSString*str=@"select*fromstudent";

//缓存区

sqlite3_stmt*stmt=nil;

//sqlite3_prepare把sql语句放⼊缓存区

//参数1.数据库对象语句语句的长度,-1全部的sql语句4.缓存区5.剩余部分的sql语句

if(sqlite3_prepare(_db,[strUTF8String],-1,&stmt,nil)==SQLITE_OK)

{

//sqlite3_step单步查询数据,⼀次只查询⼀条数据

//SQLITE_ROW表⽰数据库中还有数据继续下⼀个查询

//SQLITE_DONE表⽰数据查询完毕

while(sqlite3_step(stmt)==SQLITE_ROW)

{

//sqlite3_column_text查询字符串的⽅法

//参数1.缓存区2.字段所在的列号

char*cname=(char*)sqlite3_column_text(stmt,1);

intage=sqlite3_column_int(stmt,2);

//stringWithUTF8String把c的字符串转化成oc的字符串

NSString*name=[NSStringstringWithUTF8String:cname];

NSLog(@"%@---%d",name,age);

}

//查询结束,释放缓存区

sqlite3_finalize(stmt);

}

sqlite3_close(_db);

}

-(void)touchesBegan:(NSSet*)toucheswithEvent:(UIEvent*)event

{

[dEditing:YES];

}

@end

更多推荐

touchesbegan