MySQL数据库(四)

操作数据库表的内容:


-- 向表中插入数据:
insert into table_name values(now(),'a');
insert into student (id,name,sex) values(1,'zhangsan','nan');


-- 向表中插入多条记录
insert into student (name,sex) values('xiaoming','nan'),('xiaohong','nv');


-- 使用insert….select插入结果,在insert语句中使用select子句可以将源表的查询结果添加到目标表中

语法格式如下。
insert into 目标表名[(字段列表1)]
select 字段列表2 from 源表 where 条件表达式


-- 使用replace插入新记录
replace语句的语法格式有三种语法格式。
语法格式1:
replace into 表名 [(字段列表)] values (值列表)
语法格式2:
replace [into] 目标表名[(字段列表1)] select (字段列表2) from 源表 where 条件表达式
语法格式3:
replace [into] 表名 set 字段1=值1, 字段2=值2

replace语句的功能与insert语句的功能基本相同,不同之处在于:使用replace语句向表插入新记录时,如果新纪录的主键值或者唯一性约束的字段值与已有记录相同,则已有记录先被删除(注意:已有记录删除时也不能违背外键约束条件),然后再插入新记录。

 

-- 删除表中的数据
delete from table_name where 删除条件;


-- 使用truncate清空表记录
truncate table用于完全清空一个表,语法格式如下。
truncate [table] 表名


-- 更新表中的数据
update table_name set 列名称=新值 where 更新条件;
若省略了where子句,则表示修改表中的所有记录。

 

-- 使用谓词distinct过滤结果集中的重复记录
SELECT DISTINCT 列名称 FROM 表名称


-- 使用谓词limit查询某几行记录
select 字段列表 from 数据源 limit [start,] length;


-- 使用from子句指定数据源
from 表名1 [ 连接类型 ] join 表名2 on 表1和表2之间的连接条件
连接类型分为:
inner连接(内连接)和outer连接(外连接)
内连接分为三种:自然连接、等值连接、非等值连接。
外连接又分为left(左外连接,简称为左连接)、right(右外连接,简称为右连接)以及full(完全外连接,简称完全连接)。

 内连接
-- 自然连接
select * from course natural join grade;
-- 等值连接 :使用等于=比较连接列的列值,在查询结果中列出接连表中的所有列,包括其中的重复列:
select * from R join S where R.C = S.C;
或者 select * from R inner join S where R.C = S.C;
-- 非等值连接 :在连接条件中,可以使用其他比较运算符,比较被连接列的列值,如:<、>、!=等。

外连接
-- 左连接(left join)on和后面的条件不能省略
select * from 表1 left join 表2 on 表1和表2之间的连接条件

查询结果集中须包含表1的全部记录,然后表1按指定的连接条件与表2进行连接,若表2中没有满足连接条件的记录,则结果集中表2相应的字段填入NULL。
-- 右连接的语法格式 right join / right outer join?
select * from R right join S on R.C = S.C;

查询结果集中须包含表2的全部记录,然后表2按指定的连接条件与表1进行连接,若表1中没有满足连接条件的记录,则结果集中表1相应的字段填入NULL。
-- 全连接
select * from course full join grade;

-- 多表连接
select * from R join S on R.C = S.C join T on S.C=T.C;

为表或字段取别名
字段名 [AS] 别名

 

posted @ 2018-03-18 16:36  一纸年华  阅读(145)  评论(0编辑  收藏  举报