外连接 左连接以左表为主,右外连接以右表为主
外键
保证数据的一致性和完整性
删除外键:DROP TABLE *****;
CASCADE:从父表删除或更新且自动删除或更新子表中匹配的行
SETNULL:从父表中删除或更新行,并设置子表中的外键列为NULL,
如果使用改选项,必须保证子表列没有指定NOTNULL
联合查询
SELECT username FROM employee UNION SELECT username FROM cms_user;
由[NOT]IN引发的子查询
SELECT id,username FROM employee WHERE depid INLSELECT id FROM department;
将查询结果写入到数据表
INSERT[INTO]tbl_name [(col_name,.....)]SELECT....
创建表同时将查询结果写入到数据表中
CREATE TABLE[IF NOT EXISTS]tbl_name[(create_detinition,....)]select_statement
正则表达式查询
REGEXP匹配方式
^:匹配字符开始部分
$:匹配结尾部分
.:代表任意字符
[字符集合] [^字符集合]
*:代表0个或1个或多个其前字符
+:代表1个或多个其前字符
String{N}字符出现N次
运算符
算数 + - * / DIV 除法 %MOD取余
比较:= < > != <=>
逻辑:&& 或AND,||或OR,NOT 或! ,XOR亦或
运算优先级:
数学函数
CEIL() 取整进一; FLOOR():舍一取整
MOD取余 POWER():幂运算
ROUND()四舍五入 TRUNCATE():数字截取
ABS():取绝对值 PI()圆周率
SIGN(X)返回X的符号 X为 负数,0,正数
EXP(X)计算e的X次方
时间函数
CURDATE() 当前日期
CURTIME()当前时间
NOW现在时间
DAYNAME周几
MD5(str) 信息摘要算法
PASSWORD(str)密码算法
索引的使用
由数据库中一列或者多列组合而成的,作用是提高对表中数据查询速度
优点:提高检索数据的速度
缺点:创建和维护索引要耗费时间
提高查询速度会减慢写入速度
索引分类
普通:
唯一:UNIQUE
全文:FULLTEXT
单列:
多列
空间:SPATIAL
创建表时创建索引:[UNIQUE|FULLTEXT|SPATIAL] INDEX|KEY[索引名称](字段名称[ASC|DESC]);
已经存在的表加索引:
①CREATE[UNIQUE|FULLTEXT|SPATIAL] INDEX索引名称ON表名{字段名称[(长度)][ASC|DESC]};
②ALTER TABLE tbl_name ADD[UNIQUE|FULLTEXT|SPATIAL] INDEX 索引名称(字段名称[(长度)][ASC|DESC]);