我是靠谱客的博主 妩媚水蜜桃,最近开发中收集的这篇文章主要介绍sqlite3数据库-sqlite语句(四),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

语法:
(a) SQL语句要以分号结尾;  
(b) SQL不区分关键字大小写;
(c)字符串和日期用单引号括起来,数字直接写;
(d) 使用英文,数字,下划线作为数据库,表和列的名称;

DDL(Data Definition Language,数据定义语言)

(1) CREATE:创建数据库和表等对象;

通过CREATE TABLE语句创建;表和列的命名需使用有意义的文字;指定列的数据类型(整数型,字符型和日期型等);可在表中设置约束(主键约束和NOT NULL约束等);

CREATE TABLE <表名>
( <列名1> <数据类型> <该列所需约束>,
  <列名2> <数据类型> <该列所需约束>,
  <列名3> <数据类型> <该列所需约束>,
              .
              .
  <该表的约束1>,<该表的约束2>,.... );

约束可以在定义列的时候进行设置,也可以在末尾进行设置(NOT NULL除外);

创建一张商品表:

CREATE TABLE Product
(id CHAR(4) NOT NULL,
 name VARCHAR(100) NOT NULL,
 type VARCHAR(32) NOT NULL,
 sale_price INTEGER,
 purchase_prise INTEGER,
 data DATA,
 PRIMARY KEY (id));
  1. INTEGER用于指定整数的列的数据类型,不能存小数;

  1. CHAR 用于指定存储字符串的列的数据类型(字符型);可以像CAHR(10)或CHAR(200)这样,在括号中指定该列可存储的字符串的最大长度;支付长超出最大长度的部分是无法输入到该列中的; 当存储的字符串长度达不到最大长度时,使用半角空格补足;

  1. VARCHAR 用来指定存储字符串的列的数据类型(字符串类型), 在括号中指定该列可存储的字符串的最大长度;该类型是可变长字符串形式来保存字符串的,当存储的字符串长度达不到最大长度时,不会使用半角空格补足;

  1. DATA 用于存储日期(年月日)的列的数据类型;如'2022-12-11';

  1. NOT NULL约束表该列不能输入空白;否则出错;

  1. PRIMARY KEY 用于给id列设置主键约束; 主键:唯一确定一行数据的列,主键列中值不能重复;

(2) DROP:删除数据库和表等对象;

DROP TABLE Product

说明: 删除的表是无法恢复的;

(3) 修改(变更)数据库和表等对象的结构;

使用ALTER TABLE语句向表中添加列或删除列;

把表创建出来后发现少了几列,无需删除表重新创建,可使用ALTER TABLE语句变更表;可添加或删除列;

  1. 添加列的语句

ALTER TABLE <表名> ADD COLUMN <列的定义>;
/*如在商品表中添加一列:*/
ALTER TABLE Product ADD COLUMN lagunge VATCHAR(100);
  1. 变更表名

若表名写错,可通过RENAME修改;

ALTER TABLE Product RENAME to Producter

示例

void CreateAddrDB()
{
    int ret;
    char *sql = NULL;
    char *errMsg = NULL;
    sqlite3 *ppDb = NULL;

    ret = sqlite3_open("./config.db", &ppDb);
    if(ret != SQLITE_OK){
        printf("open config.db failed %sn",sqlite3_errmsg(ppDb));
        return ;
    }

    printf("open config.db okn");

    sql = "CREATE TABLE Addressbook "
          "(regist_no INTEGER PRIMARY KEY NOT NULL,"
           "name VARCHAR(128) NOT NULL, "
           "address VARCHAR(256) NOT NULL,"
           "tel_no CHAR(10),"
           "mail_address CHAR(20));";

    ret = sqlite3_exec(ppDb,sql, NULL ,NULL, &errMsg);
    if(ret != SQLITE_OK){
        printf("sqlite3_exec create Addressbook err %sn",errMsg);
        sqlite3_free(errMsg);
    }

    sql = "INSERT INTO Addressbook VALUES(0,'ZhangShan','ShangHai','7652110','999@qq.com');";
    ret = sqlite3_exec(ppDb,sql, NULL ,NULL, &errMsg);
    if(ret != SQLITE_OK){
        printf("sqlite3_exec insert err %sn",errMsg);
        sqlite3_free(errMsg);
    }
    
    //sql = "ALTER TABLE Addressbook ADD COLUMN postal_code CHAR(8);";//ok
    //sql = "ALTER TABLE AddressBK RENAME to Addressbook;"; //ok
    sql = "DROP TABLE Addressbook"; //ok
    ret = sqlite3_exec(ppDb,sql, NULL ,NULL, &errMsg);
    if(ret != SQLITE_OK){
        printf("sqlite3_exec ALTER err %sn",errMsg);
        sqlite3_free(errMsg);
    }

    sqlite3_close(ppDb);
}

最后

以上就是妩媚水蜜桃为你收集整理的sqlite3数据库-sqlite语句(四)的全部内容,希望文章能够帮你解决sqlite3数据库-sqlite语句(四)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(31)

评论列表共有 0 条评论

立即
投稿
返回
顶部