目录
一、DML
1.介绍
DML(Data Manipulation Language):数据操作语言,用来对表进行:添加、删除、修改等操作。
数据操作语言:
插入:insert
修改:update
删除:delete
2.插入语句
语法一
insert into 表名 (列名,...) values(值1,...);
-------------------------------------------------------------------------------------------------------------------------
语法二
insert into 表名
set 列名=值,列名=值,.......
两种语法区别:
♣ 语法一支持插入多行,语法二不支持
♣ 语法一支持子查询,语法二不支持
例1:insert into beauty(id,name,phone)
select 26,'宋茜','1193921';
例2:insert into beauty(id,name,phone)
select id,boyname,'1234567'
from boys where id<3;
讲解:类似将查询的结果集对应着列参一一传入,而后插入至表
特点:
♣ 插入的值的类型要与列的类型一致或兼容
♣ 不可以为null的列必须插入值。可以为null的列可以直接不写列名参数(在没特定约束情况下值默认为null),或写完列名参数后赋值为null;
♣ 列的顺序可以调换
♣ 列数和值的个数必须一致且一一对应
♣ 可以省略列名,默认所有列,而且列的顺序和表中列的顺序一致
3.修改语句
♣ 修改单表记录
语法:
update 表名 1
set 列=新值,列=新值.... 3
where 筛选条件 2
♣ 修改多表记录
sql92语法:
update 表1 别名,表2,别名
set 列=值....
where 连接条件
and 筛选条件;
---------------------------------------------------------------------------------------------sql99语法:
update 表1 别名
inner|left|right join 表2 别名
on 连接条件
set 列=值....
where 筛选条件
4.删除语句(delete)
♣ 单表的删除
语法:
delete from 表名
where 筛选条件
♣ 多表的删除
sql92语法:
delete 表1的别名,别2的别名
from 表1 别名,表2 别名
where 连接条件
and 筛选条件;-------------------------------------------------------------------------------------------------------------------------
sql99语法:
delete 表1的别名,表2的别名
from 表1 别名
inner|left|right join 表2 别名
on 连接条件
where 筛选条件-------------------------------------------------------------------------------------------------------------------------
注意:
删除哪个表的记录就在delete后写哪个表的表名,2个表的相关记录都删除则两个表名都写
5.删除语句(truncate)
♣ 语法:
truncate table 表名;
♣ truncate与delete的区别
● delete 可以加where条件,truncate不能加
● truncate删除,效率高一丢丢(不用考虑where);
● 假如要删除的表中有自增长列,
用delete删除后,再插入数据,自增长列的值从断点开始
而truncate删除后,再插入数据,自增长列的值从1开始
● truncate删除没有返回值(只会显示共0行受到影响),delete删除有返回值(会显示有几行受影响)
● truncate删除不能回滚,delete删除可以回滚
二、DDL
1.介绍
DDL(Data Definition Language):数据定义语言,用来对数据库或者表进行:创建、删除、修改等操作。
创建:create
修改:alter
删除:drop
2.库的管理
♣ 库的创建
语法:
create database 【if not exists】库名
♣ 库的修改
● 更改库的字符集
alter database 库名 character set 字符集名;
● 更改库名
直接取文件目录下修改文件名,一般不建议修改
♣ 库的删除
语法:
drop database 【if exists】 库名;
3.表的管理
♣ 表的创建
语法:
create table【if not exists】 表名(
类名 列的类型【(长度) 约束】,
类名 列的类型【(长度) 约束】,
类名 列的类型【(长度) 约束】
)
---------------------------------------------------------------------------------------------------------------------------
♣ 表的修改
● 修改列名
alter table 表名 change column 旧列名 新列名 新列的类型【(长度) 约束】;
● 修改列的类型或约束
alter table 表名 modify column 列名 新类型【(长度) 约束】;
● 添加新列
alter table 表名 add column 新列名 新列的类型【(长度) 约束】;
● 删除列
alter table 表名 drop column 列名;
● 修改表名
alter table 就表名 rename to 新表名;
♣ 表的删除
语法:
drop table【if existis】 表名;
♣ 表的复制
● 仅仅复制表的结构
create table copy1 like 被复制表名;
● 复制表的结构+数据
create table copy1 select * from 被复制的表名;
● 只复制部分数据
create table copy1
select 字段名
from 被复制的表名
where 筛选条件;
● 仅复制某些字段
create table copy1
select 字段名
from 被复制的表名
where 1=2(条件永不成立即可);
三、DQL