SQL DML 和 DDL
DML:数据库操作语言
- SELECT – 从数据库表中获取数据
- UPDATE – 更新数据库表中的数据
- DELETE FROM – 从数据库表中删除数据
- INSERT INTO – 向数据库表中插入数据
DDL:数据库定义语言
- CREATE DATABASE – 创建新数据库
- ALTER DATABASE – 修改数据库
- CREATE TABLE – 创建新表
- ALTER TABLE – 变更(改变)数据库表
- DROP TABLE – 删除表
- CREATE INDEX – 创建索引(搜索键)
- DROP INDEX – 删除索引
SELECT
SELECT column_name1,column_name2 FROM table_name
SELECT * FROM table_name
SELECT DISTINCT
如果你仅仅只想列出不同(distinct)的值。关键词 DISTINCT
用手返回唯一不同的值。
SELECT DISINCT column_name FROM table_name
WHERE
如果要有条件地从表中选取数据,可以把WHERE
子句添加到 SELECT
语句。
SELECT column_name FROM table_name WHERE column_name 运算符 value
WHERE的运算符种类
操作符 | 描述 |
---|---|
= | 等于 |
<> | 不等于 |
> | 大于 |
< | 小于 |
>= | 大于等于 |
<= | 小于等于 |
BETWEEN | 在某个范围内 |
LIKE | 搜索某种形式 |
引号的使用
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 & OR
AND
和 OR
运算符用于基于一个以上的条件对记录进行过滤。
SELECT * FROM table_name WHERE value1='' AND value2=''
SELECT * FROM table_name WHERE value1='' OR value2=''
ORDER BY
ORDER BY
语句用于根据指定的列对结果集进行排序。
ORDER BY
语句默认按照升序对记录进行排序。
如果您希望按照降序对记录进行排序,可以使用 DESC
关键字。
INSERT INTO
INSERT INTO
语句用于向表格中插入新的行。
INSERT INTO table_name VALUES (value1, value2,....)
我们也可以指定插入数据的列
INSERT INTO table_name (column_name1, column_name2,...) VALUES (value1, value2,....)
UPDATE
UPDATE
语句用于修改表中的数据。
UPDATA table_name SET column_name = new_value WHERE column_name = old_value
DELETE FROM
DELETE FROM
语句用于删除表中的行。
DELETE FROM table_name WHERE column_name = value
CRAET TABLE
CREATE TABLE
语句用于在任何给定的数据库创建一个新表。创建基本表,涉及到命名表、定义列及每一列的数据类型。
CREAT TABLE table_name (column_name datatype, column_name datatype,...)
DROP TABLE
DROP TABLE
语句用来删除表定义及其所有相关数据、索引、触发器、约束和该表的权限规范。
DROP TABLE table_name
ALTER TABLE
ALTER TABLE
语句用于在已有的表中添加、修改或删除列。
ALTER TABLE table_name ADD column_name datatype
SQLite 常用数据类型
数据类型 | 描述 |
---|---|
VARCHAR(n) | 字符/字符串。可变长度。最大长度 n。 |
BOOLEAN | 存储 TRUE 或 FALSE 值 |
INTEGER | 整数值(没有小数点)。精度 10。 |
REAL | 近似数值,尾数精度 16。 |
DATE | 存储年、月、日的值。 |
TIME | 存储小时、分、秒的值。 |
DATETIME | 存储年、月、日、小时、分、秒的值。 DEFAULT(DATETIME('NOW','LOCALTIME')) / CURRENT_TIMESTAMP |
BLOB | 用于 BLOBs(Binary Large OBject) 。存放最多 65,535 字节的数据。 |
TEXT | 存放最大长度为 65,535 个字符的字符串。 |
SQLite 约束
数据类型 | 描述 |
---|---|
NOT NULL | 确保某列不能有 NULL 值 |
PRIMARY KEY | 唯一标识数据库表中的各行/记录 |
UNIQUE | 确保某列中的所有值是不同的 |
CHECK | 确保某列中的所有值满足一定条件 |
DEFAULT | 当某列没有指定值时,为该列提供默认值 |