MySQL的DML和DQL   增删改查

DML和DQL   增删改查

SELECT * FROM grade

--新增 insert

-- 向年级表中新增3条数据
INSERT INTO grade(gradeID,gradeName) VALUES(4,'4年级');
INSERT INTO grade(gradeID,gradeName) VALUES(5,'5年级');
INSERT INTO grade(gradeID,gradeName) VALUES(6,'6年级');
-1.备份表:create table 新表(不存在) select * from 原表
-2.追加数据:
(一次性向表中走N条记录)
insert into 被追加数据的表名(列) select 列 from 原表
 
-- 删除 delect
DELETE FROM grade WHERE gradeID>3;
DELETE FROM grade WHERE gradeID=4 OR gradeID=5  OR gradeID=6;
DELETE FROM grade WHERE gradeID IN (4,5,6);
-- 同时插入多条数据  (oracle数据库不支持)
INSERT INTO grade(gradeID,gradeName) 
VALUES(4,'4年级'),(5,'5年级'),(6,'6年级');

--修改 update

-- 修改gradeID=1的年级名称为 one
UPDATE  grade SET gradeName='one'
WHERE gradeID=1

-- delete 删除表中所有的数据

DELETE FROM grade;

delete 和 truncate的区别 01.delete

begin  (开启事务) select  * from  grade;(查询年级表中所有的数据) delete  from  grade; (删除年级表中所有的数据) select  * from  grade;(查询年级表中所有的数据,没有数据) rollback;  (事务回滚) select  * from  grade;(查询年级表中所有的数据,删除的数据恢复) commit (提交事务)

02.truncate

begin  (开启事务) select  * from  grade;(查询年级表中所有的数据) truncate table  grade; (删除年级表中所有的数据) select  * from  grade;(查询年级表中所有的数据,没有数据) rollback;  (事务回滚) select  * from  grade;(查询年级表中所有的数据,没有数据) commit (提交事务)

区别:   01.delete后面可以拼接where条件,删除指定的行!      truncate只能删除表中所有的数据!不能有where!

  02.delete可以回滚,数据库可以恢复!(记录日志)      truncate 不能事务混滚,数据不可以恢复!(不记录日志)

  03.truncate执行效率高!      delete执行效率低!   

  04.delete删除后自增列编号会接着上次最大值      Truncate截断表:自增列编号从1开始

查询

  将查询结果保存到 新表中!  create table  newStudent     (select stuName,address from  student)

  view (视图) :不占物理空间!

  使用 具体的列 代替 *

  select  * from  student;

  select  stuName,age ,address  from  student;

  使用别名

SELECT gradeID AS 年级编号,gradeName  '年级 名称' FROM grade;

格式 01.  列名  AS  别名 02.  列名   别名 03.  如果别名中有特殊符号,必须把 别名用 单引号 引起来!

查询年级表中 id不等于1的数据   <>    != SELECT gradeID,gradeName FROM grade WHERE gradeid <> 1

+  必须是相同的数据类型,能转换成2进制的数据! 如果有一个列是null  整体返回null! 

我们通常使用 concat来做合并 SELECT  CONCAT(loginPwd,',',studentNAME) AS  合并列 FROM STUDENT

使用is null 的时候 要确保 查询的列 可以为空!

null:   01.标识  空值   02.不是0,也不是空串""   03.只能出现在定义 允许为null的字段   04.只能使用is  null 或者is not null 进行比较!

SELECT *  FROM student
WHERE loginPwd  IS NULL
 

-- 查询成绩表的总成绩
SELECT  SUM(studentResult)  FROM result;
-- 查询成绩的平均值
SELECT  AVG(studentResult)  FROM result;
-- 查询成绩的最高分
SELECT  MAX(studentResult)  FROM result;
-- 查询成绩的最低分
SELECT  MIN(studentResult)  FROM result;
-- 查询有成绩的总数
SELECT  COUNT(studentResult)  FROM result;
 
#修改表名
ALTER TABLE 旧表名RENAME [TO] 新表名;
#添加字段
ALTER TABLE 表名ADD 字段名数据类型[属性];
#修改字段
ALTER TABLE 表名CHANGE 原字段名新字段名数据类型[属性];
#删除字段
ALTER TABLE 表名DROP 字段名;

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏技术博客

C#反射的特性

如果您现在对反射还不太了解的话,那么可以先看看这篇博文,来粗略的了解一下反射吧。什么是反射

794
来自专栏乐沙弥的世界

PL/SQL --> 游标

映射在结果集中某一行数据的具体位置,类似于C语言中的指针。即通过游标方式定位到结果集中某个特定的行,然后根据业务需求

542
来自专栏java一日一条

数据库性能优化之SQL语句优化

在应用系统开发初期,由于开发数据库数据比较少,对于查询SQL语句,复杂视图的的编写等体会不出SQL语句各种写法的性能优劣,但是如果将应用系统提交实际应用后,随着...

392
来自专栏坚毅的PHP

mysql数据迁移hbase问题

无法直接dump,写了java多线程程序做迁移 问题1:Operation not allowed after ResultSet closed 裸jdbc语句...

3465
来自专栏marsggbo

MySQL基础入门-第一课 新建数据库(linux版本)

MySQL linux 登录MySQL sudo service mysql start #打开MySQL服务 mysql -u root #使用root...

1845
来自专栏技术记录

mySQL优化方案

1、选取最适用的字段属性 MySQL可以很好的支持大数据量的存取,但是一般说来,数据库中的表越小,在它上面执行的查询也就会越快。因此,在创建表的时候,为了获得...

1858
来自专栏分布式系统进阶

Librdkafka的基础数据结构 1 --- 队列

两个元素: tqh_first: 指向队列的第一个成员; tqh_last: 存的是队列里的最后一个元素的 next指针的变量地址, 这个二级指针太有用了,...

562
来自专栏数据和云

DB2 Vs MySQL系列 | MySQL与DB2的数据类型对比

随着MySQL数据库的应用越来越广泛,DB2向MySQL数据库的迁移需求也越来越多。进行数据库之间迁移的时候,首先遇到的并且也是最基本最重要的就是两种数据库数据...

3336
来自专栏Python爬虫实战

MySQL从零开始:05 MySQL数据类型

距离上次更新 MySQL 从零开始系列,已经过去了十几天,时间隔得有点长,由于我选用的是 MySQL 的最新版本,网上的教程大多停留在 MySQL 5.x,所以...

883
来自专栏Kevin-ZhangCG

Oracle学习笔记一

Oracle数据库是数据的物理存储。这就包括(数据文件ORA或者DBF、控制文件、联机日志、参数文件)。其实 Oracle数据库的概念和其它数据库不一样,这里...

722

扫描关注云+社区