高级查询(一)

一、MySQL的存储引擎

1.因为访问速度,安全性不同,mysql采用了多种存储引擎(共九种)

2.存储引擎有些地方也叫表的存储类型,常用的表类型有以下两种

InnoDB MyISAM
事务 支持 不支持
全文索引 不支持 支持
外键约束 支持 不支持
表空间大小 较大 较小
数据行锁定 支持 不支持

3.使用场合

a、MyISAM:不支持事务、不支持外键,但访问速度快

b、InnoDB:支持事务,但占磁盘空间大,访问速度不如MyISAM

4.MySQL5.5以上,默认存储引擎是InnoDB

5.可以在my.ini配置文件中修改默认存储引擎,改后重启服务才生效:

default-storage-engine=INNODB

6.也可以建表的时候单独某张表设置存储引擎:

create table xxx(

)engine=MyISAM

二、MySQL的数据文件

1.数据库的数据通常默认存储在C:/ProgramData/MySQL/MySQL Server 5.7/data

2.数据库存储的位置可以在my.ini中配置和修改

datadir = C:ProgramData/MySQL/MySQL Server 5.7/Data

3.MyISAM的表文件

a、frm:表结构定义文件,与引擎无关,任何引擎都有此文件

b、MYI:索引文件(index)

c、MYD:数据文件(data)

4.InnoDB的表文件

a、frm:表结构定义文件,与引擎无关,任何引擎都有此文件

b、ibdata:数据文件

三、使用insert插入数据

1.插入单行数据

insert into tableName[(字段列表)] values(值列表)

a、表的字段名列表是可选的,如果省略,则一次插入所有字段

b、多个列和值之间逗号分隔

c、列明和值之间应该数量相同,且顺序匹配,数据类型一致

d、如果插入表中部分列数据,则列明不能省略

2.插入多行数据

insert into tableName[(字段名列表)] values(...),(...),(...)

3.插入数据时候的注意事项

a、插入空值可以使用null关键字

b、插入自动编号使用null关键字

c、插入默认值则使用default关键字

4.将查询结果插入到新表中

create table student2(select * from student)

a、新表的表结构和原表的表结构一样(列表、数据类型)

b、新表中也有和查询结果中一样的数据

c、但新表中没有旧表的约束,例如:主键

d、如果student2表已存在,则不能执行此操作

四、使用update修改数据

1.语法:

update tabName set colName = val,colName2 = val2 【where condition】

2.set后面可以跟多组键值对,逗号分开

3.使用update,可以更新一行数据,可以更新多行数据,也可以一行都更新不到

4.更新数据的时候,一般带条件,如果不带条件,则全部数据都被更新,肯能导致数据丢失

5.通常根据主键来更新数据会比较准确

五、使用delete删除数据

1、语法:

delete from tabName[where condition]

2.truncate table 用于删除表中的所有行,类似于没有where条件的delete语句

3.truncate table 删除速度快,不记录事务日志,无法恢复数据,不建议使用

六、使用select进行查询

1.查询所用列的所有数据

select * from student

2.查询部分列

select stuName,stuAge from student

3.给列取别名

select stuName as name from student

4.带查询条件的查询

select * from student where stuName <> ‘zhangsan’

5.查询空值

select * from student where stuBirthday is null

6.查询中使用常量列

select stuName,stuAge,‘第一中学’ as school from student

七、使用order by排序

1.asc 升序,默认是升序

2.desc 降序

3.可以按照多个字段设置排序规则

八、使用limit关键字

1.limit:限制返回的查询记录数

2.limit的用法:

a、limit 行数(查询前三名)

b、limit 偏移位置(查找分页数据)

九、常用函数

1.聚合函数

a、avg()

b、count()

c、max()

d、min()

e、sum()

2.字符串函数

a、concat(str,str2。。。。)

b、insert(str,pos,len,newstr)

c、lower(str)

d、upper(str)

e、substring(str,pos,len)

3.日期函数

a、curDate()

b、curTime()

c、now()

d、week(date)

e、year(date)

f、dateDiff(date1,date2)

g、addDate(date,n)

4.数学函数

a、ceil(x)

b、floor(x)

c、rand()

十、简单子查询

1.案例情景:使用子查询查询一年级的所用学生信息

2.外面的查询叫父查询,里面的查询叫子查询

3.先执行子查询,再将子查询的结果返回给父查询作为条件值使用

4.将子查询和比较运算符> < >=联合使用的时候,查询结果不能多于一个

a、查询大于平均年龄的学生信息

十一、in和not in子查询

1.in子查询

a、添加成绩表score(scoreId,courseName,mark)

b、查询参加了Java考试的学生信息

c、查询Java最高分的学生信息

d、查询Java成绩前三的学生信息

2.not in子查询

a、查询没有参加Java考试的学生信息

b、查询C#不及格的学生信息

使用Java实现数据库编程相关推荐

  1. Java的数据库编程之入门案例

    通过上一篇博客Java的数据库编程之背景概述,可以得出: 1.JDBC API与驱动器管理器是有SUN公司制定并退出的: 2.每个数据库的驱动器程序是由每个数据库开发商以及数据库工具开发商在遵循SUN ...

  2. 【Java】数据库编程

    Java中数据库编程是通过JDBC实现的.使用JDBC技术涉及三种不同的角色:Java官方,开发人员和数据库厂商.如下图所示: Java官方提供JDBC接口,如:Connection,Statemen ...

  3. JAVA实现数据库编程第三章_[数据库]使用Java实现数据库编程—03 第三章 高级查询(一)...

    [数据库]使用Java实现数据库编程-03 第三章 高级查询(一) 0 2018-07-21 03:01:10 1.修改表:(1)修改表名语法: ALTER TABLE RENAME [ TO ] : ...

  4. java语言数据库编程_JAVA语言数据库编程实例详解

    本文主要向大家介绍了JAVA语言数据库编程实例详解,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助. DOS命令登录MySQL数据库:mysql -h 127.0.0.1 -u root ...

  5. Java的数据库编程之背景概述

    (一)首先简单介绍下Java数据库编程的发展史: 1996年,SUN公司发布了第1版的Java数据库连接(JDBC)API,使编程人员可以通过这个API连接到数据库,并使用SQL完成对数据库的各种操作 ...

  6. MySQL~Java的数据库编程:JDBC(JDBC的环境配置以及使用)

      目录 JDBC的环境配置 JDBC的使用步骤(Java操作数据库) 建立数据库连接 方式一:DriverManager 方式二:DataSource(数据源/数据库连接池) DataSource与 ...

  7. MySQL数据库(Java的数据库编程:JDBC)

    作者:渴望力量的土狗 博客主页:渴望力量的土狗的博客主页 专栏:MySQL数据库 目录 什么是数据库编程: 什么是JDBC? JDBC工作原理: JDBC的使用及相关操作: JDBC开发案例: JDB ...

  8. Java——MySQL数据库编程练习

    Day18--数据库编程 员工表emp:员工编号,姓名,工作职位,雇佣日期,工资,奖金,部门 部门表dept:部门编号,名称,部门领导 员工数据: 1001,'张三','销售','1999-12-1' ...

  9. java mysql数据库编程_java JDBC数据库(mysql)编程

    什么是JDBC • JDBC(Java Data Base Connectivity,Java数据库连接) • 是一种用于执行SQL语句的Java API,为多种关系数据库提供统一访问 • 它由一组用 ...

  10. [java] JDBC数据库编程

    JDBC(Java Database Connectivity) Java数据库连接技术 官方JDK中提供的与JDBC有关的API都在java.sql包里面 API(Application Progr ...

最新文章

  1. linux中终端字符界面打印QQ,教你如何在开发驱动时在图形界面下的终端打印字符!!...
  2. vue笔记(四)注册组件,路由,vuex
  3. 由浅入深理解----java反射技术
  4. Hemberg-lab单细胞转录组数据分析(八) - Scater包输入导入和存储
  5. mysql 查询前一个月数据_mysql 查询当天、本周,本月,上一个月的数据......
  6. 如何将cad格式转化为qt可以识别的图像_看BIM技术如何计算土方工程量
  7. 【DFS】LeetCode 40. Combination Sum II
  8. LSTM+attention代码原理详解
  9. 直线度误差 matlab,基于MATLAB的直线度误差数据处理
  10. MicroSIP编译完全手册
  11. wifi修复记录(8个方法)
  12. R语言非参数检验(二)
  13. 高效能人士的七个习惯--读书笔记
  14. 前TT(前T/T)与后TT(后T/T),以及信用证(LC,L/C)付款方式比较
  15. restTemplate访问接口
  16. 用R进行多元线性回归分析建模
  17. 大数据实训室课程体系设计案例分享
  18. 移动硬盘怎么连接服务器,无线路由器加USB硬盘组建属于自己的FTP服务器的方法 隐者黑鹰...
  19. java毕业设计芮城县十全十美火锅店点餐系统源码+lw文档+mybatis+系统+mysql数据库+调试
  20. 公司U13 资本成本 习题解读

热门文章

  1. VirtualBox之vdi、vhd、vmdk虚拟硬盘格式相互转换
  2. 求两个数的m和n的最大公约数和最小公倍数。
  3. viewport窥视
  4. 如何看懂一篇学术论文
  5. netem设置了网卡的流量控制,为啥发包的延迟就搞不定呢?
  6. HIVE厂牌艺人_Labelwarts Vol. 2:洛杉矶天才厂牌 Odd Future Records 的开始到结束
  7. 记windows程序设计大作业游戏 以仙剑奇侠传一为主题的RPG回合制游戏
  8. 菲尼克斯电源UNO2-PS/1AC/24DC/120W - 1110466
  9. Verilog-signed and unsigned
  10. 突发事件快速响应系统介绍