ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

MySQL中SQL语句——DML(数据操作语言)和DDL(数据定义语言)

2021-12-15 17:01:26  阅读:257  来源: 互联网

标签:... 删除 定义语言 列名 DML 语法 修改 MySQL table


前言: 上一篇博客,博主主要对于SQL语句中DQL语言做了一些了解,大家肯定对于mysql有了一定的认识。这篇博客则主要讲解一下DML语言和DDL语言,希望可以有所帮助。
还没看过的大佬们,可以先去看看博主上一篇:
上一篇博客:MySQL中SQL语句——DQL(数据查询语句)``

1.DML语言(数据操作语言)

说明: 数据操纵语言(Data Manipulation Language, DML)是用于数据库操作,对数据库其中的对象和数据运行访问工作的编程语句。就是对于数据进行增删改查。
数据操作语言相关的关键字:

  • 插入: insert
  • 修改: uqdate
  • 删除: delete

一、插入语句()

(经典且推荐)方式一:

语法:
insert into 表名(列名,...) vlaues(值1,...)

特点:
1.插入的值的类型要与列的类型一致或兼容
2.不可以为null的列必须插入值,可以为null的列可以不插入:
方式一:在vlaues()中用null代替值
方式二:在列名处不添加该列名
3.列的顺序可以调换
4.列数和值的个数必须一致(⭐)
5.可以省略列名,默认所有列,而且列的顺序和表中列的顺序一致
6.支持子查询

案例:一次性插入多条数据

第一种通过子查询:
INSERT into 表(列名...)
select 值,值,... union  
值,值,...  union
值,值,...  ;

第二种经典查询:
INSERT into 表
vlaues(值1,...),(值2,...),(值3,...);

方式二:
语法:
insert into 表名
set 列名=值,列名=值…;

二、修改语句

1.修改单表的记录

语法:
update 表名
set     列=新值,列=新值....
where	筛选条件

2.修改多表的记录(支持92和99标准)

语法:
sql92语法:
update 表1 别名,表2  别名
set 列=新值....
where  连接条件
and 筛选条件;

sql99语法:
update 表1 别名
inner|left|right join 表2 别名
on 连接条件
set 列=值,....
where 筛选条件;

三、删除语句

方式一:delete

语法:
(重点掌握)1.单表的删除
delete from 表名 [where 筛选条件 limit 条目数]

2.多表的删除

sql92语法:
delete 需要删除的表的别名(表与表之间逗号隔开)
from 表1 别名,表2 别名
where 连接条件
and 筛选条件;

sql99语法(推荐):
delete 需要删除的表的别名(表与表之间逗号隔开)
from 表1 别名
inner|left|right  join 表2 别名
on 连接条件
where 筛选条件;

方式二: truncate(不能加where,通常用于清空表的数据)

语法:
 truncate  table 表名;

truncate 和 delete 使用区别(面试题⭐):
1.delete 可以加wwhere,truncate不能加
2.truncate删除效率高一点
3.当要删除的表中有自增长列,使用delete删除后,再插入数据,自增长列的值会从断点的值开始;
使用truncate 删除后,则会自增长则会从基础值开始;
4.truncate没有返回值,delete删除有返回值;
5.truncate 删除不能回滚,delete删除可以回滚(在事务的知识点);

2.DDL(数据定义语言)

说明: 数据库模式定义语言DDL(Data Definition Language),是用于描述数据库中要存储的现实世界实体的语言。
常见的DDL语句:
创建数据库CREATE DATABASE、创建数据库表格CREATE TABLE、修改数据库表格ALTER TABLE、删除数据库表格DROP TABLE、创建查询命令CREATE VIEW、修改查询命令ALTER VIEW、删除查询命令DROP VIEW。
相关关键字:

  • 创建:create
  • 修改:alter
  • 删除:drop

一、库的管理(操作后需刷新)

1.库的创建:

语法:create database  [if not exists(用于判断是否存在该库名)]   库名

2.库的修改(不建议修改库,容易导致数据混乱丢失):
若修改,建议找到该库的文件名,进行修改文件名(注意修改时,需关闭服务端)
补充:
修改库的字符集
alter database 库名 character set 字符集;

3.库的删除:

语法: drop database  [if  exists]  库名;

二、表的管理

1.表的创建:

语法:
create	table [if not exists] 表名( 
	列名  列的类型[(显示长度)  约束],
	列名  列的类型[(显示长度)  约束],
	.......
	列名  列的类型[(显示长度)  约束],
	列名  列的类型[(显示长度)  约束]
)

案例:创建一个book表
create table if not exists book(
	id  int,#图书编号
	Bname  varchar(10),#图书名称
	author varchar(10) #作者
)

2.表的修改:

①修改列名
语法: alter table  表  change  (column) 现列名 修改列名  列的类型 

②修改列的类型或约束
语法: alter table 表  modify  column 列名  类型|约束;

③添加新列
语法: alter table 表 add  column  新列名  类型 	[first|after 列名(可以控制放的位置)];

④删除列
语法: alter table  表  drop column 列名;

⑤修改表名

语法:alter table 现表名  rename to 修改表名;

3.表的删除:

语法:
drop  table [if exists] 表;

4.表的复制:

①复制表的结构
 语法:create  table  复制的表  like 被复制的表

②复制表的结构和数据
语法:create table 复制的表
select 列,列... from 表 
[where 筛选条件]
③仅仅复制某些字段
语法:create table 复制的表
select 列,列... from 表 
where 0;

标签:...,删除,定义语言,列名,DML,语法,修改,MySQL,table
来源: https://blog.csdn.net/weixin_46870007/article/details/121955207

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有