概述
语法:
(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));
INTEGER用于指定整数的列的数据类型,不能存小数;
CHAR 用于指定存储字符串的列的数据类型(字符型);可以像CAHR(10)或CHAR(200)这样,在括号中指定该列可存储的字符串的最大长度;支付长超出最大长度的部分是无法输入到该列中的; 当存储的字符串长度达不到最大长度时,使用半角空格补足;
VARCHAR 用来指定存储字符串的列的数据类型(字符串类型), 在括号中指定该列可存储的字符串的最大长度;该类型是可变长字符串形式来保存字符串的,当存储的字符串长度达不到最大长度时,不会使用半角空格补足;
DATA 用于存储日期(年月日)的列的数据类型;如'2022-12-11';
NOT NULL约束表该列不能输入空白;否则出错;
PRIMARY KEY 用于给id列设置主键约束; 主键:唯一确定一行数据的列,主键列中值不能重复;
(2) DROP:删除数据库和表等对象;
DROP TABLE Product
说明: 删除的表是无法恢复的;
(3) 修改(变更)数据库和表等对象的结构;
使用ALTER TABLE语句向表中添加列或删除列;
把表创建出来后发现少了几列,无需删除表重新创建,可使用ALTER TABLE语句变更表;可添加或删除列;
添加列的语句
ALTER TABLE <表名> ADD COLUMN <列的定义>;
/*如在商品表中添加一列:*/
ALTER TABLE Product ADD COLUMN lagunge VATCHAR(100);
变更表名
若表名写错,可通过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语句(四)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复