酷狗音乐盒2013免费下-windows7优化设置
![touchesbegan](/uploads/image/0145.jpg)
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
发布评论