数据库MySQL--数据操作语言DML(插入、修改、删除)
例子文件:https://files-cdn.cnblogs.com/files/Vera-y/girls.zip
一、插入
方式一:
语法:
insert into 表名(列名,.....)
values( 值1,.....); # 注:字符型和日期型要加单引号,数值型不用加
插入语句要注意的项:
1.插入的值的类型要与列的类型一致或兼容
例:
INSERT INTO beauty(id,name,sex,borndate,phone,photo,boyfriend_id)
VALUES(13,'糖糖','女','1990-9-9','18791166667',NULL,4);
2.不可以为null的列必须插入值,可以为null的列如何插入值?
方式一:写着列名,值写为null
例1.
INSERT INTO beauty(id,name,sex,borndate,phone,photo,boyfriend_id)
VALUES(14,'糖心','女','1990-4-9','18791888847',NULL,4);
方式二:列名和值都不写
例2.
INSERT INTO beauty(id,name,sex,phone)
VALUES(15,'糖宝','女','18793230847');
3.列的顺序可以调换
例:
INSERT INTO beauty(name,id,sex,phone)
VALUES('娜扎',16,'女','18788230847');
4.列数和值的个数必须一致
5.可以省略列名,默认为所有列,且列的顺序和表中列的顺序一致
例:
INSERT INTO beauty
VALUES(18,'谢娜','女',null,'19929485048',null,null);
方式二:
语法:
insert into 表名
set 列名=值,列名=值,.....
例:
INSERT INTO beauty
SET id = 19,name = '容嬷嬷', phone='17764775087';
方式一和方式二的比较:
1.方式一支持插入多行,方式二不支持
例.
INSERT INTO beauty
VALUES(20,'贵妃','女','1990-2-2','19889479305',null,3),
(21,'皇后','女','1990-2-2','19889479305',null,4),
(22,'才人','女','1990-2-2','19889479305',null,5);
此处还可用union联合查询连接
INSERT INTO beauty
SELETE 20,'贵妃','女','1990-2-2','19889479305',null,3 UNION
SELETE 21,'皇后','女','1990-2-2','19889479305',null,4 UNION
SELETE 22,'才人','女','1990-2-2','19889479305',null,5;
2.方式一支持子查询,方式二不支持
例.
INSERT INTO beauty(id,name,phone) # 把查询到的值插入到beauty表里(列名和值一一对应)
SELECT 26,'宋某','19923493773'; # 这里可以用查询语句查询一个表里的值(查询到的是一个结果)(此处为一个常量)
二、修改
修改单表的记录
语法:
update 表名
set 列=新值,列=新值,.... # 注:字符型和日期型要加单引号,数值型不用加
where 筛选条件; # 和查询的筛选条件类似
例1.修改beauty表中姓糖的女神的电话为110
UPDATE beauty SET phone='110'
WHERE NAME LIKE '糖%';
例2.修改boys表中id为2的名称为张飞,魅力值为20
UPDATE boys SET boyName='张飞',userCP=20
WHERE id=2;
修改多表的记录
sql92语法:
update 表1 别名,表2 别名
set 列=值,...
where 连接条件
and 筛选条件;
sql99语法:
update 表1 别名
[连接类型] join 表2 别名
on 连接条件
where 筛选条件;
例1.修改张无忌女朋友的手机号为114
UPDATE boys
INNER JOIN beauty
ON boys.id=beauty.boyfriend_id
SET beauty.phone='114'
WHERE boys.boyName='张无忌';
例2.修改没有男朋友的女神的男朋友编号为2号
UPDATE boys
RIGHT JOIN beauty
ON boys.id=beauty.boyfriend_id
SET beauty.boyfriend_id=2
WHERE beauty.boyfriend_id IS NULL;
三、删除
方式一:delete # 删除整列
1.单表的删除
语法:
delete from 表名 where 筛选条件;
例.删除手机号以9结尾的女神信息
DELETE FROM beauty WHERE phone LIKE '%9';
2.多表的删除
语法:
sql92语法:
delete 要删除表的别名
from 表1 别名,表2 别名
where 连接条件
and 筛选条件;
sql99语法:
delete 要删除表的别名
from 表1 别名
[连接类型] join 表2 别名 on 连接条件
where 筛选条件;
例1.删除张无忌女朋友的信息
DELETE beauty
FROM beauty
INNER JOIN boys
ON beauty.boyfriend_id=boys.id
WHERE boys.boyName = '张无忌';
例2.删除男神id=2的信息以及他女朋友的信息
DELETE beauty,boys
FROM beauty
INNER JOIN boys
ON beauty.boyfriend_id=boys.id
WHERE boys.id = 2;
方式二:truncate (清空)(一删全删)
语法:truncate table 表名; # 删除整个表
注:delete 删除列后,再插入数据,自增长列的值从断点开始,truncate 删除后,再插入数据,自增长列的值从1开始
delete 删除后有返回值,truncate 删除后没有返回值
delete 删除可以回滚,truncate 删除不能回滚
数据库MySQL--数据操作语言DML(插入、修改、删除)的更多相关文章
- mysql数据操作语言DML
插入insert 插入方式1 语法: insert into 表名(列名,....) values(值1,....) 说明: 1.插入的值的类型要与列的类型一致或兼容 2.可以为null的值:①列写了 ...
- 数据操作语言DML与运算符
数据操作语言DML(添加,修改,删除) 1.添加数据 insert into insert into 表名 (字段列表) values (值列表),值列表要和字段列表按顺序匹配. insert int ...
- 数据库-mysql数据操作
一:mysql 数据的插入 语法 以下为向MySQL数据表插入数据通用的 INSERT INTO SQL语法: INSERT INTO table_name ( field1, field2,...f ...
- DML数据操作语言之增加,删除,更新
1.数据的增加 数据的增加要用到insert语句 ,基本格式是: insert into <表名> (列名1,列名2,列名3,......) values (值1,值2,值3,..... ...
- mysql数据库-mysql数据定义语言DDL (Data Definition Language)归类(六)
0x01 创建数据库并指定字符集和排序规则 -- 三种实例写法 create database temptab2 character set utf8 collate utf8_general_ci; ...
- ODPS SQL <for 数据操作语言DML>
基本操作: 查询: SELECT [ALL | DISTINCT] select_expr, select_expr, ... FROM table_reference [WHERE where_co ...
- 26_ mysql数据操作语言:DELETE语句
-- DELETE语句 -- 删除10部门中,工龄超过20年的员工记录 DELETE FROM t_emp WHERE deptno=10 AND DATEDIFF(NOW(),hiredate)/3 ...
- MySQL数据操作与查询笔记 • 【第3章 DDL 和 DML】
全部章节 >>>> 本章目录 3.1 使用 DDL 定义数据库表结构 3.1.1 SQL 简介 3.1.2 维护数据库和创建数据表 3.2 使用 DDL 维护数据库表结构 ...
- SQL学习笔记四之MySQL数据操作
阅读目录 一 介绍 二 插入数据INSERT 三 更新数据UPDATE 四 删除数据DELETE 五 查询数据SELECT 六 权限管理 一 介绍 MySQL数据操作: DML =========== ...
随机推荐
- jenkins构建参数
$BUILD_NUMBER 构建序号 $WORKSPACE 工作目录 #!/bin/sh - chmod u+x mvnw./mvnw package -Pprod -Dmaven.test.skip ...
- mysql动态列--统计报表信息对比
SET @sql = NULL; SELECT GROUP_CONCAT(DISTINCT CONCAT( 'MAX(IF(tmp.summary = ''', tp.summary, ''', tm ...
- Spring Boot整合Thymeleaf模板引擎
什么是Thymeleaf Thymeleaf是一款用于渲染XML.XHTML.HTML5内容的模板引擎.类似Velocity,FreeMaker模板引擎,它也可以轻易的与Spring MVC等Web框 ...
- 天道神诀---FTP服务
FTP 2种模式 主动模式(默认) 客户端以1024-65535之间某一端口发送指令到服务端的21端口,并建立连接.服务端接受到以后,以20端口去连接客户端,建立一条新的链接并传输数据 被动模式 客户 ...
- hdu6393 /// 树链剖分
题目大意: 给定n q 在n个点n条边的图中 进行q次操作 0 k x 为修改第k条边的值为x 1 x y 为查询x到y的最短路 https://blog.csdn.net/nka_kun/artic ...
- ArcGis Python常用脚本
ArcGis Python脚本——ArcGIS 中使用的 Python 是什么版本 ArcGis Python脚本——批量添加字段 ArcGis Python脚本——批量删除字段 ArcGis Pyt ...
- windows IIS FTP 不支持创建多级目录
昨天因为这个事情搞了好久,因为客户那边使用的是IIS 上的FTP ,想着都差不多试着运行,结果竟然报错,说"错误550 文件不可用" 是在GetResponse()出现的异常,我用 ...
- 关于EntityFramework 更新数据记录时字段全部更新问题和不从数据库中获取直接更新记录
一.一直对这个比较疑惑感觉只修改一条数据记录的一个字段结果更新Savechages后跟踪生成sql竟然是全部被修改,感觉微软怎么这么傻,总觉得会有其它方式可以只更新部分字段,但一直没有找到相关设置,最 ...
- touch - 修改文件的时间戳记.
总览 touch [-acm][-r ref_file(参照文件)|-t time(时间值)] file(文件名)... 被废弃的版本: touch [-acm][ugly_time] file(文件 ...
- Spring入门(二)
Spring IOC&DI 控制反转(inversion of control):控制什么?什么反转? 我们都知道,传统的程序中,如果A类需要使用B类对象,会在程序中直接创建B类对象实例,此时 ...