- 使用concat( )函数拼接多个列:
mysql> select concat(ename,' (',job,')') as 'name (job)' from emp;
+-------------------+
| name (job) |
+-------------------+
| SMITH (CLERK) |
| ALLEN (SALESMAN) |
| WARD (SALESMAN) |
| JONES (MANAGER) |
| MARTIN (SALESMAN) |
| BLAKE (MANAGER) |
| CLARK (MANAGER) |
| SCOTT (ANALYST) |
| KING (PRESIDENT) |
| TURNER (SALESMAN) |
| ADAMS (CLERK) |
| JAMES (CLERK) |
| FORD (ANALYST) |
| MILLER (CLERK) |
+-------------------+
- 使用rtrim( )函数删除指定字段右边的空格,ltrim( )删除左边空格,trim( )删除两边空格。
- union可将多个select查询子句的查询结果合并,并自动去除重复记录,若想返回所有的匹配记录,可以使用union all。
- 可以使用 insert into 表1(字段1,字段2…) select 字段1,字段2… from 表2 where…
语句来为表1插入表2的内容,并可以使用where来过滤。
mysql> select * from s;
+------+-------+
| SNO | SNAME |
+------+-------+
| 1 | 学生1 |
| 2 | 学生2 |
| 3 | 学生3 |
| 4 | 学生4 |
+------+-------+
4 rows in set (0.09 sec)
mysql> desc s
-> ;
+-------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| SNO | varchar(200) | YES | | NULL | |
| SNAME | varchar(200) | YES | | NULL | |
+-------+--------------+------+-----+---------+-------+
2 rows in set (0.04 sec)
mysql> create table s2 as select * from s;
Query OK, 4 rows affected (0.37 sec)
Records: 4 Duplicates: 0 Warnings: 0
mysql> select * from s2
-> ;
+------+-------+
| SNO | SNAME |
+------+-------+
| 1 | 学生1 |
| 2 | 学生2 |
| 3 | 学生3 |
| 4 | 学生4 |
+------+-------+
4 rows in set (0.00 sec)
mysql> insert into s(sno,sname) select sno,sname from s2;
Query OK, 4 rows affected (0.15 sec)
Records: 4 Duplicates: 0 Warnings: 0
mysql> select * from s;
+------+-------+
| SNO | SNAME |
+------+-------+
| 1 | 学生1 |
| 2 | 学生2 |
| 3 | 学生3 |
| 4 | 学生4 |
| 1 | 学生1 |
| 2 | 学生2 |
| 3 | 学生3 |
| 4 | 学生4 |
+------+-------+
8 rows in set (0.00 sec)
MySQL并不关心select返回的列名,它使用的是列的位置,因此select中的第一列(不管其列名)将用来填充表列中指定的第一个列,第二列将用来填充表列中指定的第二个列,如此等等:
mysql> insert into s(sno,sname) select sname,sno from s2;
Query OK, 4 rows affected (0.11 sec)
Records: 4 Duplicates: 0 Warnings: 0
mysql> select * from s;
+-------+-------+
| SNO | SNAME |
+-------+-------+
| 1 | 学生1 |
| 2 | 学生2 |
| 3 | 学生3 |
| 4 | 学生4 |
| 1 | 学生1 |
| 2 | 学生2 |
| 3 | 学生3 |
| 4 | 学生4 |
| 学生1 | 1 |
| 学生2 | 2 |
| 学生3 | 3 |
| 学生4 | 4 |
+-------+-------+
12 rows in set (0.00 sec)
- 事务管理可以回退insert、update和delete语句,不能回退create和drop语句,事务处理块中可以使用这两条语句,但是如果你执行回退,它们不会被撤销。
- MySQL中的日期和时间类型: