Mysql 基础 [2]之DML语言和DDL语言

DML语言

数据操作语言
插入:insert
修改:update
删除:delete

插入

语法:

insert into 表名(字段名,...)
values(值1,...);
insert into 表明
set 列名=xxx,列名=xxx
特点:

1、字段类型和值类型一致或兼容,而且一一对应
2、可以为空的字段,可以不用插入值,或用null填充
3、不可以为空的字段,必须插入值
4、字段个数和值的个数必须一致
5、字段可以省略,但默认所有字段,并且顺序和表中的存储顺序一致

修改
修改单表语法:

update 表名 set 字段=新值,字段=新值
【where 条件】

修改多表语法:

update 表1 别名1,表2 别名2
set 字段=新值,字段=新值
where 连接条件
and 筛选条件

删除
方式1:delete语句

单表的删除: ★
delete from 表名 【where 筛选条件】

多表的删除:

delete 别名1,别名2
from 表1 别名1,表2 别名2
where 连接条件
and 筛选条件;

方式2:truncate语句

truncate table 表名

两种方式的区别【面试题】

1.truncate不能加where条件,而delete可以加where条件
2.truncate的效率高一丢丢
3.truncate 删除带自增长的列的表后,如果再插入数据,数据从1开始 delete 删除带自增长列的表后,如果再插入数据,数据从上一次的断点处开始
4.truncate删除不能回滚,delete删除可以回滚

DDL语句

数据定义语言

库和表的管理

库的管理:

一、创建库
create database 库名
二、删除库
drop database 库名
修改数据库的名字 rename database 数据库名字 to 新数据库名字 危险操作 会导致数据丢失 不建议
修改数据库的字符集 alert database 数据库名字 character set 编码

表的管理:

1.创建表

CREATE TABLE IF NOT EXISTS stuinfo(
    stuId INT,
    stuName VARCHAR(20),
    gender CHAR,
    bornDate DATETIME
);

DESC studentinfo;

2.修改表 alter
语法:

ALTER TABLE 表名 ADD|MODIFY|DROP|CHANGE COLUMN 字段名 【字段类型】;

①修改字段名
ALTER TABLE studentinfo CHANGE COLUMN sex gender CHAR;
②修改表名
ALTER TABLE stuinfo RENAME [TO] studentinfo;
③修改字段类型和列级约束
ALTER TABLE studentinfo MODIFY COLUMN borndate DATE ;
④添加字段
ALTER TABLE studentinfo ADD COLUMN email VARCHAR(20) first;
⑤删除字段
ALTER TABLE studentinfo DROP COLUMN email;

3.删除表
DROP TABLE [IF EXISTS] studentinfo;

4.复制表
仅仅复制结构不复制数据
create table 表名 like 需要复制的表名

复制结构复制数据
create table 表名 select * from 需要复制的表

仅仅复制部分数据
create table 表名 select 列1,列2 ... from 需要复制的表 where 列=xx

仅仅复制部分结构 不要数据
create table 表名 select 列1,列2 from 需要复制的表 where 1=2; //谁都不满足 或者 where 0

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。