修改数据表
添加单列:
ALTER TABLE tbl_name ADD [COLUMN] col_name column_definition [FIRST|AFTER col_name];//省略FIRST|AFTER col_name将默认你所添加的列位于所有列的最后面
例:ALTER TABLE user ADD age TINYINT UNSIGNED DEFAULT 20;
添加多列:
ALTER TABLE tbl_name ADD [COLUMN](col_name column_definition,…);
删除列:
ALTER TABLE tbl_name DROP [COLUMN] col_name;
例:ALTER TABLE user DROP password,DROP age;
子查询(Subquery)是指出现在其它SQL语句中的SELECT子句
SELECT * FROM t1 WHERE col1 = (SELECT col2 FROM t2);
其中SELECT * FROM t1,称为Quter Query/Outer Statement
SELECT col2 FROM t2,称为子查询(Subquery)
子查询指嵌套在查询内部,且必须始终出现在圆括号内。
子查询可以包含多个关键字或条件,
如DISTINCT,GROUP BY,ORDER BY,LIMIT,函数等
子查询的外层查询可以是:SELECT,INSERT,UPDATE等
子查询返回值:子查询可以返回标量,一行,一列或子查询
由比较运算符(>,<,>=,<=,!=,<>等)引发的子查询
用ANY,SOME或ALL修饰的比较运算符
关键字 | ANY | SOME | ALL |
---|---|---|---|
>,>= | 最小值 | 最小值 | 最大值 |
<,<= | 最大值 | 最大值 | 最小值 |
= | 任意值 | 任意值 | |
!=,<> | 任意值 |
例:SELECT goods_name FROM tdb_goods WHERE goods_price > ANY (SELECT goods_price FROM tdb_goods WHERE goods_ctae ="游戏本");
//查询 tdb_goods表中价格大于任一且种类为游戏本的商品名字
由[NOT] IN/EXISTS引发的子查询
IN / NOT IN顾名思义在里面或不在里面
如果子查询返回任何行,EXISTS将返回true,否则为false;