欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

MySQL的DML和DQL   增删改查

程序员文章站 2022-07-10 11:57:41
DML和DQL 增删改查 SELECT * FROM grade --新增 insert -- 向年级表中新增3条数据INSERT INTO grade(gradeID,gradeName) VALUES(4,'4年级');INSERT INTO grade(gradeID,gradeName) V ......


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 字段名;