数据库的存在是为了保存数据的。和数据库相比,文件有几个缺点:安全问题、不利于数据查询和管理、不利于存储海量数据等。数据库更能有效管理数据。
数据库大致分为关系型数据库和非关系型数据库。关系型数据库,是使用“数据表”的格式来组织数据的,可以类比于excel表格。mysql就是这样的数据库。
mysql是一个“客户端-服务器”结构的程序。客户端就是主动的一方,给服务器发送的数据称为“请求”,而服务器是被动的一方,收到客户端数据后,返回的数据称为“响应”。
下面我们来使用mysql5版本来说明。
数据库指令可以大写也可以小写。每一条语句结束后都要带上英文的分号,否则,MySQL认为该语句还没有结束。
show databases; //注意database是复数形式
create database [if not exists] 数据库名 [default 可选项];
//如果不存在这个数据库的话就创建数据库,这里是单数
这些可选项有:CHARACTER SET 字符集名 来设置数据库采用的字符集,COLLATE 校验规则 来指定字符集校验规则。
设置字符集为utf-8。mysql默认字符集为拉丁文,对于汉字,它会出现乱码。设置了字符集为utf-8就可以避免乱码的出现。但是这种方法只是暂时的,需要的可以自行查找如何更改mysql的字符集。现在我们查看java这个数据库是不是存在。下面的java_104和test是本人已经创建了的数据库。要注意的是information_schema、mysql、perfromance_schema这三个数据库是mysql默认的数据库。
当前创建的是数据库。而在数据库里面,有很多的“数据表”。这里的数据库,就是一个“数据集合”。每一个表里面有很多的行,每一行称为“一条记录”,每一行也有很多的列,每一个列也称为一个“字段”。
use 数据库名;
要使用哪一个数据库,需要先选中数据库,才能在数据库中进行操作。
drop database [if exists] 数据库名;
要注意的是,删库操作是非常危险的。要小心操作。默认的数据库information_schema、mysql、perfromance_schema千万不要删除,否则mysql会出问题。
mysql是一门比较古老的语言,在java统一数据类型名称之前,数据类型起名是各有各的起法。所以你看到的mysql数据类型和其他的语言不太一样。
时间类型常用的数据类型有:int、bigint、double、decimal、varchar和datatime。有的同学可能不知道datatime的格式。它的格式是这样的:“年-月-日 时:分:秒”。不是每一个都是必须要写的。
在操作数据库中的表的时候,先 use 数据库名 使用数据库。
create table 表名 (
字段名 数据类型 comment '说明',//使用comment的时候,在‘说明’加,
字段名 数据类型,//不使用comment的时候,直接加,
...);
在一个数据库中,表名是不能重复的,而且,如果表名和sql语句中的关键字重名了,就需要加反引号,需要在英文状态下输入。位置在键盘tab上方,数字1的左边。
创建班级数据表。
想知道数据库中有哪些表,使用该语句。
show tables;
创建之后,想知道创建的表是什么结构,使用该语句。
desc 表名;
field表示字段名字;type表示字段类型;null表示是否允许为空;key表示索引类型;default表示默认值;extra表示是否有扩充。除了field和type,其他的需要后序的知识。
type中int后面有(11)是自动加的,表示打印的时候,显示数据的最大宽度是11位数字,只影响在客户端中的显示,不影响数据的存储和计算。如果是varchar(20),这里的(20)是手动加的,表示存储的时候,最多存储20个字符,具体的情况需要具体的分析该给varchar多少字符。
-- 删除 表
drop table 表名;
-- 如果存在 表,则删除 表
drop table if exists 表名;
删除表也是一个很危险的操作,需要小心操作。