create database test1 collate utf8_general_ci;
create database test2 collate utf8_bin;
//都插入 a A b B
insert into person values('a');
insert into person values('A');
insert into person values('b');
insert into person values('B');
以上我们可以看出采用不同校验集对数据库的影响,设定数据库时编码集和校验集必须采用相同的字符集。
📂 删除数据库
sql复制代码
drop database [if not exists] 数据库名;
删除数据库后,数据库内部看不对应的数据库,对应数据库文件夹被删除,级联删除,里面的数据表全部删除。
📂 修改数据库
sql复制代码
alter database 数据库名 [charset] [collate];
//例如
alter database mytest charset=gbk;
修改数据库主要是修改数据库的编码集和校验集。
📂 查看数据库
sql复制代码
//查看数据库
show databases;
//显示创建数据库的语句
show create database 数据库名;
create table 表名(
列名 数据类型,
...) character set 字符集 collate 校验规则 engine 存储引擎;
character set:设定编码集,如果没有指定编码集,以所在数据库的编码集为准。
collate:设定校验集,如果没有指定校验规则,以所在数据库的校验集为准。
举个例子,我们创建一个表结构,有如下几个列:
sql复制代码
create table users (
id int,
name varchar(20) comment '用户名',
password char(32) comment '密码是32位的md5值',
birthday date comment '生日'
) character set utf8 engine MyISAM;
📂 查看表
sql复制代码
desc 表名;
📂 修改表
修改表,我们可以修改表中的相关列,比如插入新的列,修改某列的数据类型,删除列。
sql复制代码
//添加新的一列
alter table 表名 add 字段名 数据类型;
//修改某列的属性
alter table 表名 modify 字段名 数据类型;
//删除某列
alter table 表名 drop 字段名;
//修改列名
alter table 表名 change 字段名 新字段名 数据类型; ---新的字段需要完整定义
//修改表名
alter table 表名 rename 新表名