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 字段名;
- 利用Python实现卷积神经网络的可视化
- SDP(13): Scala.Future - far from completion,绝不能用来做甩手掌柜
- 干货|浅谈强化学习的方法及学习路线
- 如何实时查看Docker容器占用的CPU、内存状态?
- [安全] mysqldump 备份的后门
- Elasticsearch 快速起步
- Mysql 高一致性复制结构
- Scrapy中如何提高数据的插入速度
- python基础语法(1)
- Python基础语法(2)
- 实践 Mysql Group Replication 组复制
- Python爬虫入门(二)解析源码
- iOS加密算法总结
- 【Python爬虫实战】——爬取今日头条美女图片
- MySQL 教程
- MySQL 安装
- MySQL 管理与配置
- MySQL PHP 语法
- MySQL 连接
- MySQL 创建数据库
- MySQL 删除数据库
- MySQL 选择数据库
- MySQL 数据类型
- MySQL 创建数据表
- MySQL 删除数据表
- MySQL 插入数据
- MySQL 查询数据
- MySQL where 子句
- MySQL UPDATE 查询
- MySQL DELETE 语句
- MySQL LIKE 子句
- mysql order by
- Mysql Join的使用
- MySQL NULL 值处理
- MySQL 正则表达式
- MySQL 事务
- MySQL ALTER命令
- MySQL 索引
- MySQL 临时表
- MySQL 复制表
- 查看MySQL 元数据
- MySQL 序列 AUTO_INCREMENT
- MySQL 处理重复数据
- MySQL 及 SQL 注入
- MySQL 导出数据
- MySQL 导入数据
- MYSQL 函数大全
- MySQL Group By 实例讲解
- MySQL Max()函数实例讲解
- mysql count函数实例
- MYSQL UNION和UNION ALL实例
- MySQL IN 用法
- MySQL between and 实例讲解
- python字符串的index和find的区别详解
- 浅谈Python 参数与变量
- 宝塔面板成功部署Django项目流程(图文)
- Python celery原理及运行流程解析
- Python Scrapy图片爬取原理及代码实例
- Python-for循环的内部机制
- 解决Tensorflow2.0 tf.keras.Model.load_weights() 报错处理问题
- 基于python实现模拟数据结构模型
- keras的siamese(孪生网络)实现案例
- 浅谈cv2.imread()和keras.preprocessing中的image.load_img()区别
- Python数据可视化图实现过程详解
- Python matplotlib 绘制双Y轴曲线图的示例代码
- keras 读取多标签图像数据方式
- python新手学习可变和不可变对象
- COS Android SDK DEMO搭建实践