继续体验mysql之数据表操作

首先先了解一下sql中的数据结构

1、整数类型:

类型名称说明存储需求
TINYINT -128〜127 0 〜255
SMALLINT -32768〜32767 0〜65535
MEDIUMINT -8388608〜8388607 0〜16777215
INT (INTEGER) -2147483648〜2147483647 0〜4294967295
BIGINT -9223372036854775808〜9223372036854775807 0〜18446744073709551615

2、小数类型

类型名称说明存储需求
FLOAT 单精度浮点数 4 个字节
DOUBLE 双精度浮点数 8 个字节
DECIMAL (M, D),DEC 压缩的“严格”定点数 M+2 个字节

  对精度要求比较高的时候 用DECIMAL  

3、日期和时间类型

类型名称日期格式日期范围存储需求
YEAR YYYY 1901 ~ 2155 1 个字节
TIME HH:MM:SS -838:59:59 ~ 838:59:59 3 个字节
DATE YYYY-MM-DD 1000-01-01 ~ 9999-12-3 3 个字节
DATETIME YYYY-MM-DD HH:MM:SS 1000-01-01 00:00:00 ~ 9999-12-31 23:59:59 8 个字节
TIMESTAMP YYYY-MM-DD HH:MM:SS 1980-01-01 00:00:01 UTC ~ 2040-01-19 03:14:07 UTC 4 个字节

4、字符串类型

类型名称说明存储需求
CHAR(M) 固定长度非二进制字符串 M 字节,1<=M<=255
VARCHAR(M) 变长非二进制字符串 L+1字节,在此,L< = M和 1<=M<=255
TINYTEXT 非常小的非二进制字符串 L+1字节,在此,L<2^8
TEXT 小的非二进制字符串 L+2字节,在此,L<2^16
MEDIUMTEXT 中等大小的非二进制字符串 L+3字节,在此,L<2^24
LONGTEXT 大的非二进制字符串 L+4字节,在此,L<2^32
ENUM 枚举类型,只能有一个枚举字符串值 1或2个字节,取决于枚举值的数目 (最大值为65535)
SET 一个设置,字符串对象可以有零个或 多个SET成员 1、2、3、4或8个字节,取决于集合 成员的数量(最多64个成员)

5、二进制类型

类型名称说明存储需求
BIT(M) 位字段类型 大约 (M+7)/8 字节
BINARY(M) 固定长度二进制字符串 M 字节
VARBINARY (M) 可变长度二进制字符串 M+1 字节
TINYBLOB (M) 非常小的BLOB L+1 字节,在此,L<2^8
BLOB (M) 小 BLOB L+2 字节,在此,L<2^16
MEDIUMBLOB (M) 中等大小的BLOB L+3 字节,在此,L<2^24
LONGBLOB (M) 非常大的BLOB L+4 字节,在此,L<2^32

 

 

 

 

创建一个数据表

CREATE TABLE <表名> ([表定义选项])[表选项][分区选项];

 

首先use进入到一个数据库中

然后使用刚才的语句创建一个数据表

 

 提示ok证明创建成功

这里我想创建的就是一个这样子的表

  id name score sex
1 12312312 tom 80
2 12312322 jeryr 90

当然了数据是要后面再填的,这里只是创建了每列的列头

 

查看一下刚才的表是否创建成功

使用这个命令查看数据库里所有的数据表

mysql> SHOW TABLES;

 

 

 

然后进入这个表查看一下表的结构

mysql> DESCRIBE talble1;

 

第三列 NULL 表示该值是否可以为空

第四列 Key 表示该列是否编制索引

第五列 Default 表示该属性是否有默认值

第六列 Extra 表示附加信息

 

 

mysql> SHOW CREATE TABLE talble1\G;

使用该语句可以查看创建表时所用的语句

 

 

 

 

修改数据表

{ ADD COLUMN <列名> <类型>
| CHANGE COLUMN <旧列名> <新列名> <新列类型>
| ALTER COLUMN <列名> { SET DEFAULT <默认值> | DROP DEFAULT }
| MODIFY COLUMN <列名> <类型>
| DROP COLUMN <列名>
| RENAME TO <新表名>
| CHARACTER SET <字符集名>
| COLLATE <校对规则名> }

 

 

修改数据表的名字,比如我把刚才创建的表talble1 改名为 tb1

mysql> ALTER TABLE talble1 RENAME TO tb1;

 

 

 

刚才查看数据表的时候,可以从参数中看出来字符集用的是utf8

 

 

那么现在将他改为gbk,顺带也修改一下校对规则

mysql> ALTER TABLE tb1 CHARACTER SET gbk  DEFAULT COLLATE gbk_bin;

 

 

 

 

修改字段名

ALTER TABLE <表名> CHANGE <旧字段名> <新字段名> <新数据类型>;

试用一下,把刚才表中的 score 改成 grade

mysql> ALTER TABLE tb1 CHANGE score grade DOUBLE;

 

 可以看出 表中已经没了score  取而代之的是 grade

 

 

添加字段

ALTER TABLE <表名> ADD <新字段名><数据类型>[约束条件];

现在向表中添加一个 color,数据类型是varchar

mysql> ALTER TABLE tb1 ADD color VARCHAR(10);

 

 这是添加在了末尾

接下来我们在开头添加一个school

mysql> ALTER TABLE tb1 ADD school VARCHAR(10) FIRST;

 

 school添加在了开头

那么再试一下在 name 后面添加一个age

mysql> ALTER TABLE tb1 ADD age INT(10) AFTER name;

 

 

 

 

删除字段 

ALTER TABLE <表名> DROP <字段名>;

试一下把刚才添加的color删掉

 

 

 

 

删除数据表

DROP TABLE [IF EXISTS] 表名1 [ ,表名2, 表名3 ...]

 

 图中可以看出,新建的数据表t2 被删掉了

 

posted @ 2020-06-11 17:26  祁峰_1024  阅读(169)  评论(0编辑  收藏  举报