Java实训(七)之mysql篇
经过紧张的六天实训后,今天是第七天,今天也进入数据库的学习中,在这里使用mysql数据库。
在学习mysql的知识之前,首先要了解几个概念。
在我们所接触的世界中,我们要实现大量信息的存储,比如银行数据的存储,论坛信息的存储等等,要实现信息的存储有两种方式:数据库和文件。那我们现在就要了解清楚数据库和文件方式的区别,采用文件的方式缺乏安全性。
数据库:数据的集合,说的再准备一点就是表的集合。关系数据库就是关联表的集合。
表中由行和列构成。
关系型数据库管理系统:是一种管理关系型数据库的软件。简称RDBMS,目前市场所用的数据库产品绝大多数都是RDBMS。
接下来我们就要了解如何通过功能来创建表?当我们学会了这个以后,至少在看到某个功能说明就大概明白了需要建立几张表来存储信息。
比如:实现论坛的基本功能:用户的注册、发帖、回帖以及可以添加版块。
根据以上的说明我们大概需要建立如下几张表:用户表、发帖表、回帖表、版块表。
那是根据什么所建立的表:创建表最简单的思路:名词,首先在功能说明中找出名词,同时还要满足一张表只描述一件事情就可以了。
下面进入mysql的学习使用,首先进入mysql,可以通过mysql自带的客户端也可以通过命令提示符进入到mysql的安装目录里,在进入bin文件夹下,然后输入mysql命令即可。
语法: mysql –u 用户名 –p
示例:mysql-u root –p
下面就要进行字符集的设置
设置字符集,可以更改mysql的安装目录下的my.ini文件,在文件中更改default-character-set选项,如何支持中文就改为:gbk,然后重新启动服务。
进入mysql中,输入命令 show variables like ‘char%’;(在mysql中显示信息的需要用到show 同时在这里也用到like 模糊运算,在like中%代表任意个字符,这个命令是查看字符设置信息)
在显示的信息中如何看到lantin1的字符集,这时就需要更改为gbk,命令格式:set 字符选项=gbk,或者使用set names gbk;
比如:set character_set_server=gbk;
下面就要进入数据库和表的创建及使用。
在创建表中:需要知道mysql的数据类型,数据类型大概分为:
1、数值型:整型和小叔类型,整型有:tinyint、smallint、mediumint、bigint,小数有精确小数(decimal、numeric)和模糊小数(float、real),精确小数可以指定数据的宽带和小数点后的个数。
2、字符型:定长字符(char)、变长字符(varchar)和大容量文本(text)。
3、二进制数据:blob型。
4、日期型:datetime、date、time和timestamp。
明确了数据类型后最终目的要知道根据什么数据选择什么合适的数据类型。
在创建表时需要指定约束:约束:主键约束:用来区分实体,外键约束:实现表之间的约束,用来保证外键字段的值,必须在主表中存在。
代码:
ALTER TABLEstdinfo DROP COLUMN SEX ,COLUMN ADDRESS (实现删除sex和address列)
ALTER TABLEstdinfo MODIFY address varchar(100) (实现更改列)
ALTER TABLE stdinfoCHANGE address address varchar(100)(实现列的更名)
ALTER TABLEstdinfo DROP PRIMARY KEY (实现删除主键)
ALTER TABLEstdinfo auto_increment =5 (实现更改自动增长列的起始值)
当我们创建完了表以后就要进行数据的操作,在sql标准语言里,是通过insert、update、delete和select来实现,分别代表增加、更新、删除和查看。
各自语法和具体示例如下:
增加:insertinto表名(列名。。。。) values(值。。。。。)
在insert语句中into是可选的,列名可是可选的,当列名不写时表示插入一条完整的数据,当写上列名时,表示要插入某一些具体列的值。
示例:insert into stdinfo values(‘201101’,’张飞’,’男’,’河北’);
Insert intostdinfo(sid,sname,sex) values(‘201102’,’关羽’,’男’)
更新:update 表名 set 列名=值。。。。。。where 条件
删除 delete * from 表名 where 条件
查看:select 列名。。。 from 表名 where 条件group by字段order by 字段 asc| desc limit 起始位置,条数
当多个条件时需要使用and或者or来连接。
查询分为精确查找和模糊查找,精确查找使用等于运算符,模糊查找使用like运算符,在like运算符中可以使用两个通配符,一个%和一个_,%代表任意个字符,_代表一个字符。其中在like还可以使用正则表达式,这个在后面的内容中会详细介绍。
在详细了解了sql的操作语句后,下面进入数据的导入和导出。
数据导出,需要用到mysqldump命令,在这里导出为sql的文件,导出的位置在当前目录下,也可以自己指定具体的位置。
Mysqldump –u root –pstudent > c:\student.sql(其中student为数据库的名称)
数据导入,首先要进入到mysql环境下,然后进入到具体的数据库中输入source命令即可。注意,在导入和导出中都没有输入mysql的命令结束符。