SQL结构化查询语——之DML语言

DML:Data Manipulation Language 数据操纵语言,主要用于实现对表的insert增,delete删,update改操作
一、insert添加记录
1. 添加记录,即添加行。

表内字段修饰符NO NULL被指定后则在添加记录时该字段必须指定值。没有默认值的字段必须指定值。
语法:INSERT tbl_name [(col1,...)] VALUES (val1,...), (val21,...)
中文:INSERT 表名 【列名…】VALUES(记录1),(记录2),…指定要赋值的字段名,然后用values()按顺序赋值,如果为所有字段赋值可以省略书写字段名。
赋值注意事项:1、字符串必用引号。 2、不允许空的字段必须要赋值,如果确关没有值,可以添加标记信息则所有记录都会被添加标记信息便于后期维护。3、主键列值不能重复。4、没有默认值的字段必须指定值。

2. insert操作实例
方法一:手动指定数据。

  1. INSERT INTO vmlab values(2,‘Hong qigong‘,60,‘M‘,3,4); 为所有字赋值
  2. INSERT INTO vmlab (id,name,age,classID) values(3,‘Huang Yaoshi‘,56,3);添加一行为指定字段赋值。
  3. INSERERT INTO vmlab (id,name,age,classID) values(6,‘Huang Yaoshi‘,56,3),(4,‘Ou yangfeng‘,60,4),(5,‘Duan zhixing‘,65,2);添加多行为指定字段赋值。

方法二:set 直接赋值

INSERT INTO vmlab set id=7,name=‘Guo Jing‘,age=23;用set直接为指定字段赋值。

方法三:从其它表提取数据批量插入

  1. Insert into vmlab (id,name,Age,Gender) select tid,name,age,gender from teachers; 从teachers表中提取指定字段所有行,插入到vmlab表中,此种方法要求:要求两个表的操作的字段顺序对应,字段数据类型相同。
  2. Insert into vmlab (id,name,Age,Gender) select tid,name,age,gender from other.teachers; 从other数据库的teachers表中提取指定字段所有行,插入到vmlab表中,此种方法要求:要求两个表的操作的字段顺序对应,字段数据类型相同。
  3. 实例:从一个表中查数据并插入另一个表实现方法:
    insert into t1 select * from t2;

二、delete删除记录:

  1. 语法:delete from 表名 where 匹配条件(一般为主键字段对应记录值);
  2. 意思 :删除来源于某表基于where匹配条件成功匹配的数据。
  3. 注意:delete必须用where限定匹配条件,否则将清空整个表的数据。
  4. 实例:
    a. DELETE FROM vmlab where id >10
    b. DELETE FROM hellodb.vmlab where id >10
  5. 清空表:TRUNCATE TABLE students;

三、update改修记录

  1. 语法:UPDATE 表名 SET 字段名=“值 ”WHERE 匹配条件(一般为主键字段对应记录值);
  2. 意思 :更新某表WHERE匹配条件的值 ,赋值来源于SET指定的赋值表达式。
  3. 注意事项:
    UPDATE必须用WHERE限定修改范围,否则将修改整个表。
  4. 实例:
    UPDATE vmlab SET NAME=‘Guo Jing‘ where id=2; 将vmlab表中的第二行记录name字段值改为Guo Jing

四、最佳操作

  1. 为了避免误操作,强然建议在连接数据库时使用mysql -U --safe->
  2. updates安全更新选项,或在配置文件/etc/my.cnf中[client]配置项中添加safe-updates强制启用安全更新选项。启用安全更新选项后修改要求表必须定义主键,再执行update修改记录时基于主键后在列的值进行修改范围限定。启用安全更新后如果表没有主键执行update时会出现如下提示
  3. 在定义主键后,安全更新模式下,执行UPDATE修改记录时,where条件必须基于主键就行限定,其它字段则不能作为where条件限定,会出现如下提示:

原文地址:https://blog.51cto.com/154773488/2455094

时间: 2024-10-09 15:10:52

SQL结构化查询语——之DML语言的相关文章

SQL结构化查询语——之DDL语言

一.SQL结构化查询语言概述SQL是关系型数据库所使用的标准语言,最初是基于IBM的实现在1986年被批准的.1987年,"国际标准化组织(ISO)"把ANSI(美国国家标准化组织) SQL作为国际标准.1. SQL语言规范 在数据库系统中,SQL语句关键词不区分大小写(建议用大写) 数据库的资源对象是区分大小写的,如表.数据库这类资源在操作系统中以独立文件形来存储,如果文件系统对文件命名区分大小写则SQL语言内引用资源对象 资源内的元素不区分大小写,如:表的字段名称不区分大小写,因为

SQL结构化查询语——之DQL语言

记忆思路:SQL的DQL语言select查询命令.from从哪个表中where以什么条件select查询哪些列,order by是否基于某字段排序,limit # 输出多少行.一.单表查询1. 常用查询语法: SELECT 输出显示字段 FROM 表名 无条件查询语法:SELECT 指定输出的列 FROM 表名 ; 限制输出语法:SELECT 指定输出的列 FROM 表名 LIMIT 显示记录数 ; 条件查询语法:SELECT 指定输出的列 FROM 表名 WHRER 查询条件 : 条件查询再排

SQL结构化查询语句

SQL结构化查询语句 SQL定义了查询所有关系型数据库的规则. 1.通用语法 SQL语句可以单行或者多行书写,以分号结尾 可以使用空格和缩进增强可读性 不区分大小写,但是关键字建议大写 3种注释 注释内容:多行注释/*;-- 注释内容 2.SQL分类 DDL(Date Definition Language)数据定义语言 用来定义数据库对象:数据库.表.列等,包括关键字:create,drop.alte DML(Data Manipulation Language)数据操作语言,增删改 用来对数

SQL(结构化查询语句)

SQL概述 SQL会话 用户利用SQL命令与关系型数据库进行交互时发生的事情,当用户与数据库建立会话时,会话就被创建了.用Connect user@database 命令可以申请连接数据库,用Disconnect命令可以断开连接 SQL命令的类型 数据定义语言(DDL) 用于创建和重构数据库对象,比如创建(create table/Index/view).修改(alter table/index/view)和删除(drop table/index/view)表 数据操作语言(DML) 用于操作关

精通SQL结构化查询---学习笔记1

1.数据库体系结构的三级模式为:外模式.概念模式.内模式. 内模式又称存储模式,是对数据的物理结构和存储方式的描述.内模式是由数据库系统提供的数据定义语言定义的. 概念模式又称数据库模式,是数据库中全部数据的逻辑结构的描述.概念模式以某种数据模型为基础,并用模式定义语言定义这些内容.概念模式可以看作是现实世界中的实体在具体数据库系统中的实现. 外模式又称用户模式或子模式,通常由概念模式导出,是概念模式的子集.其主要功能是定义了允许用户操作的数据.可以将外模式理解为用户看到的数据视图. 2.一个完

Mysql数据库理论基础之三 --- 数据类型及SQL结构化查询语句使用

一.简介 由MySQL AB公司开发,是最流行的开放源码SQL数据库管理系统,主要特点: 1.是一种数据库管理系统 2.是一种关联数据库管理系统 3.是一种开放源码软件,且有大量可用的共享MySQL软件 4.MySQL数据库服务器具有快速.可靠和易于使用的特点 5.MySQL服务器工作在客户端/服务器模式下,或嵌入式系统中 InnoDB存储引擎将InnoDB表保存在一个表空间内,该表空间可由数个文件创建.这样,表的大小就能超过单独文件的最大容量.表空间可包括原始磁盘分区,从而使得很大的表成为可能

Linux命令:MySQL系列之三--mysql数据类型及SQL结构化查询语句使用

MySQL 存储引擎,也被称为表类型:    MyISAM表:无事务处理功能,支持表锁 .frm:表结构定义文件 .MYD:表数据文件 .MYI:表索引文件 InnoDB表:支持事务处理功能,支持行锁 .frm:表结构定义文件 .ibd:表空间(包含数据和索引文件) MySQL常用的查询命令: SHOW ENGINES;  #查看数据库支持的引擎及状态. SHOW TABLE STATUS LIKE 'user' \G  #查看表user的属性信息,\G竖排显示 mysqld --help --

精通SQL结构化查询---学习笔记2

1. SQL中表的规定: * 每张表的表名必须以字母开头,最大长度为30个字符. * 一张表可以由若干列组成.同一张表中,列名惟一,列名也称为属性名或字段. * 同一列的数据必须有相同的数据类型. * 表中的每一列值必须是不可分割的基本数据项. * 表中的一行称为一个元组,相当于一条记录.2. SQL数据类型2.1.字符类型:包括固定长度和可变长字符变量,固定长度字符变量少于定义的长度时,数据库会自动在字符右边以空格填补到20个字符:可变长字符串可以存储任意长度的字符(其最大存储长度取决于采用的

精通SQL结构化查询---学习笔记3

对于汉字的排序,是按首字母的顺序来排序的.使用DISTINCT是要要付出代价的:因为要去掉重复值,必须对结果关系进行排序,相同的元组排列在一起,只有按这种方法对元组进行分组才能去掉重复值,而这一工作甚至比查询本身还费时间. 使用'*'通配符时要慎重,在不需要查询所有列时,尽量采用前面介绍的单列查询或多列查询,以免占用过多的资源. ORDERBY子句一定要放在所有子句的最后,默认是ASC(递增排序):ORDER BY后面可 以采用1.2.3--进行排序,1.2.3--代表了SELECT后面列的次序