zoukankan      html  css  js  c++  java
  • SQL使用总结

    #pragma mark 一. 数据定义语句
    //类型: integer整型 text文本 blob二进制 real浮点
    //创建表, 如果没有就创建
    1. create table if not exists 表名 (字段名1 字段类型1, 字段名2 字段类型2, …) ;
    
    //如果表格存在就删除表格
    2. drop table if exists 表名 ;
    
    #pragma mark 二. 数据操作语句
    //将Values后面跟的值插入到前面表中对应的字段
    3. insert into 表名 (字段1, 字段2, …) values (字段1的值, 字段2的值, …) ;
    //更新对应字段的值
    4. update 表名 set 字段1 = 字段1的值, 字段2 = 字段2的值, … ;
    //删除表中记录
    5. delete from 表名 ;
    
    #pragma mark 三. 条件语句
    //当 2个条件同时成立
    where 字段1 = 某个值 and 字段2 > 某个值 ;
    
    //当 2个条件有1个成立
    where 字段1 = 某个值 or 字段2 = 某个值 ;
    
    #pragma mark 四. 查询语句
    // 查询指定表的某写字段名的值
    6. select 字段1, 字段2, … from 表名 ;
    // 查询一张表中所有的记录 * --> 代表所有字段
    7. select * from 表名;
    // 查询表中记录的个数
    8. select count ( * ) from 表名 ;
    // 查询表中所有的记录, 并按照某个字段排序 默认升序, 如果要降序, 添加DESC
    9. select * from t_student order by 字段;
    // 用于分页查询 参数1:索引 参数2:取值的个数
    // 查询记录, 根据指定的索引开始查询, 查询N个
    10. select * from 表名 limit 数值1, 数值2 ;
    
    #pragma mark 五. 约束
    //一般来说, not null, primary key
    简单约束: not null, unique, default
    主键约束: primary key
    外键约束: constraint "外键名称" foreign key ("当前表要添加外键约束的字段") references "另一张表名" ("另一张表的要添加约束的字段")
    
    // 创建一个student表, 要求id字段整型, id是主键; name文本类型不能为空并且不能重复;age是整型不能为空, 默认为1
    // classID整型不能为空, 给classID增加了外键约束, 外键的名称是"fk_t_student_classID_t_class_classID"
    // foreign key (classId)指定了当前表的某个字段要添加外键约束
    // references t_class (classID)): 连接的另一张表的要添加约束的字段
    11. create table t_student (id integer primary key, name text not null unique, age integer not null default 1, classID integer not null , constraint fk_t_student_classID_t_class_classID foreign key (classId) references t_class (classID)) ;
    
    #pragma mark 六. 表连接查询(多表查询)(起别名)
    // 查询学生表中名字和年龄, 来自学生表(别名s) 班级表(别名=c) 绑定学生表中class_id和班级表中id关联 并且班级表中的name为"hsl"
    12. select s.name,s.age from t_student s, t_class c where s.class_id = c.id and c.name = ‘hl’;
    

    //创建数据库

    + (void)initialize

    {

        NSString *path = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)lastObject] stringByAppendingPathComponent:@"data.sqlite"];

        NSLog(@"%@",path);

        _db = [FMDatabase databaseWithPath:path];

         _db.traceExecution = YES;//追踪我们生成的sql语句

        

        BOOL resultDB = [_db open];

        

        if (!resultDB) {

            return;

        }

        

        BOOL result_table = [_db executeUpdateWithFormat:@"CREATE TABLE IF NOT EXISTS t_student (id integer PRIMARY KEY,name text NOT NULL ,age INTEGER NOT NULL);"];

        if (result_table) {

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

        }

        

    }

    //*插入数据*/

    - (void)insertData:(DS_SqlModel *) dataModel;

    {

        BOOL insertSucc = [_db executeUpdateWithFormat:@"INSERT INTO t_student (name,age) VALUES (%@,%@);",dataModel.name,dataModel.age];

        if (insertSucc) {

            NSLog(@"插入成功");

        }

        

    }

    //*删除数据*/

    - (void)deleteData:(DS_SqlModel *) dataModel;

    {

        BOOL deleteSucc = [_db executeUpdateWithFormat:@"DELETE FROM t_student WHERE name = '李雷';"];

        if (deleteSucc) {

            NSLog(@"删除成功");

        }

    }

    //*修改数据*/

    - (void)updateData:(DS_SqlModel *) dataModel;

    {

        BOOL updateSucc = [_db executeUpdateWithFormat:@"UPDATE t_student SET age = 20 WHERE name ='李雷';"];

        if (updateSucc) {

            NSLog(@"修改成功");

        }

    }

    //*查找数据*/

    - (NSArray *)selectData;

    {

        NSMutableArray *mutArr = [NSMutableArray array];

        FMResultSet *set = [_db executeQuery:@"SELECT * FROM t_student;"];

        while (set.next) {

            NSString *name = [set stringForColumn:@"name"];

            int age = [set  intForColumn:@"age"];

            

            DS_SqlModel *model = [[DS_SqlModel alloc] init];

            model.name = name;

            model.age =@(age);

            [mutArr addObject:model];

        }

        

        return mutArr.copy;

    }

  • 相关阅读:
    Ubuntu16.04 安装Teamviewer
    Redis 中的事务
    apache rewrite .htaccess 站点内容重定向实例
    PHP_EOL常量
    PHP 设计模式之适配器模式
    MYSQL优化
    php设计模式之简单工厂模式
    php设计模式之单例模式
    PHP设计模式之策略模式
    PHP 设计模式之观察者模式 (转载)
  • 原文地址:https://www.cnblogs.com/deng37s/p/5155696.html
Copyright © 2011-2022 走看看