DML

DML的全称是Database management Language,数据库管理语言。主要包括以下操作:

insert、delete、update、optimize。

本篇对其逐一介绍

INSERT

数据库表插入数据的方式:

  1、insert的完整语法:(做项目的过程中将字段名全写上,这样比较容易看懂)

      单条记录插入语法:insert into table_name (column_name1,......) values (column_value1,......);

      多条记录插入语法:insert into table_name (column_name1,......) values (column_value1,......), (column_value1,......), (column_value1,......);

create table stu(
id int primary key auto_increment,
age int unsigned,
name varchar(20),
gender enum('','') default ''
);
insert into stu(name,age) values('ls',17);
insert into stu(id,age,name,gender) values(1,18,'zs','');
insert into stu(age,gender,name) values(15,'','ww'),(17,'','zl'),(20,'','tq');

      将结果集插入到表格中:插入的过程中结果集的字段名和新的表格的字段名需要严格匹配。

      1、简单的把数据插入到新表格中,两个表结构不相同:

create table new_table_name as (select * from table_name);

      2、复制表格需要两步:①先复制表结构②将数据插入新表格中

# 复制表结构
create table new_table_name like table_name; # 将查到的结果集插入新表格中 这是一条语句,前后的字段名需要保持一致
insert into new_table_name (column_name1,column_name2,...)
select column_name1, column_name2,... from table_name;

  2、windows终端命令行cmd导入:

      先切换到sql文件夹目录下:source xxxx.sql

  3、在windows终端命令行命令行模式中导出数据库、数据库表格

      导出数据库全部表格:mysqldump -h localhost -u root -p [-d] database_name > database_name.sql

        [-d] 表示不导出数据,建议不写,若不导出数据,没什么意义

      导出数据库的摸一个表格:mysqldump -h localhost -u root -p [-d] [--skip-lock-tables] database_name table_name > table_name.sql

        [--skip-lock-tables] 表示如果导出的表格与其他表格有关联,使用这个选项,就会排除这种顾虑

DELETE

  drop、truncate、delete三者的区别:

    drop一般用法是drop table table_name;它是删除表中的数据和结构,立刻释放磁盘空间 , 可以删除有索引视图的表,但是不能删除被外键关联的表

    truncate一般用法是truncate table table_name; 他是清空表中所有的数据,立刻释放磁盘空间,不能用于参与了索引视图的表、有外键约束的表

    delete一般用法是delete from table_name where conditions; 它是按照where之后的条件进行删除,不会释放磁盘空间;如果没有条件,就清空表中数据。

  对于数据而言:前两者,一旦删除就找不回来,而delete删除的时候没有提交事务,可以通过回滚事务复原删除的数据,如果提交了,也是一样找不回来的

三者的执行速度:drop>truncate>delete

  delete的完整语法:

    delete [low_priority] from table_name [where conditions] [limit N]

      [low_priority] 表示如果没有客户读取当前表格,才执行delete语句

      [limit N] 表示删除的记录数量

      [conditions]不能是select语句,既不能通过select语句返回一个结果集

谨慎操作:删除数据之前先进行select:
select * from stu where id>7 and gender='';
delete from stu where id>7 and gender=''; seelct * from stu where name is null;
delete from stu where name is null limit 2;

UPDATE    

delete的完整语法:

    update [low_priority] table_name set column_name=column_value,.... [where conditions] [limit N]

      [low_priority] 表示如果没有客户读取当前表格,才执行delete语句

      [limit N] 表示删除的记录数量

      [conditions]不能是select语句,既不能通过select语句返回一个结果集

谨慎操作:修改数据之前先select:
select * from stu where id=12;
update stu set name='zs',gender='' where id=12;

optimize

  语法:OPTIMIZE TABLE tbl_name

  你可以使用OPTIMIZE TABLE回收闲置的空间。

OPTIMIZE TABLE通过制作原来的表的一个临时副本来工作。老的表被拷贝到 新表中(没有闲置的行),然后原来的表被删除并且重命名一个新的。这样做使得 所有更新自动转向新的表,没有任何失败的更新。当时OPTIMIZE TABLE正在 执行时,原来的表可被另外的客户读取。对表的更新和写入延迟到新表是准备好为止。

MySQL语言分类——DML的更多相关文章

  1. MySQL的sql语言分类DML、DQL、DDL、DCL、

    MySQL的sql语言分类DML.DQL.DDL.DCL. SQL语言一共分为4大类:数据定义语言DDL,数据操纵语言DML,数据查询语言DQL,数据控制语言DCL 1.数据定义语言DDL(Data ...

  2. MySQL的sql语言分类DML、DQL、DDL、DCL

    SQL语言一共分为4大类:数据定义语言DDL,数据操纵语言DML,数据查询语言DQL,数据控制语言DCL 1.数据定义语言DDL(Data Definition Language) 对象: 数据库和表 ...

  3. sQL语言分类 DML、DDL、DCL区别

    总体解释:DML(data manipulation language):       它们是SELECT.UPDATE.INSERT.DELETE,就象它的名字一样,这4条命令是用来对数据库里的数据 ...

  4. MySql 语言分类

    (1)数据定义语言,即SQL DDL,用于定义SQL模式.基本表.视图.索引等结构.(2)数据操纵语言,即SQL DML.数据操纵分成数据查询和数据更新两类.(3)数据查询语言,即SQL DQL.(4 ...

  5. MySQL语言分类——DDL

    DDL的全称Data Definition Language,即数据定义语言 DDL的语法有:create.alter.drop.rename.truncate.对此做一个详细的解释: create ...

  6. mysql数据库语言分类

    MySQL的sql语言分类DML.DQL.DDL.DCL.   MySQL的sql语言分类DML.DQL.DDL.DCL. SQL语言一共分为4大类:数据定义语言DDL,数据操纵语言DML,数据查询语 ...

  7. MySQL操作之DML

    目录 SQL语句的分类 DML语句 SQL语句的分类 DDL(Data Definition Languages)语句:数据定义语言.这些语句定义了不同的数据段. 数据库.表.列.索引等数据库对象的定 ...

  8. MySQL中的DML、DQL和子查询

    一.MySQL中的DML语句 1.使用insert插入数据记录: INSERT INTO `myschool`.`student` (`studentNo`, `loginPwd`, `student ...

  9. SQL的语言分类

    SQL的语言分类 DQL DQL(Data Query Language):数据查询语言 select DML DML(Data Manipulate Language):数据操作语言 insert ...

随机推荐

  1. R 基于朴素贝叶斯模型实现手机垃圾短信过滤

    # 读取数数据, 查看数据结构 df_raw <- read.csv("sms_spam.csv", stringsAsFactors=F) str(df_raw) leng ...

  2. pytest文档30-功能用例与自动化用例完美对接(allure)

    前言 做自动化做久了,经常会思考一个问题,到底别人是怎么做的自动化,跟自己的有啥不一样,看过不少书和资料,都是停留在demo的层面. 真正把自动化做的好的大牛又不屑于分享自己的劳动成果,所以大部分情况 ...

  3. soapui学习

    另外分享几个公开的Webservice站点,你可以随便招几个服务来测试 http://www.webservicex.net/WS/wscatlist.aspx http://www.service- ...

  4. day29 8_8 TCP上传文件socketserver的应用

    一.文件上传 对于一些比较大的文件,当传输的数据大于内存时,显然,一次性将数据读取到内存中,在从内存传输到服务器显然时不可取的. 所以,在上传文件时,可以在with open打开文件,边读取文件边发送 ...

  5. 配置 application.properties

    # 数据库链接信息mysql.driver=com.mysql.cj.jdbc.Drivermysql.url=jdbc:mysql://localhost:3306/mydemo?character ...

  6. JQuery:

    一 jQuery是什么? <1> jQuery由美国人John Resig创建,至今已吸引了来自世界各地的众多 javascript高手加入其team. <2>jQuery是继 ...

  7. 5 Ways AI is Transforming the Finance Industry

    https://marutitech.com/ways-ai-transforming-finance/ As global technology has evolved over the years ...

  8. oracle左连接与右连接

    left join(左联接)       ---返回左表中的所有记录和右表中条件字段相等的记录. right join(右联接)     ---返回右表中的所有记录和左表中联结字段相等的记录 inne ...

  9. window.open()与window.showModuleDialog()

    一.window.showModalDialog()     模态对话框. (只支持IE浏览器)window.showModelessDialog()   非模态对话框. 基本语法:vReturnVa ...

  10. requests--文件上传,文件下载

    文件上传 在做接口自动化的时候,有时需要上传文件,比如更改头像等等,在request里,通过files参数来上传 import requests base_url = 'http://httpbin. ...