当前位置: 首页 > news >正文

MySQL学习笔记------SQL(2)

zi'duanSQL

DML

全称为:Data Manipulation Language,用来对数据库中表的数据记录进行增删改操作

插入数据 

添加数据(INSERT)

给指定字段添加数据:INSERT INTO 表名(字段名1,字段名2,......) VALUES(值1,值2,......);

给全部字段添加数据:INSERT INTO 表名 VALUES(值1,值2,...)

批量添加数据

INSERT INTO 表名(字段名,字段名2,...) VALUES(值1,值2,...),(值1,值2,...);

INSERT INTO  表名 VALUES(值1,值2,...),(值1,值2,...);

注意:插入数据时需要一一对应,字符串和日期数据应该包含在引号里,插入数据大小应该在字段的规定范围内

create table emp(id    int   comment '编号',workno  varchar(10) comment '工号',name     varchar(10)  comment '姓名',gender    char(1)   comment '性别',age       int      comment '年龄',idcard    char(18)  comment '身份证号',workpalace varchar(50) comment '工作地址',entrydate   date    comment '入职时间'
)comment '员工表';
insert into emp(id, workno, name, gender, age, idcard, workpalace, entrydate) VALUES
(1,'1','柳岩','女',18,'12345678902345678','北京','2000-01-01'),
(2,'2','张无忌','男',28,'12487789012045678','西安','2006-01-01'),
(3,'3','韦一笑','男',18,'15456789082344678','上海','2030-01-01'),
(4,'4','赵敏','女',18,'12355679067345678','北京','2000-01-01'),
(5,'5','小昭','女',18,'26345879901245878','杭州','2000-01-01'),
(6,'6','杨晓','女',18,'323456789052345678','北京','2000-01-01'),
(7,'7','范瑶','女',18,'12345579014344678','南阳','2000-01-01'),
(8,'8','黛绮丝','女',18,'623456789032234574','西安','2000-01-01'),
(9,'9','范凉凉','女',18,'173456789072235674','北京','2000-01-01'),
(10,'10','陈友谅','男',18,'92356789032234567X','南京','2000-01-01'),
(11,'11','常遇春','男',18,'423567890322345674','北京','2000-01-01'),
(12,'12','张三丰','男',18,'123467890322345674','武当','2000-01-01'),
(13,'13','灭绝','女',18,'323556790322345674','峨眉','2000-01-01'),
(14,'14','胡青牛','男',18,'22346789032234567X','北京','2000-01-01'),
(15,'15','周芷若','女',18,null,'北京','2000-01-01'),
(16,'16','张士诚','男',18,'33345789032234567X','北京','2000-01-01');

修改数据(UPDATE)

UPDATE 表名 SET 字段名1=值,字段名2=值2,......[WHERE 条件];

条件可以用也可以没有,如果没有会修改表中所有数据。

update user_table set name='lisi' where id=1;

update emp set name='乐瑶' where id=1;

 

删除数据(DELETE)

DELETE FROM 表名 [WHERE 条件]

注意:delete语句的条件可以用也可以没有,如果没有,则删除整张表的所有数据

delete语句不能删除某一字段的值

delete from emp where gender='男';

 

 

DQL

Data Query Language(数据查询语言),用于查询数据库中表的记录

语法

基本查询: 

查询多个字段

select 字段1,字段2,字段3...from 表名

例如:select name,workplace,age from emp;//只显示三项(姓名,工作地点,年龄)

select name,age,gender from emp;

 

设置别名并查询

select  字段1[as 别名1],字段2[as 别名2]...from 表名;

例如:select workplace as '工作地点' from emp;

select name as'姓名' from emp;

 

去除重复并查询

select distinct workplace '工作地点'  from emp;

select distinct workpalace as'工作地址' from emp;

 

条件查询

聚合函数

select count(*)from emp;
select max(age)from emp;
select avg(age)from emp;
select sum(age)from emp;

 

 

 

分组查询 :

select 字段列表 from 表名 [where 条件] group by 分组字段名[having 分组后过滤条件];

where与having区别:

1、执行时间不同,where是分组前过滤,不满足不参与分组。having是分组后对结果进行过滤

2、判断条件不同,where不能对聚会函数判断,having可以

#获取男女员工数量
select gender,count(*)from emp group by gender;

#统计男女员工平均年龄
select gender,avg(age)from emp group by gender;

 

 

#查询年龄小于20的员工,并根据工作地址分组,获取员工数大于3的工作地址
select workpalace,count(*) from emp group by  workpalace having count(*)>3;

 

排序查询

select 字段列表 from 表名 order by 字段1 排序方式1,字段2 排序方式2;

asc:升序(默认)    desc:降序

多字段排序,当第一个字段值相同才会根据第二个字段排序

#根据年龄降序
select * from emp order by age desc ;

 

#g根据年龄对员工升序排序,年龄相同根据入职时间降序
select * from emp order by age ,entrydate desc ;

 


分页查询 

select 字段列表 from 表名 limit 起始索引,查询记录数;

注意:起始索引从0开始,起始索引=(查询页码-1)*每页显示记录数;

分页查询不同数据库有不同实现,MySQL是limit。

如果查询第一页。起始索引可省略,直接简写limit 每页记录数;

#查询第一页数据,每页展示10条
select * from emp limit 0,10;

#查询第二页数据,每页展示10条
select * from emp limit 10,10;

 

 DQL执行顺序

 1、from    2、where    3、group by    4、select   5、order by    6、limit   7、having

http://www.lryc.cn/news/324808.html

相关文章:

  • 【循环神经网络rnn】一篇文章讲透
  • KW音乐搜索参数
  • SpringBoot3+Vue3项目的阿里云部署--将后端以及前端项目打包
  • MySQL 存储引擎
  • perl:打开文件夹,选择视频文件,并播放
  • 分布式链上随机数和keyless account
  • 【项目设计】基于MVC的负载均衡式的在线OJ
  • MRC是谁?- 媒体评级委员会 Media Rating Council
  • 反序列化漏洞简单知识
  • Es之正排索引与倒排索引
  • wordpress将图片默认连接到媒体文件
  • Java学习笔记 | Java基础语法 | 03 | 流程控制语句
  • 记录新人的web3之旅
  • 由浅到深认识Java语言(9):Eclipse IDE简介
  • 游戏引擎中的地形系统
  • 【论文精读】OTA: Optimal Transport Assignment for Object Detection(物体探测的最优传输分配)
  • 无极低码SQL模板引擎使用教程示例,自己手撸一个sql模板引擎进行动态sql生成。
  • Python学习(一)
  • Day62:WEB攻防-PHP反序列化CLI框架类PHPGGC生成器TPYiiLaravel等利用
  • 运动想象 (MI) 迁移学习系列 (14) : EEGNet-Fine tuning
  • java中获取字符串中满足正则表达式的元素集合
  • HTTPS总结
  • Linux之基础IO
  • 【SpringSecurity】十六、OAuth2.0授权服务器、资源服务器的配置(理论部分)
  • AtCoder Beginner Contest 346
  • Arduino智能家居
  • 吴恩达2022机器学习专项课程(一) 3.3 成本函数的公式
  • Day56-LNMP架构扩展为集群模式实战精讲
  • Windows 设置多显示器显示
  • 语言模型的原理、实战与评估