SELECT customers.cust_id, orders.order_num FROM customers LEFTJOIN orders ON customers.cust_id = orders.cust_id;
右连接(RIGHT JOIN)
右外连接就是保留右表没有关联的行。
1 2 3
SELECT customers.cust_id, orders.order_num FROM customers RIGHTJOIN orders ON customers.cust_id = orders.cust_id;
组合(UNION)
UNION 运算符将两个或更多查询的结果组合起来,并生成一个结果集,其中包含来自 UNION 中参与查询的提取行。
UNION 基本规则:
所有查询的列数和列顺序必须相同。
每个查询中涉及表的列的数据类型必须相同或兼容。
通常返回的列名取自第一个查询。
默认会去除相同行,如果需要保留相同行,使用 UNION ALL。
只能包含一个 ORDER BY 子句,并且必须位于语句的最后。
应用场景:
在一个查询中从不同的表返回结构数据。
对一个表执行多个查询,按一个查询返回数据。
组合查询示例:
1 2 3 4 5 6 7
SELECT cust_name, cust_contact, cust_email FROM customers WHERE cust_state IN ('IL', 'IN', 'MI') UNION SELECT cust_name, cust_contact, cust_email FROM customers WHERE cust_name ='Fun4All';
五、函数
文本处理
函数
说明
LEFT()、RIGHT()
左边或者右边的字符
LOWER()、UPPER()
转换为小写或者大写
LTRIM()、RTIM()
去除左边或者右边的空格
LENGTH()
长度
SUBSTRING_INDEX(str, split, index)
截取 第 index 个 split 之前、之后(index为负数)的所有字符,如果不存在,则返回整个字符串
ALTER TABLE table_name CHANGE old_field_name new_field_name field_type;
删除字段
1
ALTER TABLE table_name DROP field_name;
修改数据库的字符集
1
ALTER DATABASE db_name DEFAULT CHARACTER SET character_name [COLLATE ...];
修改表默认字符集和所有字符列
1 2
ALTER TABLE tbl_name CONVERT TO CHARACTER SET character_name [COLLATE ...] 如:ALTER TABLE logtest CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;
修改表的默认字符集
1 2
ALTER TABLE tbl_name DEFAULT CHARACTER SET character_name [COLLATE...]; 如:ALTER TABLE logtest DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
修改字段的字符集
1 2
ALTER TABLE tbl_name CHANGE c_name c_name CHARACTER SET character_name [COLLATE ...]; 如:ALTER TABLE logtest CHANGE title title VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_general_ci;
DCL
用户
创建用户
1 2 3
CREATE USER 'ifan'@'%' IDENTIFIED BY '12345'; GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER, REFERENCES, INDEX, DROP ON database.table TO 'ifan'@'%'; FLUSH PRIVILEGES;
修改密码
1
set password for 'ifan'@'%' = password('123456');
删除用户
1
DROP USER 'ifan'@'%';
删除用户权限
1 2
REVOKE DELETE, DROP ON database.table FROM 'ifan'@'%' FLUSH PRIVILEGES;