一、右连接

右连接和左连接相反,左连接是以左侧表为主,右连接则是以右侧表为主,标识相同的字段,若左表没有右表中对应内容,则返回空值,如下例子:
语法:
SELECT 字段
FROM 表1
RIGHT JOIN 表2
ON 表1.字段=表2.字段

实例:

右表名:per_and_res

索引链和基本链的区别_字段

左表:person

索引链和基本链的区别_数据_02

试查询:

SELECT p.personname,p.age,pr.restaurant,pr.`code`
FROM person p
RIGHT JOIN per_and_res pr
ON p.id=pr.person_id

输出如下图:

索引链和基本链的区别_字段_03


二、全连接

全连接结合了” LEFT JOIN” 和”RIGHT JOIN”,若有匹配不到的数据,返回空值。
语法:
SELECT  字段
FROM 表1
FULL OUTER JOIN 表2
ON 表1.字段(相同)=表2.(相同字段)

三、视图

视图包含行和列,就像一个真实的表,视图中的字段就是来自一个或多个数据库中的真实的表中的字段。
语法:
CREATE VIEW view_name AS
SELECT column_name
FROM table_name
WHERE condition

实例:

CREATE VIEW view_one AS
SELECT code,person_id
FROM per_and_res

创建下图:

索引链和基本链的区别_字段_04

更新视图语法:

CREATE OR REPLACE VIEW view_name AS
SELECT column_name
FROM table_name
WHERE condition

实例:

CREATE OR REPLACE VIEW view_one AS
SELECT code,person_id,restaurant
FROM per_and_res

如下图:

索引链和基本链的区别_索引链和基本链的区别_05

删除语法(与删除表类似):

DROP VIEW view_name

四、索引

在检索数据的时候,效率更高更快,缺点是更新的时候,由于同时要更新索引数据,会导致更新速度变慢。

创建索引语法有两种方式:

CREATE INDEX indexName ON tablename(columnname(length));
ALTER TABLE tablename ADD INDEX indexname(columnname);
*如果是CHAR,VARCHAR类型,length可以小于字段实际长度;如果是BLOB和TEXT类型,必须指定 length。

也可在创建表的时候直接指定,如下:

CREATE TABLE(
id INT NOT NULL,
username VARCHAR(10) NOT NULL,
INDEX [indexname](username(length))
)

修改表结构(添加索引):

ALTER table tableName ADD INDEX indexName(columnName);

删除索引:

DROP VIEW indexname ON table;

使用ALTER 命令添加和删除索引:

- ALTER TABLE tbl_name ADD PRIMARY KEY (column_list): 该语句添加一个主键,这意味着索引值必须是唯一的,且不能为NULL。
 - ALTER TABLE tbl_name ADD UNIQUE index_name (column_list): 这条语句创建索引的值必须是唯一的(除了NULL外,NULL可能会出现多次)。
 - ALTER TABLE tbl_name ADD INDEX index_name (column_list): 添加普通索引,索引值可出现多次。
 - ALTER TABLE tbl_name ADD FULLTEXT index_name (column_list):该语句指定了索引为 FULLTEXT ,用于全文索引。