sqlite的一些操作
查询和更新指令构成了 SQL 的 DML 部分: SELECT - 从数据库表中获取数据 UPDATE - 更新数据库表中的数据 DELETE - 从数据库表中删除数据 INSERT INTO - 向数据库表中插入数据 SQL 的数据定义语言 (DDL) 部分使我们有能力创建或删除表格。我们也可以定义索引(键),规定表之间的链接,以及施加表间的约束。
SQL 中最重要的 DDL 语句: CREATE DATABASE - 创建新数据库 ALTER DATABASE - 修改数据库 CREATE TABLE - 创建新表 ALTER TABLE - 变更(改变)数据库表 DROP TABLE - 删除表 CREATE INDEX - 创建索引(搜索键) DROP INDEX - 删除索引
SQL SELECT 语句 SELECT 语句用于从表中选取数据。 结果被存储在一个结果表中(称为结果集)。 SQL SELECT 语法 SELECT 列名称 FROM 表名称 以及: SELECT * FROM 表名称 注释:SQL 语句对大小写不敏感。SELECT 等效于 select
SQL SELECT DISTINCT 语句 在表中,可能会包含重复值。这并不成问题,不过,有时您也许希望仅仅列出不同(distinct)的值。 关键词 DISTINCT 用于返回唯一不同的值。 语法: SELECT DISTINCT 列名称 FROM 表名称
WHERE 子句 如需有条件地从表中选取数据,可将 WHERE 子句添加到 SELECT 语句。 语法 SELECT 列名称 FROM 表名称 WHERE 列 运算符 值
操作符描述 =等于 <>不等于 >大于 <小于 >=大于等于 <=小于等于 BETWEEN在某个范围内 LIKE搜索某种模式 注释:在某些版本的 SQL 中,操作符 <> 可以写为 !=。
引号的使用 请注意,我们在例子中的条件值周围使用的是单引号。 SQL 使用单引号来环绕文本值(大部分数据库系统也接受双引号)。如果是数值,请不要使用引号。 文本值: 这是正确的: SELECT * FROM Persons WHERE FirstName='Bush'
这是错误的: SELECT * FROM Persons WHERE FirstName=Bush 数值: 这是正确的: SELECT * FROM Persons WHERE Year>1965
这是错误的: SELECT * FROM Persons WHERE Year>'1965'
AND 运算符实例 使用 AND 来显示所有姓为 "Carter" 并且名为 "Thomas" 的人: SELECT * FROM Persons WHERE FirstName='Thomas' AND LastName='Carter'
OR 运算符实例 使用 OR 来显示所有姓为 "Carter" 或者名为 "Thomas" 的人: SELECT * FROM Persons WHERE firstname='Thomas' OR lastname='Carter'
结合 AND 和 OR 运算符 我们也可以把 AND 和 OR 结合起来(使用圆括号来组成复杂的表达式): SELECT * FROM Persons WHERE (FirstName='Thomas' OR FirstName='William') AND LastName='Carter'
ORDER BY 语句 ORDER BY 语句用于根据指定的列对结果集进行排序。 ORDER BY 语句默认按照升序对记录进行排序。 如果您希望按照降序对记录进行排序,可以使用 DESC 关键字。
以字母顺序显示公司名称: SELECT Company,OrderNumber FROM Orders ORDER BY Company
以逆字母顺序显示公司名称: SELECT Company,OrderNumber FROM Orders ORDER BY Company DESC
以逆字母顺序显示公司名称,并以数字顺序显示顺序号: SELECT Company,OrderNumber FROM Orders ORDER BY Company DESC,OrderNumber ASC
NSERT INTO 语句 INSERT INTO 语句用于向表格中插入新的行。 语法 INSERT INTO 表名称 VALUES (值1,值2,....) 我们也可以指定所要插入数据的列: INSERT INTO table_name (列1,列2,...) VALUES (值1,....)
Update 语句 Update 语句用于修改表中的数据。 语法: UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值
更新某一行中的一个列 我们为 lastname 是 "Wilson" 的人添加 firstname: UPDATE Person SET FirstName = 'Fred' WHERE LastName = 'Wilson'
更新某一行中的若干列 我们会修改地址(address),并添加城市名称(city): UPDATE Person SET Address = 'Zhongshan 23',City = 'Nanjing' WHERE LastName = 'Wilson'
DELETE 语句 DELETE 语句用于删除表中的行。 语法 DELETE FROM 表名称 WHERE 列名称 = 值
删除某行 "Fred Wilson" 会被删除: DELETE FROM Person WHERE LastName = 'Wilson'
删除所有行 可以在不删除表的情况下删除所有的行。这意味着表的结构、属性和索引都是完整的: DELETE FROM table_name 或者: DELETE * FROM table_name
TOP 子句 TOP 子句用于规定要返回的记录的数目。 对于拥有数千条记录的大型表来说,TOP 子句是非常有用的。 注释:并非所有的数据库系统都支持 TOP 子句。 SQL Server 的语法: SELECT TOP number|percent column_name(s) FROM table_name
现在,我们希望从上面的 "Persons" 表中选取头两条记录。 我们可以使用下面的 SELECT 语句: SELECT TOP 2 * FROM Persons
SQL TOP PERCENT 实例 现在,我们希望从上面的 "Persons" 表中选取 50% 的记录。 我们可以使用下面的 SELECT 语句: SELECT TOP 50 PERCENT * FROM Persons
LIKE 操作符 LIKE 操作符用于在 WHERE 子句中搜索列中的指定模式。 SQL LIKE 操作符语法 SELECT column_name(s) FROM table_name WHERE column_name LIKE pattern
接下来,我们希望从 "Persons" 表中选取居住在包含 "lon" 的城市里的人: 我们可以使用下面的 SELECT 语句: SELECT * FROM Persons WHERE City LIKE '%lon%'
SQL 通配符 在搜索数据库中的数据时,SQL 通配符可以替代一个或多个字符。 SQL 通配符必须与 LIKE 运算符一起使用。 在 SQL 中,可使用以下通配符: 通配符描述 %替代一个或多个字符 _仅替代一个字符 [charlist]字符列中的任何单一字符 [^charlist] 或者 [!charlist] 不在字符列中的任何单一字符
IN 操作符允许我们在 WHERE 子句中规定多个值。 SQL IN 语法 SELECT column_name(s) FROM table_name WHERE column_name IN (value1,value2,...)
现在,我们希望从上表中选取姓氏为 Adams 和 Carter 的人: 我们可以使用下面的 SELECT 语句: SELECT * FROM Persons WHERE LastName IN ('Adams','Carter')
操作符 BETWEEN ... AND 会选取介于两个值之间的数据范围。这些值可以是数值、文本或者日期。 SQL BETWEEN 语法 SELECT column_name(s) FROM table_name WHERE column_name BETWEEN value1 AND value2
重要事项:不同的数据库对 BETWEEN...AND 操作符的处理方式是有差异的。某些数据库会列出介于 "Adams" 和 "Carter" 之间的人,但不包括 "Adams" 和 "Carter" ; 某些数据库会列出介于 "Adams" 和 "Carter" 之间并包括 "Adams" 和 "Carter" 的人;而另一些数据库会列出介于 "Adams" 和 "Carter" 之间的人,包括 "Adams" , 但不包括 "Carter" 。所以,请检查你的数据库是如何处理 BETWEEN....AND 操作符的!
如需以字母顺序显示介于 "Adams"(包括)和 "Carter"(不包括)之间的人,请使用下面的 SQL: SELECT * FROM Persons WHERE LastName BETWEEN 'Adams' AND 'Carter'
如需使用上面的例子显示范围之外的人,请使用 NOT 操作符: SELECT * FROM Persons WHERE LastName NOT BETWEEN 'Adams' AND 'Carter'
通过使用 SQL,可以为列名称和表名称指定别名(Alias)。 SQL Alias 表的 SQL Alias 语法 SELECT column_name(s) FROM table_name AS alias_name 列的 SQL Alias 语法 SELECT column_name AS alias_name FROM table_name
我们可以使用下面的 SELECT 语句: SELECT po.OrderID,p.LastName,p.FirstName FROM Persons AS p,Product_Orders AS po WHERE p.LastName='Adams' AND p.FirstName='John' 不使用别名的 SELECT 语句: SELECT Product_Orders.OrderID,Persons.LastName,Persons.FirstName FROM Persons,Product_Orders WHERE Persons.LastName='Adams' AND Persons.FirstName='John' 从上面两条 SELECT 语句您可以看到,别名使查询程序更易阅读和书写
ELECT INTO 语句 SELECT INTO 语句从一个表中选取数据,然后把数据插入另一个表中。 SELECT INTO 语句常用于创建表的备份复件或者用于对记录进行存档。 SQL SELECT INTO 语法 您可以把所有的列插入新表: SELECT * INTO new_table_name [IN externaldatabase] FROM old_tablename
下面的例子会制作 "Persons" 表的备份复件: SELECT * INTO Persons_backup FROM Persons
IN 子句可用于向另一个数据库中拷贝表: SELECT * INTO Persons IN 'Backup.mdb' FROM Persons
如果我们希望拷贝某些域,可以在 SELECT 语句后列出这些域: SELECT LastName,FirstName INTO Persons_backup FROM Persons
SQL SELECT INTO 实例 - 带有 WHERE 子句 我们也可以添加 WHERE 子句。 下面的例子通过从 "Persons" 表中提取居住在 "Beijing" 的人的信息,创建了一个带有两个列的名为 "Persons_backup" 的表: SELECT LastName,Firstname INTO Persons_backup FROM Persons WHERE City='Beijing'
SQL NOT NULL 约束 NOT NULL 约束强制列不接受 NULL 值。 NOT NULL 约束强制字段始终包含值。这意味着,如果不向字段添加值,就无法插入新纪录或者更新记录。 下面的 SQL 语句强制 "Id_P" 列和 "LastName" 列不接受 NULL 值:
SQL UNIQUE 约束 UNIQUE 约束唯一标识数据库表中的每条记录。 UNIQUE 和 PRIMARY KEY 约束均为列或列集合提供了唯一性的保证。 PRIMARY KEY 拥有自动定义的 UNIQUE 约束。 请注意,每个表可以有多个 UNIQUE 约束,但是每个表只能有一个 PRIMARY KEY 约束。
SQL PRIMARY KEY 约束 PRIMARY KEY 约束唯一标识数据库表中的每条记录。 主键必须包含唯一的值。 主键列不能包含 NULL 值。 每个表应该都一个主键,并且每个表只能有一个主键。 (编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|