MySQL学习第二天

DML 语句 : 数据库操作语句
给表中插入数据
插入数据的语法 1: insert into 表名 values ( 1, 2, 3, 4... n ) ;
插入表的数据支持一次插入多条数据
insert into 表名 values ( 1, 2, 3, 4... n ) , ( 1, 2, 3, 4...
n ) ;
插入数据的语法 2: 插入部分字段 , 没有插入的字段 , 默认值就是 null, 也支持一次性插入多条数据
insert into 表名 ( 字段名称 1, 字段名称 2.... ) values ( 1, 2... ) ;
/* 注意事项 :
1) 插入的这些值必须要和表中的字段对应上 ; 先后顺序保证一致 !
2) 目前没有加入 " 数据库约束 ", 可以插入非法数据 , 举例 :id 重复 ,
后期需要使用数据库约束来限定用户的操作表的行为 !
*/
DML 语句之修改表记录
一般实际开发中修改 : 都是带条件修改 ( 推荐 )
语法 1: update 表名 set 字段名称 = where 条件 ;
语法 2: 一次性修改多个字段
update 表名 set 字段名称 1 = , 字段名称 2 = 2.... where 条件 ;
语法 3: 不带条件 属于批量修改 ( 部分场景可以用的 )
update 表名 set 字段名称 = , 字段名称 2 = 2....
DML 语句之删除表的记录
delete from 表名 where 条件 ;
注意 : 带条件删除记录 ( 使用的非业务字段 id 删除 )
delete from 表名 : 删除全表数据
truncate table 表名 ; 删除全表数据
/*
面试题 :
DML 语句中的 delete truncate 的区别 ?
共同点 : 都是可以删除全表的记录的 ;
不同点 :
delete from 表名 ; 仅仅只是将表的全部记录删除了 , 表还在 !
它针对 id( 非业务字段 : 设置主键并且自增长 ), 它不影响自增长主键的这个值 ; ( 数据库约束后面
)
truncat table 表名 ; 将表所有数据删除 , 而且还会把删除之后 ,
自动创建一个张一模一样的表 , 影响自增主键的值 !
*/
DQL 语句最通用的语法 : 查询表的全部数据
DQL 语句 : 数据库的查询语句 里面语法是最多的
最基本的查询语句 select 关键字
1 ) 查询全表数据 : select * from 表名 ;
* 代表所有字段 , 仅仅是自己玩的时候可以用 , 实际开发中不能用 * , 需要写上全部的字段名称
实际开发中查询全部字段 , 把字段名称全部写上
2 ) 查询全部字段的时候 , 给字段起一个别名 as ' 别名名称 ' , as 省略
3 ) 当表的名称比较长的时候 , 可以给表名起一个别名
4 ) 字段冗余 ( 重复度大 ) 字段去重 DISTINCT 后面跟上字段名称
DQL 语句之条件查询 where 关键字
1) 使用赋值运算符 =, 比较运算符 <,<=,>=,>,!=, mysql 中的不等于 <>
2)Java 中逻辑运算符 :&&,|| mysql 推荐使用 and , or
也可以优化为 in( 1, 2, 3.. n);in 集合语句
3) 针对两个范围查询 : 可以使用 &&, 可以使用 and, 也可以 " 字段名称 between 1 and 2"
4) mysql 中判断某个字段为 null, 使用的语法是 is null
判断某个字段不为 null, 使用的语法是 is not null
5) 关于 int 类型字段求和的时候 , 注意 : int 类型的值 + null = null;
mysql 提供函数 ifnull( 字段名称 , ); 如果字段名称是 null, 给一个默认值
例如 :
SELECT
NAME ' 姓名 ',
(math+IFNULL(english,0)) ' 总分 '
FROM
student3 ;
DQL 语句之 where 条件后面加入模糊查询 --- 关键字 like
select 字段列表 from 表名 where 字段名称 like '%xxx%' ;
%: 代表任何多个字符或者某个字符 ( 使用居多 ): 网站门户系统 ---" 搜索商品 " , 模糊搜索
_: 代表某个单个字符
例如 :
需求 : 查询所有姓马的学生信息
SELECT
*
FROM
student3
WHERE
NAME LIKE '% %';
聚合函数查询 : 针对 int 类型 : 单行单列数据
select 聚合函数 from 表名 where 还可以指定条件 ;
count( 字段名称 ): 查询表中记录 , 字段名称使用都是 id, 非业务字段
avg( 字段名称 ): 查询这个字段中平均值
sum( 字段列表 ): 求和函数
max( 字段名称 ): 最大值
min( 字段名称 ): 最小值
select 语句嵌套 select 语句 --- 子查询
例如 :
需求 : 查询出学生数学成绩大于 数学平均分的学生所有信息 ;
1) 查询数学平均分是多少
SELECT AVG(math) FROM student3; -- 79.5000
2) 查询大于数学平均分的学生信息
SELECT
*
FROM
student3
WHERE
math > 79.5000;
一步走
SELECT
*
FROM
student3
WHERE
math > (SELECT AVG(math) FROM student3) ;
DQL 之排序查询 order by
select 字段列表 from 表名 order by 字段名称 排序规则 (asc( 默认值就是升序 ) 或者 desc 降序 )
注意 :1) 默认不写排序规则 , 就是 asc 升序
2) 同时存在条件和 order by, 那么 order by where 的后面 先满足条件 , 才能排序 !
3) 多个字段要同时排序 , 首先第一个字段排序规则 , 然后才是第二个字段
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值