MySQL必知必会

  1. 使用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)    |
		+-------------------+
  1. 使用rtrim( )函数删除指定字段右边的空格,ltrim( )删除左边空格,trim( )删除两边空格。
  2. union可将多个select查询子句的查询结果合并,并自动去除重复记录,若想返回所有的匹配记录,可以使用union all。
  3. 可以使用 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)
  1. 事务管理可以回退insert、update和delete语句,不能回退create和drop语句,事务处理块中可以使用这两条语句,但是如果你执行回退,它们不会被撤销。
  2. MySQL中的日期和时间类型:
    在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值