1 方括号 [] 通配符
用来指定一个字符集,它必须匹配通配符的一个字符。
eg :查询名字里面有S或者Q的人
select A from B where A.name like '[SQ]%'
2 常用文本处理函数
LOWER() 将字符串转换为小写
UPPER()将字符串转换为大写
3 sql聚集函数
AVG()返回某列的平均值
COUNT()返回某列的行数
MAX()返回某列的最大值
MIN()返回某列的最小值
SUM()返回某列值之和
上诉函数忽略列值为null的行
4 having和where
where在数据分组前进行过滤,having在数据分组后进行过滤。
使用having 应结合GROUP BY 子句,
5 select子句及其顺序
SELECT 要返回的列或者表达式
FROM 从中检索数据的表
WHERE 行级过滤
GROUP BY 分组说明
HAVING 组级过滤
ORDER BY 输出顺序排序
6 union 使用规则
union必须由两条或者以上的select语句组成,语句之间用关键字union分割。
union中的每个查询必须包含相同的列,表达式或聚集函数
列数据类型必须兼容,类型不必完全相同,但必须是DBMS 可以隐含转换的类型
7 insert 语句
insert into A (A.ID,A.NAME)
VALUES('1','SAI')
或者 insert into A(A.ID,A.NAME)
SELECT A.ID,A.NAME FROM B
insert 通常只插入一行,要插入多行,必须执行多个insert语句,insert select 是一个例外,他可以用一条insert插入多行,不管select语句返回多少行,都将被insert插入
8 update
UPDATE A SET A.name = 'Case'
WHERE A.id = '1'
update语句总是要以更新的表名开始,set命令用来将新值赋给给更新的列
9 delete
DELETE FROM A
where A.id ='1'
10表创建基础
利用create table 创建表,必须给出以下信息:
新表的名字,在关键字create table之后给出
表列的名字和定义,用逗号分隔
有的DBMS还要求指定表的位置
输入:
CREATE TABLE B
(
id CHAR(10) primary key NOT NULL
name CHAR(254) NOT NULL
price DECIMAL(8,2) NOT NULL
)
11 事务
BEGIN TRANSACTION
DELETE A where A.ID =1
DELETE B where B.ID =2
COMMIT TRANSACTION
12 外键
外键是表中的一列,其值必须列在另一表的主建中,外键是用保证引用完整性的重要部分。
eg:
CREATE TABLE Orders
(
order_id INTEGER NOT NULL PRIMARY KEY,
order_date DATETIME NOT NULL
customer_id CHAR(10) NOT NULL REFERENCES Customers(customer_id)
)
相同的工作也可以再alter table中用constraint语法来完成
ALTER TABLE Oerders
ADD CONSTRAINT
FOREINGN KEY(customer_id) REFERENCES Customers(customer_id)
13 唯一约束
唯一约束是用来保证一列(或一组列)中的数据是唯一的,类似于主键,但与主键存在以下区别。
表可包含多个唯一约束,但每个表只允许一个主键
唯一约束列可包含null值
唯一约束列可修改和更新
唯一约束列的值可重复使用
唯一约束不能用来定义外键
14 索引
在开始创建索引前,应记住以下内容:
索引改善检索操作的性能,但降低了数据插入,修改和删除的性能。在执行这些操作时,DBMS必须动态地更新索引。
索引数据可能要占用大量的存储空间
并非所有数据都适合做索引,取值不多的数据不如具有更多可能值的数据。
索引用于数据过滤和数据排序
可以在索引中定义多个列
索引用CREATE INDEX语句创建
CREATE INDEX product_name_ind
on Product(product_name);
索引必须唯一命名,这里的索引名product_name_ind在关键字CREATE INDEX之后定义。
on 用来指定被索引的表,而索引中包含的列(此例中仅有一列),在表名后的圆括号中给出。