扣丁学堂Java开发之MySQL数据库基础和SQL语言入门

2018-03-08 13:25:52 626浏览

MySQL是一个关系型数据库管理系统,由瑞典MySQLAB公司开发,目前属于Oracle旗下产品。MySQL是最流行的关系型数据库管理系统之一,在WEB应用方面,MySQL是最好的RDBMS(RelationalDatabaseManagementSystem,关系数据库管理系统)应用软件。



MySQL的安装和配置

相关概念:

数据库:数据的仓库,存储数据的地方。

表:分类对数据进行存储,实际保存数据的地方

列(字段):具体的一项信息,如:姓名、年龄

行(记录):实际的实体信息

主键:能唯一地标识一行记录的列

Navicat图形工具的使用:

NavicatforMySQL是常用的MySQL客户端工具,可以从网上下载,免费使用30天。

MySQL数据类型:

数据类型

所占字节

取值范围

tinyint

1字节

-128~127

smallint

2字节

-32768~32767

mediumint

3字节

-8388608~8388607

int

4字节

范围-2147483648~2147483647

bigint

8字节

+-9.22*10的18次方

float(m,d)

4字节

单精度浮点型,m总个数,d小数位

double(m,d)

8字节

双精度浮点型,m总个数,d小数位

decimal(m,d)

decimal是存储为字符串的浮点数

CHAR

0-255字节

定长字符串

VARCHAR

0-255字节

变长字符串

TINYBLOB

0-255字节

不超过255个字符的二进制字符串

TINYTEXT

0-255字节

短文本字符串

BLOB

0-65535字节

二进制形式的长文本数据

TEXT

0-65535字节

长文本数据

MEDIUMBLOB

0-16777215字节

二进制形式的中等长度文本数据

MEDIUMTEXT

0-16777215字节

中等长度文本数据

LOGNGBLOB

0-4294967295字节

二进制形式的极大文本数据

LONGTEXT

0-4294967295字节

极大文本数据

VARBINARY(M)

允许长度0-M个字节的定长字节符串

值的长度+1个字节

BINARY(M)

M

允许长度0-M个字节的定长字节符串

SQL语言:

SQL全称是结构化查询语言(StructuredQueryLanguage)。使用SQL能进行数据库的增删查改。学习数据库的基本核心内容就是SQL。

SQL分类如下:

数据定义语言(DDL:DataDefinitionLanguage)

数据操作语言(DML:DataManipulationLanguage)

数据查询语言(DQL:DataQueryLanguage)

数据控制语言(DCL:DataControlLanguage)

一、DDL

数据库定义语言:

创建数据库

createdatabase数据库名;

使用数据库

use数据库名;

删除数据库

dropdatabase数据库名;

dropdatabaseifexists数据库名;

创建表

createtable表名(

列名数据类型约束,

...

);

主键:primarykey

自动增长:auto_increment

删除表

droptable表名;

droptableifexists表名;

练习:

创建my_db数据库

在my_db中,创建学生表,包含编号(主键,自增)、姓名、年龄和地址

二、DML

数据新增

insertinto表名(列1,列2...)values(值1,值2...)

示例:

--插入一行记录

insertintostudent(name,age,gender,address)

values('张三',20,'男','湖北武汉');

--插入多行记录

insertintostudent(name,age,gender,address)

values

('李四',20,'男','湖北武汉'),

('李大四',22,'女','北京'),

('李小四',25,'女','北京'),

('李四四',27,'女','上海');

--将表中的数据插入到其它表

insertintostudent2(name,age,gender,address)

selectname,age,gender,addressfromstudent;

注意:

1、自动增长列不要添加数据

2、列的数量、类型和顺序要和值一致

数据修改

update表名set列1=值1,列2=值2where条件

示例:

--更新李小四的地址为四川成都

updatestudentsetaddress='四川成都'

wherename='李小四';

--更新多列

updatestudentsetaddress='四川成都',age=18

wherename='李小四';

数据删除

deletefrom表名where条件

示例:

--删除id=2的学生

deletefromstudentwhereid=5;

练习:

在学生表中添加5行记录,

更新id为5的学生年龄为22

删除id为3的学生

四、DQL

查询所有数据

select*from表;

查询指定字段的所有数据

select列1,列2from表;

where条件查询

select*from表where条件

=、!=、in、notin、and、or

示例:

--查询所有行所有列

select*fromstudent;

--查询部分列

selectname,addressfromstudent;

--添加where条件查询id为2的学生

select*fromstudentwhereid=2;

--查询id不为2的

select*fromstudentwhereid!=2;

--查询地址为湖北武汉以及四川成都的学生

select*fromstudentwhereaddress='湖北武汉'oraddress='四川成都';

--查询年龄20岁以上的男的

select*fromstudentwhereage>=20andgender='男';

--查询地址为湖北武汉以及四川成都的学生2

select*fromstudentwhereaddressin('湖北武汉','四川成都');

--查询地址不是湖北武汉以及四川成都的学生

select*fromstudentwhereaddressnotin('湖北武汉','四川成都');

去掉重复数据

distinct关键字

selectdistinct列from表;

示例:

--查询学生的地址,不重复

selectDISTINCTaddressfromstudent;

--给列设置别名

selectid编号,name姓名,age年龄,gender性别,address地址fromstudent;

--查询年龄在20到25之间的女生

select*fromstudentwhereage>=20andage<=25andgender='女';

select*fromstudentwhereagebetween20and25andgender='女';

--查询北京或武汉的男生

select*fromstudentwhereaddressin('北京','湖北武汉')andgender='女';

排序查询

select*from表orderby列desc\asc

示例:

--按年龄升序排序

select*fromstudentwheregender='男'orderbyageasc;

--降序

select*fromstudentorderbyagedesc;

分页查询

limitn;返回长度为n的行

limitn,m;返回从n位置,长度为m的行

select*fromtb_namelimit5;显示结果的前5条记录

select*fromtb_namelimit0,5;区段查询

示例:

--按年龄升序排序

select*fromstudentwheregender='男'orderbyageasc;

--降序

select*fromstudentorderbyagedesc;

--通过limit限制行数前5行

select*fromstudentlimit5;

--通过limit分页查询第一页第0行到第5行,第二页第6行到第10行...

select*fromstudentLIMIT0,5;

select*fromstudentLIMIT5,5;

select*fromstudentLIMIT10,5;

练习:

年龄最大的男学生

年龄最小的五个女学生

聚合函数

求和:sum

求平均值:avg

求最大值:max

求最小值:min

求数量:count

示例:

selectsum(col_name)fromtb_name;

分组查询

groupby分组列

where在分组之前进行条件筛选

having在分组之后进行条件筛选

where-->groupby--->having

示例:

--使用聚合函数

selectsum(age)总年龄,avg(age)平均年龄,

max(age)最大年龄,min(age)最小年龄,count(*)学生数量fromstudent;

--求来之不同地方的学生人数

selectaddress籍贯,count(*)人数fromstudentgroupbyaddress;

--求男女学生的人数

selectgender性别,count(*)人数,avg(age)平均年龄fromstudentgroupbygender;

--求人数超过5人的籍贯

selectaddress籍贯,count(*)人数fromstudent

groupbyaddresshavingcount(*)>=5;

--年龄总和超过200的性别

selectgender性别,sum(age)总年龄fromstudent

groupbygenderhavingsum(age)>200;

模糊查询

通配符:

%匹配任意多字符

_匹配一个字符

like关键字

示例:

--查找所有姓李的人

select*fromstudentwherenamelike'李%';

select*fromstudentwherenamelike'%大%';

select*fromstudentwherenamelike'李_';

以上就是关于扣丁学堂Java开发之MySQL数据库基础和SQL语言入门的详细介绍,最后想要了解更多内容的小伙伴可以登录扣丁学堂官网查看。扣丁学堂Java培训机构不仅有专业的老师和与时俱进的课程体系,还有大量的JavaEE视频教程供学员观看学习,想要了解学习Java的小伙伴快快行动吧。Java技术交流群:670348138。


关注微信公众号获取更多学习资料



关注微信公众号获取更多学习资料



查看更多关于“Java开发资讯的相关文章>>

标签: JavaEE视频教程 JavaEE培训 JavaEE开发工程师 Java培训 Java开发程序员 MySQL数据库

热门专区

暂无热门资讯

课程推荐

微信
微博
15311698296

全国免费咨询热线

邮箱:codingke@1000phone.com

官方群:148715490

北京千锋互联科技有限公司版权所有   北京市海淀区宝盛北里西区28号中关村智诚科创大厦4层
京ICP备12003911号-6   Copyright © 2013 - 2019

京公网安备 11010802030908号