数据库学习--DDL(数据库定义语言)

数据库

创建数据库

create database if not exists 库名;
说明:if not exists的存在为了保证数据库是唯一的,同时保证程序不阻塞

删除数据库

drop database if exists 库名;
说明: if exists 为保证程序不阻塞

查询表

show create table 表名;  =》展示创建表的时候的结构的详细信息
desc 表名; =》 展示基础的表信息

创建表

mysql 5.1版本以下 的不安装引擎,需自己安装
charset=utf8; 指定字符集
engine=innodb;指定引擎;
comment=“示例”;添加注释

create table if not exists Student(
	Sno varchar(9) primary key,
	Sname varchar(20) unique,
	Sage smallint,
	Ssex varchar(2),
	Sdept varchar(20)
)default charset=utf8 engine=InnoDB comment="示例1";

在每个字段后跟你想要设置的列特性

列特性的说明

  • not null:不为空
  • default:设置字段默认值
  • unique:唯一值,一列中只能出现一个
  • primary key:主键
  • auto_increment:自增键

修改表

向表中增加一列

alter table 表名 add 列名 特性;

修改表中数据类型

alter table 表名 modify column 列名 新类型;

删除表中列

alter table 表名 drop 列名;

修改列名或其他 【万能修改】

alter table 表名 change 旧列名 新列名 特性;

修改特性

主键

添加主键

alter table 表名 add primary key (列名)

删除主键

alter table 表名 drop primary key

索引

添加唯一值索引

alter table 表名 add unique(列名)

添加全文索引

alter table 表名 add fulltext(列名); 版本需要在5.7及以上

添加普通索引

alter table 表名 add index(列名)

删除索引

alter table 表名 drop index/unique/fulltext 列名;

修改索引

删除后再添加;不能直接修改

引擎

修改

alter table 表名 engine=引擎名;

显示所有引擎

show engines;

自增开始值的修改

alter table 表名 auto_increment=1;

删除表

drop table 表名;

数据类型

常用的数值,字符,事件

数值类型

类型 大小 无符号范围 有符号范围
tinyint 1字节 -27,27-1 0,2^8 ^-1
smallint 2字节 -215,215-1 0,2^16 ^-1
mediumint 3字节 -223,223-1 0,2^24 ^-1
int/integer 4字节 -231,231-1 0,2^32 ^-1
bigint 8字节 -263,263-1 0,2^64 ^-1
float 4字节 -231,231-1 0,2^32 ^-1
double 8字节 -263,263-1 0,2^64 ^-1

unsigned :无符号,最小是0
zerofull:数值位数不足时,用0补齐

字符串

类型 大小
char 255字节 (定长)
varchar 0-65535字节(弹性)
tintblob 0-255字节(二进制)
tinttext 0-255字节(文本)

日期

类型 格式
date yyyy-mm-dd
time hh:mm:ss
year yyyy
datetime yyyy-mm-dd hh:mm:ss
timestamp 时间戳,毫秒数

类型为timestamp,默认插入数据的时间,更新时,时间也会变(版本>5.7)

你可能感兴趣的:(MySQL)