DML:
一、数据操作语言
插入:insert 修改:update 删除 delect
(1)一个value和set插入方式的比较*:
1、value支持插入多行 set不支持
2、value支持子查询 set不支持
修改中的级连更新
(1)语法
sql92语法:(只支持内连接)
update 表1 别名,表2 别名
set 列=值,...
where 连接条件
and 筛选条件;
sql99语法:(内 左外 右外)
update 表1 别名
inner|left|right join 表2 别名
on 连接条件
set 列=值,...
where 筛选条件;
删除中的多表连接删除
sql92语法: 支持 内连接
delete 表1的别名,表2的别名 【要删除那个表的信息 写那个表】
from 表1 别名,表2 别名
where 连接条件
and 筛选条件;
sql99语法: 内连接(存在 取交集 ) 左外 右外连接
delete 表1的别名,表2的别名
from 表1 别名
inner|left|right join 表2 别名 on 连接条件
where 筛选条件;
(2)truncate 删除表中的记录与delete删除表中的记录的区别
truncate语法:truncate table 表名;
1.delete 可以加where 条件,truncate不能加
2.truncate删除,效率高一丢丢 没有过滤的选择
3.假如要删除的表中有自增长列(特殊的字段),
如果用delete删除后,再插入数据,自增长列的值从断点(从删除前的最后一个位置)开始,
而truncate删除后,再插入数据,自增长列的值从1开始。
4.truncate删除没有返回值(不会提示 有几行删除),delete(能够返回有几行删除)删除有返回值
5.truncate删除不能回滚,delete删除可以回滚==》事务知识点.
DDL
数据定义语言:
库与表:都涉及 创建create 修改alter 删除drop
在库与表的创建删除中涉及一个容错性的判断
容错性:只支持库和表的管理
IF EXISTS
IF not EXISTS
(1)
#2.表的修改(添加一列也是修改)
#语法
alter table 表名 add|drop|modify|change column 列名 【列类型 约束】至于加不加根据需求而定;
表的复制几种方式分别是干啥 :
1、like:仅仅复制表的结构:语法 create table 表名 like 要复制的表
2、子查询:复制表的结构+数据:create table 表名 +子查询
3、子查询+筛选条件:只复制部分数据:create table 表名 +子查询+筛选条件
4、仅仅复制复制字段:不要数据 就把筛选条件搞成水都不满足!!