SQLiite基础语法示例及说明

来源:互联网 发布:怎么投诉淘宝假货 编辑:程序博客网 时间:2024/05/22 05:09


CREATETABLE 语句

建表语句

语法:

CREATETABLE database_name.table_name(   column1 datatype  PRIMARY KEY(one or more columns),   column2 datatype,   column3 datatype,   .....   columnN datatype,);

示例:创建了一个 COMPANY表,ID作为主键,NOT NULL的约束表示在表中创建纪录时这些字段不能为 NULL

CREATETABLE COMPANY(   ID INT PRIMARY KEY     NOT NULL,   NAME TEXT   NOT NULL,   AGE INT    NOT NULL,   ADDRESS CHAR(50),   SALARY REAL);


DROPTABLE语句

删除表语句

语法:

DROP TABLEdatabase_name.table_name;

示例:删除表 COMPANY

DROP TABLECOMPANY;


INSERTINTO语句

插入语句

语法:

INSERTINTO TABLE_NAME (column1, column2, column3,...columnN)] VALUES (value1, value2, value3,...valueN);

INSERTINTO TABLE_NAME VALUES (value1,value2,value3,...valueN);

示例:

INSERTINTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)VALUES (1,'Paul',32,'California',20000.00);

INSERTINTO COMPANY VALUES (2,'James',24,'Houston',10000.00);


Select语句

用于从SQLite数据库表中获取数据,以结果表的形式返回数据。

语法:

SELECTcolumn1, column2, columnN FROM table_name;

SELECT * FROM table_name;

示例:获取COMPANY表中的所有记录

SELECT ID, NAME, AGE, ADDRESS, SALARY FROM COMPANY;

SELECT * FROM COMPANY;


WHERE子句

用来设置SELECT语句的条件语句。

语法:

SELECTcolumn1, column2, columnNFROMtable_nameWHERE [条件]

示例:列出了 AGE大于等于 45的所有记录

SELECT * FROM COMPANY WHERE AGE >=45;


AND运算符

允许在一个 SQL语句的 WHERE子句中的多个条件的存在。使用 AND运算符时,只有当所有条件都为真(true)时,整个条件为真(true)。

语法:

SELECTcolumn1, column2, columnNFROMtable_nameWHERE [condition1] AND [condition2]...AND [conditionN];

示例:列出了 AGE大于等于 25工资大于等于 65000.00的所有记录

SELECT * FROM COMPANY WHERE AGE >=25 AND SALARY >=65000;


OR运算符

用于结合一个 SQL语句的 WHERE子句中的多个条件。使用 OR运算符时,只要当条件中任何一个为真(true)时,整个条件为真(true)。

语法:

SELECTcolumn1, column2, columnNFROMtable_nameWHERE [condition1] OR [condition2]...OR [conditionN]

示例:列出了 AGE大于等于 25工资大于等于 65000.00的所有记录

SELECT * FROM COMPANY WHERE AGE >=25 OR SALARY >=65000;


Update语句

SQLiteUPDATE查询用于修改表中已有的记录。可以使用带有WHERE子句的 UPDATE查询来更新选定行,否则所有的行都会被更新。

带有 WHERE子句的UPDATE查询的基本语法如下:

UPDATEtable_nameSETcolumn1 = value1, column2 = value2...., columnN = valueNWHERE [条件];

示例:更新 ID为 2 的客户地址为 California

UPDATECOMPANY SET ADDRESS ='California' WHERE ID =2;


Delete语句

用于删除表中已有的记录。可以使用带有WHERE子句的 DELETE查询来删除选定行,否则所有的记录都会被删除。

带有 WHERE子句的DELETE查询的基本语法如下:

DELETEFROM table_nameWHERE [condition];

示例:删除 ID为 2 的客户

DELETEFROM COMPANY WHERE ID =2;


Like子句

两个通配符与 LIKE运算符一起使用:百分号(%)代表零个、一个或多个数字或字符。下划线(_)代表一个单一的数字或字符。这些符号可以被组合使用。

语法:

SELECTFROM table_nameWHEREcolumn LIKE 'XXXX'

示例:显示 COMPANY表中 AGE 2 开头的所有记录

SELECT * FROM COMPANY WHERE AGE LIKE '2%';


Glob子句

LIKE运算符不同的是,GLOB是大小写敏感的,对于下面的通配符,它遵循 UNIX的语法。星号(*)代表零个、一个或多个数字或字符。问号(?)代表一个单一的数字或字符。这些符号可以被组合使用。

语法:

SELECTFROM table_nameWHEREcolumn GLOB '?XXXX* 

示例:显示 COMPANY表中 AGE 2 开头的所有记录

SELECT * FROM COMPANY WHERE AGE GLOB '2*';


Limit子句

SQLiteLIMIT子句用于限制由SELECT语句返回的数据数量。

带有 LIMIT子句的SELECT语句的基本语法如下:

SELECTcolumn1, column2, columnNFROMtable_nameLIMIT [no of rows]

示例:只从表COMPANY中提取1行数据

SELECT * FROM COMPANY LIMIT 1;


ORDERBY子句

用来基于一个或多个列按升序或降序顺序排列数据。

语法:

SELECTcolumn-listFROMtable_name[WHERE 条件][ORDER BY column1, column2,.. columnN][ASC | DESC]; 

示例:将数据按SALARY升序排序

SELECT * FROM COMPANY ORDER BY SALARY ASC;


GroupBy

SQLite GROUP BY子句用于与SELECT语句一起使用,来对相同的数据进行分组。

SELECT语句中,GROUPBY子句放在WHERE子句之后,放在 ORDER BY子句之前:

SELECTcolumn-listFROMtable_nameWHERE [ conditions ]GROUP BYcolumn1, column2....columnNORDER BYcolumn1, column2....columnN

示例:每个客户的工资总额

SELECTNAME, SUM(SALARY) FROM COMPANY GROUP BY NAME;


Having子句

HAVING子句允许指定条件来过滤将出现在最终结果中的分组结果。WHERE子句在所选列上设置条件,而HAVING子句则在由 GROUP BY子句创建的分组上设置条件。

下面是HAVING子句在 SELECT查询中的位置:

SELECTFROMWHEREGROUP BYHAVINGORDER BY

包含 HAVING子句的SELECT语句的语法:

SELECTcolumn1, column2FROMtable1, table2WHERE [ conditions ]GROUP BYcolumn1, column2HAVING [ conditions ]ORDER BYcolumn1, column2

示例:如果COMPANY表中用于长期记录员工工资情况,则下面语句为显示员工姓名计数小于 2的所有记录

SELECT * FROM COMPANY GROUP BY name HAVING count(name)<2;



Distinct关键字

SQLiteDISTINCT关键字与SELECT语句一起使用,来消除所有重复的记录,并只获取唯一一次记录。

语法:

SELECTDISTINCT column1, column2,.....columnNFROMtable_nameWHERE [condition]

示例:

SELECT DISTINCT name FROM COMPANY;


0 0
原创粉丝点击