17.Java与数据库(一)【Java学习笔记Hatter】Java开发工程师

/ 集美大学电气工程与自动化学院Java开发工程师 / 2017-03-18

Java开发初学者,Java学习经验分享,数据库,MySQL,库操作,表操作,字段操作,数据库的增删改查

1.什么是数据库?

数据库: database,存储数据的仓库。高效的存储和处理数据的介质(磁盘和内存)


2.数据库的分类

存储介质不同:关系型数据库SQL

                      非关系型数据库NoSQL


3.两种数据库阵营的区别:

关系型数据库:安全(保存在磁盘基本不会丢失),比较浪费空间。  

非关系型数据库:效率高(运行在内存),不安全,断电丢失。


4.关系型数据库:是一种建立在关系模型上的数据库。

关系模型:一种建立在关系上的模型,包含三个方面:

①数据结构:数据存储的问题,二维表。

②操作指令集合:所有SQL语句。

③完整性约束:表内数据约束(字段与字段),表与表之间约束(外键)。


关系型数据库特点:

若表中对应的某个字段信息没有数据,但是系统依然需要分配空间,所以关系型数据库比较浪费空间


5.SQL:结构化查询语言(数据以查询为主)

SQL分为三个部分:

①DDL:数据定义语言,用来维护存储数据的结构(数据库,表)

代表指令:create  ,drop,alter等

②DML:数据操作语言,用来维护存储数据的结构(数据表中的内容),代表指令:insert,delete,update等;其中DML在内部又单独进行了一个分类:DQL数据查询语言。代表指令:select

③DCL:数据控制语言,主要是负责权限管理(用户),代表指令:grant,revoke等

SQL是关系型数据库的操作指令,SQL是一种约束,但不强制 。


6.Mysql数据库是一种c/s结构的软件:客户端/服务端,若想访问服务器必须通过客户端(服务器 一直运行,客户端在需要使用的时候运行)

交互方式:

①客户端连接认证:连接服务器,认真身份:

mysql.exe -hlocalhost -P3306 -uroot -p


②客户端发送SQL指令

③服务器接收SQL指令:处理SQL指令:返回操作结果

④客户端接收结果:显示结果

show databases;


⑤断开连接(释放资源:服务器并发限制 )

exit/quit//q


将Mysql服务器对象分为四层:系统(DBMS)->数据库(DB)->数据表(Table)->字段(Field)


7.SQL的基本操作:CRUD

将SQL的基本操作对象进行分类,有三类:库操作表操作(字段),数据操作


(1)库操作

①创建数据库

create database 数据库名字[库选项];

库选项:用来约束数据库

一为字符集设定:charset/character set具体字符集(数据存储的编码格式)GBK和UTF8

二为校队集设定:collate具体校对集(数据比较的规则)

校对集依赖字符集


数据库名字不能用关键字或保留字,若非要使用关键字或保留字,则需在数据库名字两边加上反引号`数据库名字` (反引号``,单引号'')


②查看数据库

show databases;查询所有数据库

模糊查询

show databases like ’pattern‘ ;--pattern是匹配模式

%:表示匹配多个字符

_:匹配单个字符

查看数据库创建语句

show create database mydatabases;


数据库在执行SQL语句之前会优化SQL;系统保存的结果是优化的结果。


③更新数据库

数据库名字不可修改

数据库的修改仅限库选项:字符集与校对集

alter database 数据库名字[库选项];


④删除数据库

drop database 数据库名字;


注意:删除不可逆,应备份后操作。


(2)表操作

表与字段是密不可分的。

①创建表

create table[in not exists]数据库名. 表名(

字段名字  数据类型,

字段名字 数据类型

);

if not exists:若表名不存在,就创建;若存在,则不执行代码。

例:

create table if not exists mydatabase.student (

name varchar(10),

gender varchar(10),

num varchar(10),

age int

)charset utf8;


②查数据表

查看所有的表 :show tables;

模糊匹配:show tables like 'pattern';

show tables like '%s';---查看以’s‘结尾的表

查看表创建语句:show create table  表名;(/g==;)(/G==将查到的结构旋转90°变为纵向)

查看表结构:查看表中的字段信息

desc/describe/show columns from 表名;


③修改数据表

修改表本身:表名和表选项

表名:rename table 旧表名 to 新表名;

表选项:alter 表名 表选项 值;

alter table student charset GBK;


新增字段:

alter table 表名 add[column] 字段名 数据类型 [列属性][位置];

例:

给学生表增加一个ID字段放到第一个位置

alter table student

add column id int

first;


修改字段:alter table 表名 modify 字段名 数据类型[属性][位置]

例:

将学生表中的number学号字段变成固定长度,且放到第二位(id后)

alter table student

modify number char(10) after id;


重命名字段:

alter table 表名 change 旧字段 新字段名数据类型


例:

修改学生表中的gender字段为sex

alter table student

change gender sex varchar(10);

删除字段:

alter table 表名 drop 字段名;


例:

删除学生表中的年龄字段

alter table student drop age;


8.数据操作

(1)新增数据

①给全表字段插入数据,不需要指定字段列表:要求数据的值出现的顺序必须与表中设计的字段出现的顺序一致:凡是非数值数据,都需要使用引号包裹

insert into 表名 values(值列表)[,(值列表)];----可一次性插入多条记录


例:插入数据

insert into student values(1,'sql01','Tom','male'),(2,'sql02','Jim','female');


②给部分字段插入数据,需要选定字段列表:字段列表出现的顺序与字段的顺序无关;

但值列表的顺序必须与选定的字段的顺序一致

insert into 表名(字段列表)values (值列表)[,(值列表)];


例:指定字段列表插入数据

insert into student (number ,sex,name,id) values

('sql03','male','Davai',3),

('sql04','female','Lusy',4);


(2)查看数据

select */字段列表 from 表名 [where 条件];

例:

查看指定字段指定条件数据

select id,number,sex,name

from student where id=1;


(3)更新数据

Update 表名 set 字段= 值[where条件];

例:

update student set sex='female'

where name='Jim';


(4)删除数据

delete from 表名[where条件];

例:

delete from student

where sex='male';


9.校对集问题

校对集:数据比较的方式

校对集有三种格式:

_bin:binary,二进制比较,取出二进制位,一位一位比较,区分大小写

_cs.case sensitive,大小写敏感,区分大小写

_ci:case insensitice,大小写不敏感,不区分大小写

校对集的应用:只有当数据产生比较的时候,校对集才会生效

Java开发初学者,Java学习经验分享,数据库,MySQL,库操作,表操作,字段操作,数据库的增删改查


公众号,微信

汇鱼网海峡创乐汇
汇鱼网海峡创乐汇