create datebase <name>; //创建数据库(不能创建一个已存在的数据库,不然会报错)
create database if not exists test character set utf8; //如果数据库存在则不创建,否则创建并设置字符类型为utf8
show databases; //查看数据库
show create database test; //查看指定数据库的信息
--------------------------------------------------------------
修改数据库 alter 指令
alter database test character set gbk; //修改数据库字符编码
--------------------------------------------------------------
删除数据库(干掉所有数据信息)
drop database test;
drop database if not exists test;
--------------------------------------------------------------
切换数据库
use test;
show tables; //查询数据库中的所有表
desc <tableName>; //查看详细表结构
desc students;
mysql> desc students;
+-----------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------+-------------+------+-----+---------+-------+
| stuNum | char(8) | NO | PRI | NULL | |
| stuName | varchar(20) | NO | | NULL | |
| stuGender | char(2) | NO | | NULL | |
| stuAge | int | NO | | NULL | |
| stuTel | varchar(11) | NO | UNI | NULL | |
| stuQQ | varchar(11) | YES | UNI | NULL | |
+-----------+-------------+------+-----+---------+-------+
6 rows in set (0.01 sec)
--------------------------------------------------------------
创建表 (表中的每一列称为字段)
use test;
create table students(
stuNum char(8) not null unique,
stuName varchar(20) not null,
stuGender char(2),
stuAge int,
stuTel char(11) not null unique,
stuQQ varchar(11) unique
);
unique 表示字段内容不可以重复
char 表示定长字符串
varchar 表示不定长字符串
drop table tableName; //删除表
drop table students;
drop tanle if not exists students;
-----------------------------------------------------------------
修改数据表
alter table students rename to STU; //修改数据表名
alter table STU character set gbk; //修改表的字符集
给表中添加字段(列)
alter table STU add stuRemark varchar(200);
alter table STU change stuRemark stuDesc text;
alter table students modify stuDesc varchar(400); //修改字段(列)的属性
alter table students drop stuDesc; //删除字段(列)
----------------------------------------------------------------------
数值类型
类型 | 内存空间大小 | 范围 | 说明 |
tinyint | 1 byte | 有符号 -128 --- 127 之间 无符号 0 --- 255 之间 | 特小型整数(年龄) |
smallint | 2 byte | 有符号 -32768 --- 32767 之间 无符号 0 --- 65535 之间 | 小型整数 |
mediumint | 3 byte | 有符号 -2^31 --- 2^31 - 1之间 无符号 0 --- 2^32 -1 之间 | 中型整数 |
int/integer | 4 byte | 整数 | |
bigint | 8 byte | 大型整数 | |
float | 4 byte | 单精度 | |
double | 8 byte | 双精度 | |
decimal | decimal(10,2) 精确到2位,数值最大有效位是10位 |
类型 | 字符序列的长度范围 | 说明 |
char | 0 - 255 byte 字节 | 定长字符串,最多可以存储255个字符,如果存储的字符不足会自动补足 |
varchar | 0 - 65535 byte 字节 | 存放可变长度字符串,最多存放65535字节 |
tinyblob | 0 - 255 byte 字节 | 存储二进制字符串 |
blob | 0 - 65535 字节 | 存储二进制字符串 |
mediumblob | 0 - 1677215 字节 | 存储二进制字符串 |
longblob | 0 - 4294967295 字节 | 存储二进制字符串 |
tinytext | 0-255 字节 | 文本数据(和char对比,可变长度),字符串 |
text | 0 - 65535 字节 | 文本数据,字符串 |
mediumtext | 0 - 1677215 字节 | 文本数据,字符串 |
longtext | 0 - 4294967295 字节 | 文本数据,字符串 |
一般情况下,当varchar存放数据不够时,才会用longtext这个数据类型
日期类型
在MySQL数据库中,我们可以使用字符串来存储时间,但是如果我们需要基于时间字段进行查询操作,查询在某个时间段内的数据,就不便于查询实现了。
类型 | 格式 | 说明 |
date | 2022-3-19 | 日期,只存储年月日 |
time | 11:30:02 | 时间,只存储时分秒 |
year | 2022 | 只存储年份 |
datetime | 2022-3-19 11:30:02 | 存储年月日时分秒 |
timestamp | 20210913 111213 | 时间日期(时间戳) |