目录
一、数据库的操作
1、创建数据库
2、查看数据库
3、选中指定数据库
4、删除数据库
二、常用数据类型
1、数值类型
2、字符串类型
3、日期类型
三、数据表的操作
1、创建表
2、查看当前数据库中的所有表
3、查看表的指定结构
4、删除表
我们现在已经有一个数据库服务器了
在这个数据库服务器上,可以在逻辑上划分出多个不同的集合(每个数据集合就称为是一个数据库)
creat database 数据库名
注意:
1、create , database .....相当于“关键字”
2、SQL的关键字不区分大小写
3、创建的数据库名不能重复
4、单词之间至少有一个空格,也可以是多个空格
5、在命令行中输入的SQL语句必须以 ; 结尾
看到 “OK” 说明数据库创建成功
此外,我们也可以使用这样的语法来创建数据库:
CREATE DATABASE [IF NOT EXISTS] 数据库名;
【】内的 IF NOT EXISTS 的意思是“如果不存在”,也就是说,当电脑中不存在与我们现在已有数据库相同的数据库名的时候,才进行数据库的创建操作,而这个【】则表示可有可没有。
当我们不加 IF NOT EXISTS 的时候,如果创建了一个已有的数据库,会进行下面这种报错。
但是当我们使用了 if not exists的时候,就不会进行报错了!
如果是一条一条执行SQL,报错的影响其实不大
但是如果是批量执行SQL(把很多SQL写到一个文件夹中) 如果中间某个SQL报错就会停止执行,这个时候这条语句就可以起到重要作用了。
如果我们想在创建数据库的同时指定数据库的字符集的话,可以在原来的语句中加入;
create database 数据库名 character set utf8;
那么字符集是干什么呢?
字符集其实就是在针对汉字进行编码
我们都知道,英文字母我们在计算机中是使用ASCII码进行表示的,但是在ASCII中,只能表示英文字母,标点符号,以及阿拉伯数字。
但是汉字要表示的内容特别多,因此我们选择搞一个更大的表来表示汉字,因此我们演化出了很多套这样的表示方法(不像ASCII只有一套),其中最常见的表示方式有两种:gbk , utf-8,这两个表上,同一个汉字表示的数字不同,同一个数字,对应的汉字也不同。
其中,gbk 是使用两个字节来表示一个汉字,utf-8是使用3个字节来表示一个汉字。
目前更主流的是utf-8,主要是因为它能表示的东西更多,除了汉字之外其它国家的语言文字符号也能表示。
在这里手动设定一个字符集其实是非常关键的,后序如果要插入一些中文,如果不是utf-8/gbk 之类的中文就会乱码
MySQL默认字符集是拉丁文(没办法表示中文)
语法:
show databases;
进行查看操作后,我们能看到目前已经创建了的数据库:
其中,java是我们自身创建的数据库,其他的都是系统自带的几个数据库,我们不要对其随意进行乱改。
语法:
use 数据库名;
一旦选中了某个指定的数据库,那么后序的操作都是针对该数据库展开
语法:
drop database 数据库名;
同样,当显示“OK”的时候,意味着数据库删除成功
删除数据库是一个非常危险的行为!!!!!!
一旦删除数据库,数据库中所有的数据就没有了,很难恢复。
那么如何针对上述的危险操作,防患于未然呢?
1、权限 不同的用户能进行的操作是不一样的
2、备份 一旦不小心误删除了数据库,通过之前的备份数据,恢复回来,将损失降到最低
3、重要操作的时候,拉上其他人帮忙一起检查
DECIMAL能够精确表示小数
float 和 double 是不能精确表示小数的
例如:0.1 + 0.2 其实是不等于 0.3的,但是当我们使用float 和 double 类型的时候会判断成相等,而使用DECIMAL类型的时候,会精确计算出他的结果,0.3000000000000004
因此,DECIMAL这个类型就是为了解决上述这种问题的
虽然DECIMAL能够精确存储和精确计算小数,但是存储空间占用的更多,计算速度也是更慢的。
varchar(SIZE)属于可变长度的字符串
SIZE表示最大长度,单位是字符(不是字节!!!!)
varchar(10) --->不管是汉字还是字母最大长度都是十个字符
TIMESTAMP 是时间戳
时间戳是计算机表示时间的一种经典方式,以1970年1月1日0时0分0秒为基准,计算当前时刻和基准时刻的秒数/毫秒数之差
DATETIME时间更充足,因此更推荐使用DATETIME
在关系型数据库中,数据是以"表"的方式来进行组织的(类似于excel)
每个数据库中,里面就可以有很多个数据表
每个表可以有很多行,每一行又可以有很多个列(字段)
语法:
create table 表名(列名 类型,列明 类型....);
创建表的时候,我们要先把表的类型确定好,后续我们插入的数据也要遵循当前的这个类型
这里我们要注意的是,所有与表相关的操作,都是要选中数据库的,不然会出现下面这种报错
现在,我们先选中数据库,再创建表就能成功了
此外,comment是注释,属于在创建表的时候的一种专属注释
当我们在其它时候想使用注释的时候,可以使用#或者--、
和创建数据库类似,我们在创建表的时候,也可以加上if not exists
语法:
show tables;
通过使用这条SQL语句,我们能看到当前数据库中所有的表
语法:
desc 表名;
这里的desc史describle 的缩写,也就是描述的意思
通过它,我们能看到表中的结构:
注意:int括号中的11表示的是,该列在打印的时候,显示的时候,最多占11个字符这么宽,和存储范围是无关的。
语法:
drop table 表名;
删除表相当于删除了整个表中的所有数据,和删除数据库一样都是非常危险的操作。