CREATE DATABASE [IF NOT EXISTS] (非必须命令,如果不存在的情况下)db_name(数据库名) [create_specification [, create_specification] ...]
create_specification:
[DEFAULT] CHARACTER (编码格式)SET charset_name
[DEFAULT] COLLATE collation_name
注意:MySQL的命名规则是所有的数据库名称和表名以及字段名,必须要求全部小写。多个字母之间使用下划线“_”分隔。(大小写敏感linux)
3.使用数据库(切换数据库):use 数据库名
4.删除数据库:DROP DATABASE [IF EXISTS] db_name;
MySQL数据库类型:
数值类型:
数据类型 大小 说明 对应java类型
BIT[ (M) ] M指定位数,默认为1 二进制数,M范围从1到64, 常用Boolean对应BIT,此时
存储数值范围从0到2^M-1 默认是1位,即只能存0和1
TINYINT 1字节 Byte
SMALLINT 2字节 Short
INT 4字节 Integer
BIGINT 8字节 Long
FLOAT(M, D) 4字节 单精度,M指定长度,D指定
小数位数。会发生精度丢失 Float
DOUBLE(M, D) 8字节 Double
DECIMAL(M, D) M/D最大值+2 双精度,M指定长度,D表示 小数点位数。精确数值 BigDecimal
NUMERIC(M, D) M/D最大 值+2 和DECIMAL一样 BigDecimal
扩展知识:
数值类型可以指定为无符号(unsigned),表示不取负数。
1字节(bytes)= 8bit。
对于整型类型的范围:
1. 有符号范围:-2^(类型字节数*8-1)到2^(类型字节数*8-1)-1,如int是4字节,就
是-2^31到2^31-1
2. 无符号范围:0到2^(类型字节数*8)-1,如int就是2^32-1
尽量不使用unsigned,对于int类型可能存放不下的数据,int unsigned同样可能存放不下,与其
如此,还不如设计时,将int类型提升为bigint类型。
字符串类型:
数据类型 | 大小 | 说明 | 对应java类型 | 对应C类型 |
VARCHAR (SIZE) | 0-65,535字节 | 可变长度字符串 | String | char[] |
TEXT | 0-65,535字节 | 长文本数据 | String | char[] |
MEDIUMTEXT | 0-16777215字节 | 中等长度文本数据 | String | char[] |
BLOB | 0-65,535字节 | 二进制形式的长文本数据 | byte[] | char[] |
LONGTEXT | 0-4294967295字节 | 极大文本数据 | String | char[] |
日期类型:
数据类型 | 大小 | 说明 | 对应Java类型 |
DATETIME | 8字节 | 范围从1000到9999年,不会进行时区检索及转换 | java.util.Date、 java.sql.Timestamp |
TIMESTAMP | 4字节 | 范围从1970到2038年,自动检索当前时 区并进行转换。 | java.util.Date、 java.sql.Timestamp |
表的操作用法 1.创建表的语法:
CREATE TABLE table_name (
field1 datatype,
field2 datatype,
field3 datatype
);
可以使用comment增加字段说明。
2. 查询所有的表名:
show tables;
3. 查询表结构:
desc table_name;
key:表示索引;Default:表示默认值;
查询表的所有信息:
方式一:show create table 表名;
方法二:show full columns from 表名;
4.删除表
语法格式:
DROP [TEMPORARY] TABLE [IF EXISTS] tbl_name [, tbl_name] ...
-- 删除 stu_test 表
drop table stu_test;
-- 如果存在 stu_test 表,则删除 stu_test 表
drop table if exists stu_test
删除多张表
语法:drop table 表一,表二;
5.修改表结构
添加字段
语法:alter table 表名 add column 列名 列类型 [comment 备注信息];
删除字段
语法: alter table 表名 drop column 列名;(删除列的时候,这一列所对应的所有数据也全部删除)
修改字段
语法:alter table 表名 change 原字段名 新字段名 类型 [约束]; (修改字段不会对此字段的原有数据造成任何影响)
修改表名
语法:alter table 旧表名 rename 新表名;
修改表的编码格式
语法:alter table table_name convert to character set utf8mb4;
注意:一张表里面不能出现两个相同字段名,一个数据库里面不能创建两个相同名称的表。