这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » 软件与操作系统 » Java开发之MySQL数据库基础和SQL语言入门

共4条 1/1 1 跳转至

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

助工
2020-11-26 11:10:52     打赏

  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'李_';



高工
2020-12-06 22:35:50     打赏
2楼

入门还是不难的


工程师
2021-01-05 22:53:23     打赏
3楼

代码写的蛮不错的


工程师
2021-01-06 23:46:18     打赏
4楼

不错的


共4条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]