MYSQL 语法常用

独立新建表

CREATE TABLE TT (ID INT, NAME VARCHAR(20));

从已知表复制表

CREATE TABLE TT AS SELECT * FROM CC;
2011-01-07                 22:18:00

Mysql之inner join,left join,right join详解

首先借用官方的解释下:

inner join(等值连接):只返回两个表中联结字段相等的行;

left join(左联接):返回包括左表中的所有记录和右表中联结字段相等的记录;

right join(右联接):返回包括右表中的所有记录和左表中联结字段相等的记录。

 

mysql> create table account( id int ,name varchar(16));
mysql> create account1 ( id int, sex int);

mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| account        |
| account1       |
+----------------+
2 rows in set (0.00 sec)

mysql> insert into account (id,name) values(1,'lee');
Query OK, 1 row affected (0.00 sec)

mysql> insert into account (id,name) values(2,'sophia');
Query OK, 1 row affected (0.00 sec)

mysql> insert into account (id,name) values(3,'unlown');
Query OK, 1 row affected (0.00 sec)

mysql> insert into account1 (id, sex) values (1,1);
Query OK, 1 row affected (0.00 sec)

mysql> insert into account1 (id, sex) values (2,0);
Query OK, 1 row affected (0.00 sec)

mysql> select * from account;
+------+--------+
| id   | name   |
+------+--------+
|    1 | lee    |
|    2 | sophia |
|    3 | unlown |
+------+--------+
3 rows in set (0.00 sec)


mysql> select * from account1;
+------+------+
| id   | sex  |
+------+------+
|    1 |    1 |
|    2 |    0 |
+------+------+
2 rows in set (0.00 sec)



mysql> select * from account left join account1 on account.id = account1.id;
+------+--------+------+------+
| id   | name   | id   | sex  |
+------+--------+------+------+
|    1 | lee    |    1 |    1 |
|    2 | sophia |    2 |    0 |
|    3 | unlown | NULL | NULL |
+------+--------+------+------+
3 rows in set (0.00 sec)

the same as :
mysql> select * from account,account1 where account.id = account1.id;
+------+--------+------+------+
| id   | name   | id   | sex  |
+------+--------+------+------+
|    1 | lee    |    1 |    1 |
|    2 | sophia |    2 |    0 |
+------+--------+------+------+
2 rows in set (0.00 sec)


 

mysql> select * from account left join account1 on account.id = account1.id;


+------+--------+------+------+
| id | name | id | sex |
+------+--------+------+------+
| 1 | lee | 1 | 1 |
| 2 | sophia | 2 | 0 |
| 3 | unlown | NULL | NULL |
+------+--------+------+------+
3 rows in set (0.00 sec)

mysql> select * from account right join account1 on account.id = account1.id;
+------+--------+------+------+
| id | name | id | sex |
+------+--------+------+------+
| 1 | lee | 1 | 1 |
| 2 | sophia | 2 | 0 |
+------+--------+------+------+
2 rows in set (0.00 sec)

mysql> select * from account inner join account1 using (id);
+------+--------+------+
| id   | name   | sex  |
+------+--------+------+
|    1 | lee    |    1 |
|    2 | sophia |    0 |
+------+--------+------+
2 rows in set (0.00 sec)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值