Mysql -第二天

Mysql -第二天

1:使用DML操作数据库

1:DML是什么

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

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

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

包括

INSERT   ( 添加数据语句 )

UPDATE ( 更新数据语句 )

DELETE  ( 删除数据语句 )

2:INSERT   ( 添加数据语句 )

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

注意事项

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

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

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

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

5) 插入空值 可以写 null

3:UPDATE ( 更新数据语句 )

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

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

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

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

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

4:DELETE  ( 删除数据语句 )

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

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

TRUNCATE命令

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

TRUNCATE和delete的区别

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

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

最直观是:   

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

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

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

2:DQL

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 逻辑非

作业:

使用sql语句练习:

  1. 向学生表中添加一条数据:登录密码:111,名字:李小明,性别:女
  2. 向考试表中添加一条数据:曹操,语文12,数学12,英语12
  3. 向考试表中添加一条数据:刘邦:语文:99
  4. 修改张飞的语文成绩为20,数学成绩为12
  5. 删除赵云这个人的考试成绩
  6. 查询所有人的考试成绩
  7. 查询英语成绩在90分以上的人的姓名和对应的英语成绩
  8. 查询三门成绩都大于70分的学生信息和考试信息
  9. 查询没有参加语文考试的那些学生信息
  10. 查询所有姓张的人的考试成绩

  1. 查询关羽的语文成绩
  2. 查询学号为3以内的所有人的各科成绩
  3. 查询没有参加语文考试的那些学生信息
  4. 查询英文成绩分数大于70 并且数学成绩大于70的学员所有成绩
  5. 查询所有姓张的学员考试成绩
  6. 查询所有姓赵的并且语文成绩大于80分的学员信息
  7. 查询语数英中不及格学员的所有信息(60分及格)
  8. 查询所有英语超过80分的名字中含有张的人信息
  9. 查询所有人的各科成绩以及他们的平均分

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mr.aBai

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值