Java学习的第七周之简单的SQL语句

一 简单SQL语句:

1.查询表结构

desc 表名;

2.插入数据

--方式一: 默认全部插入数据INSERT INTO 表名 VALUES (值1,值2,值3...);--方式二: 部分插入INSERT INTO 表名(字段1,字段2,...)  VALUES (值1,值2,...);-- 注意: 使用部分插入, 前方类型和字段顺序需要对应

3.查询全表数据

SELECT *FROM 表名;

4.修改数据

-- 方式一:修改
UPDATE 表名 SET 字段名1 = '值',字段2 = '值' WHERE 条件;-- 方式二: 批量修改(不推荐)
UPDATE 表名 SET 字段名 = 值;

5.删除数据

-- 方式一:
-- 删除全表数据(将表的记录全部删除)
DELETE FROM 表名;
-- 根据条件删除符合的记录
DELETE FROM 表名 WHERE 条件;
-- 方式二:
TRUNCATE TABLE 表名;

delete和truncate的区别:

delete from 表名: 删除全表中的记录数

​ 针对自增长主键的字段不受影响

truncate from 表名: 删除表, 再复制一张一摸一样的表

​ 针对自增长的主键字段置空, 下次插入数据: 从一开始自增

6.查询语句

-- 基本查询: 查询全部字段
SELECT * FROM 表名;

7.创建表

CREATE TABLE 表名(字段名1 字段类型,字段名2 字段类型,字段名3 字段类型    ...
);

8.查询部分字段

SELECT字段1,字段2,字段3...
FROM 表名;

9.查询数据并去重

SELECTDISTINCT 字段名
FROM 表名;

10.查询数据, 字段为null情况

-- mysql内置IFNULL函数(字段名称, 默认值)SELECT字段1,字段2,IF(字段3,0) -- 如果该字段为null,使用0值替代
FROM 表名;

11.查询字段并起名

SELECT字段1 AS '别名',字段2 AS '别名',字段3 AS '别名',字段4 + IFNULL(字段5,0) AS '总分'FROM 表名;-- (As) 可以省略不写;

12.where条件查询

select字段列表from表名列表where条件列表group by分组字段having分组之后的条件order by排序limit分页限定

13.排序

1)单列排序

-- 通过order by 子句进行排序,将结果进行排序, 并不影响数据库中数据的顺序
-- 格式:SELECT 字段名
FROM 表名
WHERE 字段=值
ORDER BY 字段名[ASC,DESC];-- : asc升序
-- : desc降序

2)组合排序

-- :同时对多个字段进行排序,如果第一个字段相等, 则按第二个字段排序, 依次类推
-- :格式SELECT字段名
FROM 表名
WHERE 字段=值
ORDER BY 字段名1[ASC,DESC],
字段名2[ASC,DESC];

14.聚合函数

count(列名)
--:求这一列有多少条记录
max(列名)
--:求这一列的最大值
min(列名)
--:求这一列的最小值
avg(列名)
--:求这一列的平均值
sum(列名)
--:求这一列的和
IFNULL(列名,默认值)
--:如果列名不为空,返回这列的值. 如果为NULL,则返回默认值
--注意:WHERE语句中不能使用聚合函数, 并且NULL的记录不会统计,需使用IFNULL函数,防止出现数据遗漏

例如:

SELECTIFNULL(字段名,默认值)
FROM 表名;SELECTcount(IFNULL(字段名,默认值))
FROM 表名;

15.分组查询

--:分组查询是指使用GROUP BY分组字段,相同数据作为一组
--:将分组字段结果中相同内容作为一组
SELECT字段1,字段2,...
FROM 表名
GROUP BY 字段名;
--注意1:一般在使用某个字段分组,在查询的时候也需要将这个字段查询出来,否则看不见数据属于哪组
--注意2:GROUP BY将分组字段结果中相同内容作为一组,并且返回每组的第一条数据,单独分组没有意-义,分组的目的就是为了统计,一般的分组会跟聚合函数一起使用

HAVING和WHERE的区别:

where字句: 1)对查询结果在分组前,将不符合where语句的行去掉, 即在分组之前过滤数据, 先过滤数据再进行分组.

2)where后不可以跟聚合函数.

having字句: 1)having字句的作用是筛选满足条件的组,即在分组之后过滤数据, 先分组在过滤数据.

2)having后可以跟聚合函数.

16.去重

SELECT   * distinct  FROM 表名;

17.模糊查询

LIKE:模糊查询

​ 占位符:

  • _: 单个任意字符,下划线
  • %:多个任意字符,

举例:

-- 查询姓马的人
SELECT * FROM student WHERE NAME LIKE '马%'; // 查询第一个字是马的人
-- 查询姓名是3个字的人
SELECT * FROM student WHERE NAME LIKE '___';

18.分页查询

limit: 限制查询记录的条数

select字段列表from表名列表where条件列表group by分组字段having分组之后的条件order by排序limit分页限定;

19.数据库的备份与还原

数据库的备份:

1) dos下:
mysqldump -u 用户名 -p 密码 数据库 > 文件的路径;
2) mysql中的命令:
use 数据库;
source 导入文件的路径;

数据库的还原:

use 数据库;
source 还原的路径;

Java学习的第七周之简单的SQL语句相关推荐

  1. java学习笔记第七周(二)

    目录 一.多线程 1.线程的基础知识 1.1 什么是进程?什么是线程? 1.2 进程和线程的关系 1.3 多线程并发的理解 2.实现多线程 2.1 第一种方式: 2.2 第二种方式 2.3 第三种方式 ...

  2. 201521123061 《Java程序设计》第七周学习总结

    201521123061 <Java程序设计>第七周学习总结 1. 本周学习总结 2. 书面作业 ArrayList代码分析 1.1 解释ArrayList的contains源代码 贴上源 ...

  3. 20155227 2016-2017-2 《Java程序设计》第七周学习总结

    20155227 2016-2017-2 <Java程序设计>第七周学习总结 教材学习内容总结 认识时间与日期 时间的度量 世界时:在1972年引入UTC之前,GMT与UT是相同的. 国际 ...

  4. 20155319 2016-2017-2 《Java程序设计》第七周学习总结

    20155319 2016-2017-2 <Java程序设计>第七周学习总结 教材学习内容总结 第十二章 Lambda 如果使用JDK8的话,可以使用Lambda特性去除重复的信息. 在只 ...

  5. 20155213 2016-2017-2 《Java程序设计》第七周学习总结

    20155213 2016-2017-2 <Java程序设计>第七周学习总结 教材学习内容总结 Lambda 如果使用JDK8的话,可以使用Lambda特性去除重复的信息. 在只有Lamb ...

  6. 20175305张天钰《java程序设计》第七周学习总结

    <java程序设计>第七周学习总结 第八章 常用实用类 1.String类 1.String类不可以有子类.2.用户无法输出String对象的引用,输出的是字符序列 3.构造方法:Stri ...

  7. # 20155327 2016-2017-4 《Java程序设计》第七周学习总结

    20155327 2016-2017-4 <Java程序设计>第七周学习总结 教材学习内容总结 了解Lambda语法 包含三个部分 一个括号内用逗号分隔的形式参数,参数是函数式接口里面方法 ...

  8. 20155333 2016-2017-2 《Java程序设计》第七周学习总结

    20155333 2016-2017-2 <Java程序设计>第七周学习总结 教材学习内容总结 Lambda 教材的引入循序渐近.深入浅出 Lambda去重复,回忆DRY原则 Lambda ...

  9. 萌新的java学习之路——第一周

    萌新的java学习之路--第一周 第一周的学习 这是我学习Java的第一周,写这个博客更多的时为了总结自己这一周的学习情况,如果有人看到我写的博客,有什么问题的话,可以问我.虽然我也是一个小白,但我会 ...

最新文章

  1. 中级实训第一天的自学报告
  2. 机器学习在热门微博推荐中的应用
  3. loadrunner简单使用——HTTP,WebService,Socket压力测试脚本编写
  4. 字符串的模式匹配--BF算法KMP算法
  5. mac下终端命令行下添加mysql命令
  6. 零基础学云计算怎么样?2020年云计算学习路线
  7. gradle构建springboot项目瘦身,外部依赖jar的终极方法
  8. python 计算机程序设计-程序设计入门—Python
  9. 前端跨域问题及解决方案
  10. windows操作系统_windows下用深度系统安装器安装深度操作系统实现双系统分别运行...
  11. [转载]浅谈敏捷管理在软件项目中应用
  12. 计算机网络无线局域网设计,无线校园网设计全攻略
  13. ArcGIS空间数据的拓扑处理
  14. 如何看台式机计算机编号,如何查看台式电脑的主机编号和型号
  15. javascript中用switch判断今天星期几
  16. [易飞]包材Forcast四周滚动需求
  17. 总结学过的技术,实现加密注册,登录及过期不能访问,微信朋友圈功能,文章比较长,但是比较详细。
  18. 12星座绝情榜,你的绝情指数是多少呢?
  19. Android-接入谷歌登录
  20. 软件自学成才到公司要学历吗_来自7位自学成才的编码人员的经验教训,他们现在全职从事软件开发人员的工作...

热门文章

  1. 过程(Sub和Function)
  2. Kubernetes实战(部署+生产案例)
  3. java发送qq邮箱验证_JAVA 实现 QQ 邮箱发送验证码功能(不局限于框架)
  4. 51单片机定时器实现流水灯实验
  5. 使用python打王者荣耀赚金币
  6. 王者荣耀服务器维护有时间限制吗,把成长守护平台的时间调了对王者荣耀的时间限制有效吗...
  7. 图像坐标与世界坐标转换
  8. 抖音电商助力广东荔枝产业走向快车道
  9. 奇瑞、华为联手打造高端智电品牌,首款B级轿车2023年上市
  10. Windows10 配置 Android SDK 环境变量