数据库学习--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)
经验分享 程序员 微信小程序 职场和发展