SELECT进阶
CASE的用法
UPDATE table
SET column =
CASE
WHEN column1=val1
THEN newval1
WHEN column2=val2
THEN newval2
ELSE newval3
END;ORDER BY语句对字符排序规则
!”#$%&’()*+,-./0123:;<=>?@ABCD[]^_`abcd{|}~
注意最前面有个空格ORDER BY后面可以跟多列
- ORDER BY后面加DESC表示逆序,ASC正序,为默认
- 函数SUM()求和 ; AVG()求平均
- distinct选出与众不同的值
- limit后跟一个参数n表示限制n个查询结果;后跟两个参数n,m表示从n开始,查询m个数量(MySQL从0开始编号)
多张表的数据库设计
- 外键创建
CREATE TABLE foreign_key(
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
interest VARCHAR(10) NOT NULL,
foreign_id INT NOT NULL,
CONSTRAINT sourcetable_sourceid_fk
FOREIGN KEY (foreign_id)
REFERENCES sourcetable (sourceid)
); - 第二范式:1.符合第一范式2.没有部分函数依赖
(只要所有列都是主键的一部分或者表中有唯一主键列符合1NF的表也会符合2NF) - 第三范式:1.符合第二范式2.没有传递函数依赖性(传递函数依赖表示任何非键列与相同表中的其他非键列有关联)