MySQL
操作数据库
创建数据库:create database[name];
创建一个使用gbk字符集的数据库:create database [name] character set gbk;
创建一个使用utf8字符集,并带校对规则的数据库:create database [name] character set utf8 collate utf8_bin;
查看所有数据库:show databases;
查看指定数据库的建库语句:show create database [name];
判断:if not exists;
修改数据库的字符集:alter database [name] character set uft8;
删除数据库 删除前判断是否存在:drop database if exists [name];
选择数据库:use [name];
查看当前正在使用的数据库:select database();
操作表
创建表:create table [name](
列名1 数据类型1,
列名2 数据类型2,
);
查询当前数据库中所有的表:show tables;
查看表结构:desc [name];
查看表的建表语句 :show create table [name];
修改表
增加列:alter table [name] add(列名 数据类型);
修改列:alter table [name] modify 列名 数据类型;
删除列:alter table [name] drop 列名;
修改表名:alter table [name] rename to [name1]; 或 rename table [name] to [name1];
修改列名称:alter table [name] change 列名 列名1 数据类型;
修改列的顺序:alter table [name] modify 列名 数据类型 after 列名; 或 alter table [name] modify 列名 数据类型 flrst
修改表的字符集:alter table [name] character set utf8;
删除表
drop table [name];
新增表记录 (添加数据)
insert into 表名(列名1,列名2,列名3…)
values(值1,值2,值3…)
注意:
1.列名要和值一一对应
2.如果不定义列名,则默认给所有列添加数据
字符串类型
1.varchar :变长字符串类型 ,可以存储长度不同的字符串
2.char:定长字符串,用来存储长度固定的字符串
数值类型
1.tinyint:占用1个字节,相当于java中的byte
2.smallnt:占用2个字节,相当于java中的short
3.int:占用4个字节,相当于java中的int
4.bigint:占用8个字节,相当于java中的long
5.float:占用4个字节,浮点型,相当于java中的float
6.double :占用8个字节,浮点型,相当于java中的double
7.逻辑类型bit :位类型,取值为0或1,相当于java中的boolean
日期型
1.date:日期
例如:2020-10-16
2.time:时间
例如:15:28:32
3.datetime:日期时间
例如:2020-10-16 15:29:03
4.timestamp:时间戳
例如:2020-10-16 15:31:31
和datatime不同,timestamp类型底层存储的是毫秒值数据
timestame类型的数据有自动更新机制,即当数据发生变更时,时间戳会自动更新为最新的时间。
大数类型
1.Blob
大二进制类型,可以存入二进制类型的数据,通过这个字段,可以将图片、音频、视频等数据以二进制的形式存入数据库。最大为4GB。
2.Text
大文本,被声明为这种类型的字段,可以保存大量的字符数据,最大为4GB。
注意:text属于mysql的方言,在其他数据库中为clob类型
约束
主键约束
在一个表中可以有一个列或多个联合的列来唯一的标识表中的数据,这样的字段称之为表的主键字段
可以为主键字段增加主键约束
主键唯一且非空
primary key [auto_increment]
非空约束
当希望某个字段取值不可以为空时,可以为该字段设置非空约束
not null
唯一约束
当希望某个字段取值在当前表内不可重复时,可以为该字段设置唯一约束
unique