java_DAY20:使用DML,DQL操作数据库

1:使用DML操作数据库

1DML是什么

数据操纵语言(Data Manipulation Language, DML)是SQL语言中,负责对数据库对象运行数据访问工作的指令集,以INSERT、UPDATE、DELETE三种指令为核心,分别代表插入、更新与删除,是开发以数据为中心的应用程序必定会使用到的指令,因此开发人员都把加上SQL的SELECT语句的四大指令以“CRUD”来称呼。

DML 的主要功能即是访问数据,因此其语法都是以读取与写入数据库为主,除了INSERT以外,其他指令都可能需搭配WHERE指令来过滤数据范围,或是不加WHERE指令来访问全部的数据。

DML(数据操作语言)用于操作数据库对象中所包含的数据

包括

INSERT   ( 添加数据语句 )

UPDATE ( 更新数据语句 )

DELETE  ( 删除数据语句 )

2INSERT   ( 添加数据语句 )

语法:insert  into 表名(列名,列名,列名...) values(值,值,值...);  为数据表的每列进行赋值 

注意事项

1) 插入值 类型必须和 列类型匹配

2) 值长度不能超过 列定义长度

3) 值的顺序和 列顺序对应

4) 字符串和日期型值 必须写 单引号

5) 插入空值 可以写 null

 

3UPDATE ( 更新数据语句 )

语法: update 表名 set 列名=值,列名=值.... where条件语句;

真正修改的内容是set 后面的

Where 的作用是定位 - 选择,限制

如果不加where条件语句的话,会作用在所有的记录上

WHERE条件子句:有条件地从表中筛选数据

4DELETE  ( 删除数据语句 )

语法:delete from 表名 where条件语句 ;

如不指定则删除该表的所有列数据

TRUNCATE命令

用于完全清空表数据,但表结构、约束等不变

TRUNCATE和delete的区别

truncate tablename命令将快速删除数据表中的所有记录,但保留数据表结构。

这种快速删除与delete from 数据表的删除全部数据表记录不一样,delete命令删除的数据将存储在系统回滚段中,需要的时候,数据可以回滚恢复,而truncate命令删除的数据是不可以恢复的

最直观是:   

1.TRUNCATE TABLE是非常快的 ,delete相对慢一些

2.TRUNCATE之后的自增字段从头开始计数了,而DELETE的仍保留原来的最大数值

3:TRUNCATE删除的数据不可恢复,delete删除的数据可以恢复

2DQL

1:简单查询

准备:新建一个考试成绩表,并添加数据

create table exam(

   id int primary key auto_increment,

   name varchar(20) not null,

   chinese double,

   math double,

   english double

);

insert into exam values(null,'关羽',85,76,70);

insert into exam values(null,'张飞',70,75,70);

insert into exam values(null,'赵云',90,65,95);

insert into exam values(null,'刘备',null,55,38);

 

语法一

select [distinct] * /列名,列名... from 表名;

select * from 表名; 查询该表中所有列信息

select 列名,列名... from 表名;  查询表中指定列的信息

distinct 用于排重

1: 查询表中所有学生的考试成绩信息。

2: 查询表中所有学生的姓名和对应的英语成绩。

英语老师需要查询班级英语成绩

语法二:

select 表达式(列名执行运算) from 表名;

select 列名 as 别名 from 表名;

1: 在所有学生各门分数上加10分特长分。

2: 统计每个学生的总分。

3: 使用别名表示学生分数。

在对列起别名时,as可以省略

语法三:

 select 列名 from 表名 where条件语句

1: 查询姓名为关羽的学生成绩

2: 查询英语成绩大于90分的同学

3: 查询总分大于200分的所有同学姓名和对应的各科成绩以及总分

2:查询之运算符

1:相等= 不等 <> 或者 !=

2: between  ...and... 在两者之间取值 between 70 and 80 等价于 >=70 <=80  

 注意前面那个数要比后面那个数要小

3: in(值,值,值) 在指定值中任取一个 in(70,80,90) 值可以是70、80或者90

查询英语成绩为70,80,90的人的信息

4:like '模糊查询,表达式有两个占位符 % 任意字符串 _ 任意单个字符  张_  张%

  例如: name like '张%' 所有姓张学员 '%张%';  含有张字  

         name like '张_' 所有姓张名字为两个字学员

5:is null 判断该列值为空

Is not null 判断不是为null

6:and 逻辑与 or 逻辑或 not 逻辑非

 `

 

 

 

 

posted @ 2021-12-19 15:00  这题我不会  阅读(100)  评论(0)    收藏  举报