创建数据表
现进入use 到某个数据库
然后就可以创建数据表了
create table 表名
(
字段名 类型 其他配置,
字段名 类型 其他配置,
……
)
例如
cmd编码问题
mysql> create table 表1
-> (
-> id int primary key,
-> name varchar(20) not null);
ERROR 1300 (HY000): Invalid utf8 character string: '\xB1'Code language: JavaScript (javascript)
我们的这个cmd只是一个工具 执行这些命令的时候 发送这些内容到mysql服务
mysql> set names gbk;
Query OK, 0 rows affected (0.00 sec)
mysql> create table 表1
-> (
-> id int primary key ,
-> name varchar(20)
-> );
Query OK, 0 rows affected (0.01 sec)
mysql> show tables;
+---------------+
| Tables_in_bbs |
+---------------+
| 表1 |
+---------------+
1 row in set (0.00 sec)Code language: JavaScript (javascript)
创建中文数据库
mysql> create database 库1;
Query OK, 1 row affected (0.00 sec)
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| 库1 |
| abc |
| bamn |
| bbs |
| message |
| mysql |
| performance_schema |
| test |
+--------------------+
9 rows in set (0.00 sec)Code language: JavaScript (javascript)
create database 不会影响你现在所在的库 之前use 某个库 就算创建了新的库 还是在这个库里面的
mysql> show tables;
+---------------+
| Tables_in_bbs |
+---------------+
| 表1 |
+---------------+
1 row in set (0.00 sec)Code language: JavaScript (javascript)
创建数据表示例
create table post1
(
id int primary key auto_increment,
title varchar(100) not null,
content text null,
addtime datetime
)Code language: JavaScript (javascript)
注意后面的 可以没有逗号 逗号是分隔作用
auto_increment定义列为自增的属性,一般用于主键,数值会自动加1。
primary key关键字用于定义列为主键。 您可以使用多列来定义主键,列间以逗号分隔。
mysql> create table post
-> (
-> id int primary key auto_increment,
-> title varchar(100) not null,
-> content text null,
-> addtime datetime
-> )
-> ;
Query OK, 0 rows affected (0.01 sec)
mysql> show tables;
+---------------+
| Tables_in_bbs |
+---------------+
| 表1 |
| post |
+---------------+
2 rows in set (0.00 sec)Code language: JavaScript (javascript)
mysql的数据类型
数据类型 就是mysql中列的保存类型
MySQL支持多种类型,大致可以分为三类:数值、日期/时间和字符串(字符)类型
首先我们看数值类型
整数
| 类型 | 大小 | 范围(有符号) | 范围(无符号) |
|---|---|---|---|
| TINYINT | 1字节 | (-128, 127) | (0, 255) |
| SMALLINT | 2字节 | (-32768, 32767) | (0, 65535) |
| MEDIUMINT | 3字节 | (-8388608, 8388607) | (0, 16777215) |
| INT或INTEGER | 4字节 | (-2147483648, 2147483647) | (0, 4294967295) |
| BIGINT | 8字节 | (-9223372036854775808, 9223372036854775807) | (0, 18446744073709551615) |
浮点型
| 类型 | 大小 | 说明 |
|---|---|---|
| FLOAT | 4字节 | 单精度浮点型 |
| DOUBLE | 8字节 | 双精度浮点型 |
| DECIMAL(M,D) | M+2字节 | 定点数,M为总位数,D为小数位数 |
日期时间类型
| 类型 | 大小 | 范围 | 格式 |
|---|---|---|---|
| DATE | 3字节 | 1000-01-01 ~ 9999-12-31 | YYYY-MM-DD |
| TIME | 3字节 | ‘-838:59:59’ ~ ‘838:59:59’ | HH:MM:SS |
| YEAR | 1字节 | 1901 ~ 2155 | YYYY |
| DATETIME | 8字节 | 1000-01-01 00:00:00 ~ 9999-12-31 23:59:59 | YYYY-MM-DD HH:MM:SS |
| TIMESTAMP | 4字节 | 1970-01-01 00:00:01 ~ 2038-01-19 03:14:07 | YYYY-MM-DD HH:MM:SS |
字符型
| 类型 | 大小 | 说明 |
|---|---|---|
| CHAR | 0-255字节 | 定长字符串 |
| VARCHAR | 0-65535字节 | 变长字符串 |
| TINYTEXT | 0-255字节 | 短文本字符串 |
| TEXT | 0-65535字节 | 长文本数据 |
| MEDIUMTEXT | 0-16777215字节 | 中等长度文本数据 |
| LONGTEXT | 0-4294967295字节 | 极大文本数据 |
关于这些类型
我觉得 也没必要记 死记硬背也可能记不住
应该是平常多点用 自己手写 然后慢慢就记住了。
Previous: 创建、删除、使用数据库
Next: 数据表操作