目录
-
基本操作知识
- 创建数据库
create database 数据库名称;
- 查看数据库
show databases; ---查看已存在的数据库 show create database 数据库名称; ---查看已创建的数据库信息
- 修改数据库
alter database 数据库名称 default character set 编码方式 collate 编码方式_bin; 指要修改的数据库 指修改后的数据库编码
- 删除数据库
drop database 数据库名称;
-
数据表的基本操作
- 创建数据表
create table tablename( 字段名1 数据类型 [约束条件], 字段名2 数据类型 [约束条件], ......);
- 查看数据表
方法一 show create table 表名; ---查看表的信息(包括表定义的语句以及字符编码) show create table 表名\G; ---查看表的信息(同上,较美观) 方法二 describe 表名; ---查看表的字段信息(包括字段名信息类型等) desc 表名; ---同上,简写
表中不同的字段及解释
字段名 | 解释 |
---|---|
NULL | 表示该列是都可以存储NULL值 |
Key | 表示该列是否以及编制索引 |
Default | 表示该列是否有默认值 |
Eetra | 表示获取到的与给定列相关的附加信息 |
3.修改数据表
操作 | 格式 |
---|---|
修改表名 | |
修改字段名 | |
修改字段的数据类型 | 字段名为要修改的字段,数据类型为新的数据类型 |
添加字段 | |
删除字段 | |
修改字段的排列位置 | |
4.删除数据表
drop table 表名;
-
基本数据类型知识
- 数值类型
数据类型 | 字节数 | 取值范围(无符号) | 取值范围(有符号) |
---|---|---|---|
TINYINT | 1 | 0~255 | -128~127 |
SMALLINT | 2 | 0~65 535 | -32 768~32 767 |
MEDIUMINT | 3 | 0~16 777 215 | -8 388 608 ~8 388 607 |
INT | 4 | 0~4 294 867 295 | -2 147 483 648~2 147 483 647 |
BIGINT | 8 | 0~18 446 744 073 551 615 | -9 223 372 036 854 775 808 ~9 223 372 036 854 775 807 |
FLOAT | 4 | -3.402 823 466E+38~ -1.175 494 354E—38 | 0和1.175 494 354E—38~3.402 823 466E+38 |
DOUBLE | 8 | -1.797 693 134 862 315 7E+308~2.225 073 858 507 201 4E—308) | 0和(2.225 073 858 507 201 4 E-308 ~1.797 693 134 862 315 7E+308 |
DECIMAL(M,D) | M+2 | -1.797 693 134 862 315 7E+308~2.225 073 858 507 201 4E—308) | 0和(2.225 073 858 507 201 4 E-308 ~1.797 693 134 862 315 7 |
需要注意的是DECIMAL类型的取值范围有M和D决定,M表示数据的长度,D表示小数点后的长度
2.日期与时间类型
数据类型 | 字节数 | 取值范围 | 日期格式 | 零值 |
---|---|---|---|---|
YEAR | 1 | 1901~2155 | YYYY | 0000 |
DATE | 4 | 1000-01-01~9999-12-3 | YYYY-MM-DD | 0000-00-00 |
TIME | 3 | -838:59:59~838:59:59 | HH: MM:SS | 00:00:00 |
DATETIME | 8 | 1000-01-01 00:00:00~ 9999-12-31 23:59:59 | YYYY-MM-DD HH:MM:SS | 0000-00-00 00:00:00 |
TIMSTAMP | 4 | 1970-01-01 00:00:01~2038-01-19 03:14:07 | YYYY-MM-DD HH: MM:SS | 0000-00-00 00:00:00 |
YEAR类型
格式一:用四位字符串或数字表示,范围“1901”~“2155”,1901~2155
格式二:用两位字符串表示,范围"00"~"99"
格式三:使用两位数字表示范围为1~99
需要注意的是,当使用 YEAR类型时,一定要区分‘0’和0,因为字符串格式的0表示值为2000,二0表示的值为0000。
DATE类型
格式一:用' YYYY-MM-DD'或者’YYYYMMDD‘字符串表示
格式二:用'YY-MM-DD'或者’YYMMDD‘字符串格式表示
格式三:用'YY-MM-DD'或者’YYMMDD‘数字格式表示
格式四:用CURRENT_DATE或者NOW( )表示当前系统日期
3.字符串类型
数据类型 | 大小 | 类型说明 |
---|---|---|
CHAR | 4字节 | 用于表示固定长度大的字符串 |
VARCHAR | 实际长度+1 | 用于表示可变长度的字符串 |
BIGCHAR | 用于表示固定可变长度的二进制数据 | |
VARBINARY | 用于表示可变长度的二进制数据 | |
BLOB | 0~65535 | 用于表示二进制大数据 |
TINYTEXT | 0~255字节 | 用于表示大文本数据 |
TEXT | 0~35535字节 | 用于表示大文本数据 |
ENUM | 表示枚举类型,只能存储一个枚举字符串 | |
SET | 表示字符串的对象,可以有零或多个 | |
BIT | 1~64字节 | 表示位字段类型 |
-
表的约束
约束条件 解释 PRIMARY KEY 主键约束,表的唯一标识
字段名 数据类型 primary key---单主键
primary key (字段名1,字段名2,,字段名3,...,字段名n) --多主键
FOREIGN KEY 外键约束 NOT NULL 非空约束
字段名 数据类型 NOT NULL
UNIQUE 唯一约束
字段名 数据类型 unique
DEFAULT 默认值约束,设置字段的默认值
字段名 数据类型 default 默认值
?如何设置新纪录自动生成唯一ID?
字段名 数据类型 auto_increment
实际使用
create table biaoyi (
id int(4) primary key auto_increment,
name varchar(20) not null,
stu_id int unique,
grade float default 0);