mysql数据库定义语句
1、创建某数据库:
create database 数据库名 【charset 编码名】【 collate 排序规则名】;
说明:
1,编码名是用于设定当前数据库中的文本数据存储的时候,默认使用的字符编码,通常有:gbk,utf8。虽然可以省略,但 墙裂 建议不要省略。
显示所有可用的编码名: show charset
2,collate用于设定该编码下的“排序方式”,也是一个名字,比如:gbk_bin,gbk_chinese_ci
显示所有可用的排序规则名: show collation;
通常不写,因为每一种编码名(字符集),都有一个默认的排序规则。
什么是排序规则:
就是某种字符集内的所有单个字符的一个顺序的规定!
比如英文中:b>a, B>A, a > B
删除某数据库:
drop database 【if exists】 数据库名;
修改某数据库:
alter database 数据库名 【charset 新的编码名】【 collate 新的排序规则名】;
可见:修改数据库,其实也就只是修改数据库的编码和排序规则而已;
使用某数据库:
use 数据库名;
显示所有数据库名:
show databases;
数据类型
总览

2、可见:
数据类型分3大类:数值型,字符型,时间型;
整数类型

3、说明:
1,每一种类型所存储的数据占据的空间是固定的,而跟数据的大小无关。
2,整数类型的通用写法:
类型名【(显示长度)】【unsigned】 【zerofill】
3,显示长度是指select出来数据时的显示长度,而跟数据大小无关。
4,unsigned(无符号)用于设定该字段不可以存储负数。
5,zerofill用于设定在显示长度的设定上来填充0
#演示整数类型的使用:
create table int_test(
id int,
age tinyint unsigned,
f3 smallint(8) zerofill
);
insert into int_test values(1, 1, 1);
insert into int_test values(123, 123, 123);

4、小数类型
小数:
浮点数:
float:单精度浮点数:只能精确到6-7位
double:双精度浮点数:能够精确到大约15位
定点数:
decimal:可以精确到自己设定的位数,该位数可以在0-30之间。
decimal的通常设定形式为:decimal(总长度,小数点后长度)
一个典型错误提示:

5、举例:

6、结果:

7、常见字符串类型
字符串在“字面值”上,必须使用单引号。
定长字符串:char
必须设定长度,表示其设定的长度,也就是最终存储的数据长度。如果数据不足设定长度,内部会补空格填充到设定长度;
这里,长度是指“字符个数”,最大能设定为255.
变长字符串:varchar
必须设定长度,表示其设定的长度,是该字段最长能存储的长度,如果存储的实际数据不够那么长,则就按实际数据存储。
这里,长度是指“字符个数”,最大能设定为65535(理论值).
长文本字符串:text
不用设定长度,其默认都是65535个字节。

8、enum类型:枚举类型——就是多个选项中选择一个——相当于“单选项的数据值”:
它确实主要用于应用中的“单选项”的数据存储。
形式:
enum(‘选项值1’,‘选项值2’,‘选项值3’,......)
说明:
1,每个选项值,都是一个字符串;
2,每次存储只能存储其中一个值;
3,这些选项值,在系统内部其实分别对应整数值:1,2,3,4,5,.....这样内部处理数据更高效。
4,我们在操作中,也可以直接使用这个整数值;
举例:

9、set类型:相当于“多选项的数据值”:
它确实主要用于应用中的“多选项”的数据存储。
形式:
set(‘选项值1’,‘选项值2’,‘选项值3’,......)
说明:
1,每个选项值,都是一个字符串;
2,每次存储都能存储其中一个或多个值,形式为:’值1,值2,值4’
3,这些选项值,在系统内部其实分别对应整数值:1,2,4,8,16,32,.....这样内部处理数据更高效。
4,我们在操作中,也可以直接使用这些整数值:但需要一定的运算规则。
