
数据类型(data type)是指系统中所允许的数据的类型。不同的编程语言所包含和允许的数据类型是不一样的,数据库中每个字段都应有适当的数据类型,用来限制或允许该字段中存储的数据。
PART 01
创建数据库
MySQL中创建数据库的语法是:
CREATE {DATABASE | SCHEMA} [IF NOT EXIST] db_name[ [DEFAULT] CHARACTER SET [=] charset_name ][ [DEFAULT] COLLATE [=] collation_name];
语法说明:
“[ ]”内为可选项。
“|”用于分隔大括号中的选项,表示可任选其中一项来与大括号外的语法成分共同组成SQL命令,选项之间是“或”的关系。
db_name:数据库名。在文件系统中,MySQL的数据存储区是以目录方式表示MySQL数据库。所以命令中的数据库名必须符合操作系统的文件夹命名规则,在MySQL中是不区分大小写的。
IF NOT EXIST:创建数据库的时候进行判断,只有该数据库目前尚不存在时才执行CREATE DATABASE。这样可以避免出现数据库已经存在而再新建的错误。
CHARACTER SET:用于指定数据库字符集(Charset),charset_name为字符集名称。简体中文字符集名称为gb2312,但是现在一般都是Unicode字符集。视情况而定。
COLLATE:用于指定字符集的校订规则,collation_name为校订规则的名称。简体中文字符集的校对规则为gb2312_chinese_ci。Unicode字符集的校对规则为utf8mb4_unicode_ci。
DEFAULT:指定默认的数据库字符集和字符集的校对规则。
现在我们在MySQL中创建一个名字为db_school的数据库,命令如下:
CREATE DATABASE db_schoolDEFAULT CHARACTER SET gb2312DEFAULT COLLATE gb2312_chinese_ci;
上面的命令执行成功后,系统会自动在MySQL的安装路径\data下创建一个同名文件夹,其中包含一个db.opt文件,用于存储创建数据库的全局特性,如缺省字符集和校对规则等。
重新执行上面的SQL会报错,因为数据库已经存在了,加上IFNOT EXIST就可以避免报错。
PS.在使用创建等的命令时,我们必须获得相应的权限,一般来说,我们是有的,但是因为权限问题,所以还是注意分配好使用权限。
PART 02
数据库操作
选择与查看数据库
选择数据库:USE db_school;
查看数据库:SHOW {DATABASES | SCHEMAS};
这里会看到当前用户权限范围内所能查看到的所有数据库名称。
下面看一下MySQL安装时系统自动创建的数据库,他们的作用如下表:
|
数据库名称 |
作用 |
|
mysql |
描述用户访问权限 |
|
information_schema |
保存关于MySQL服务器所维护的所有 |
|
performance_schema |
主要用于手机数据库服务器性能参数 |
|
test |
测试数据库,可以随意使用 |
修改数据库
在MySQL中,数据库的默认字符集为latin1,默认校对规则为latin1_swedish_ci。使用ALTER DATABASES 或ALTER SCHEMA可以修改数据库的默认字符集和字符集的校对规则。语法格式是:
ALTER {DATABASE | SCHEMA} [IF NOT EXIST] [db_name][ [DEFAULT] CHARACTER SET [=] charset_name ][ [DEFAULT] COLLATE [=] collation_name];
PS.这些操作都需要有权限才可以,数据库名称可以省略,默认更改当前数据库。下面我们把上面的db_school数据库改为utf8字符集和其校对规则。
ALTER DATABASE db_schoolDEFAULT CHARACTER SET 'utf8mb4'DEFAULT COLLATE utf8mb4_general_ci;
修改成功,再次查看数据库的校对规则已经变了。
删除数据库
删除数据库是将已创建的数据库文件夹从磁盘空间上清除,同时里面的数据也被清除,(这很危险,要谨慎操作,数据无价)。语法格式如下:
DROP {DATABASES | SCHEMA} [ IF EXISTS ] db_name;
执行删除操作,需要相应的权限,防止误删,可选项IF EXISTS子句可以避免删除不存在的数据库时出现MySQL错误信息。
PS.不能删除MySQL安装时自动创建的数据库,否则MySQL不能正常工作。
PART 03
MySQL中的常用数据类型
1、数值类型
Mysql支持所有标准SQL中的数值类型,其中包括严格数据类型(INTEGER,SMALLINT,DECIMAL,NUMBERIC),以及近似数值数据类型(FLOAT,REAL,DOUBLEPRESISION),并在此基础上进行扩展。
扩展后增加了TINYINT,MEDIUMINT,BIGINT这3种长度不同的整型,并增加了BIT类型,用来存放位数据。
| 数据类型 | 描述 |
| TINYINT(size) | -128 到 127 常规。0 到 255 无符号*。在括号中规定最大位数。 |
| SMALLINT(size) | -32768 到 32767 常规。0 到 65535 无符号*。在括号中规定最大位数。 |
| MEDIUMINT(size) | -8388608 到 8388607 普通。0 to 16777215 无符号*。在括号中规定最大位数。 |
| INT(size) | -2147483648 到 2147483647 常规。0 到 4294967295 无符号*。在括号中规定最大位数。 |
| BIGINT(size) | -9223372036854775808 到 9223372036854775807 常规。0 到 18446744073709551615 无符号*。在括号中规定最大位数。 |
| FLOAT(size,d) | 带有浮动小数点的小数字。在括号中规定最大位数。在 d 参数中规定小数点右侧的最大位数。 |
| DOUBLE(size,d) | 带有浮动小数点的大数字。在括号中规定最大位数。在 d 参数中规定小数点右侧的最大位数。 |
| DECIMAL(size,d) | 作为字符串存储的 DOUBLE 类型,允许固定的小数点。 |
2、日期和时间类型
| 数据类型 | 描述 |
| DATE() | 日期。格式:YYYY-MM-DD 注释:支持的范围是从 '1000-01-01' 到 '9999-12-31' |
| DATETIME() | *日期和时间的组合。格式:YYYY-MM-DD HH:MM:SS 注释:支持的范围是从 '1000-01-01 00:00:00' 到 '9999-12-31 23:59:59' |
| TIMESTAMP() | *时间戳。TIMESTAMP 值使用 Unix 纪元('1970-01-01 00:00:00' UTC) 至今的描述来存储。格式:YYYY-MM-DD HH:MM:SS 注释:支持的范围是从 '1970-01-01 00:00:01' UTC 到 '2038-01-09 03:14:07' UTC |
| TIME() | 时间。格式:HH:MM:SS 注释:支持的范围是从 '-838:59:59' 到 '838:59:59' |
| YEAR() | 2 位或 4 位格式的年。注释:4 位格式所允许的值:1901 到 2155。2 位格式所允许的值:70 到 69,表示从 1970 到 2069。 |
3、字符串类型
| 数据类型 | 描述 |
| CHAR(size) | 保存固定长度的字符串(可包含字母、数字以及特殊字符)。在括号中指定字符串的长度。最多 255 个字符。 |
| VARCHAR(size) | 保存可变长度的字符串(可包含字母、数字以及特殊字符)。在括号中指定字符串的最大长度。最多 255 个字符。注释:如果值的长度大于 255,则被转换为 TEXT 类型。 |
| TINYTEXT | 存放最大长度为 255 个字符的字符串。 |
| TEXT | 存放最大长度为 65,535 个字符的字符串。 |
今天主要讲一下MySQL中常用的数据类型,方便下面的学习,熟悉之后,我们才能更好的应用于我们的数据库,用合适的数据类型来存储合适的数据,这样不仅节省空间和资源,也方便后期的维护和优化。
欢迎关注微信公众号,访问更多精彩:数据之魅。
如需转载,请联系授权,谢谢合作。


本文介绍了如何在MySQL中创建、操作和删除数据库,重点讨论了数据类型的定义,包括数值类型、日期和时间类型及字符串类型。通过理解这些数据类型,可以更好地进行数据库设计和优化。

1322

被折叠的 条评论
为什么被折叠?



