数据定义语言(DDL)
查看库:show databases;,会显示当前服务器上所有的数据库
创建库:create database test;,创建数据库test
删除库:drop database test;,删除数据库test
选择库:use test;,选择数据库test
查看当前使用的数据库
show tables;
select database();
查看表:show tables;,查看当前数据库下的所有数据表
查看表结构:desc user;
查看创建方式:
查看库:show create database test;
查看表:show create table user;
删除表:drop table user;
指定字符集:
创建时指定:create table xxx()engine=Innodb default chatrset=utf8;
字符集:character-set-server=utf8
存储引擎:default-storage-engine=INNODB
重启服务配置才能生效
修改字段:
alter table user modify username varchar(30);,不能修改字段名
alter table user change email em varchar(32);,可以修改字段名
添加字段:
默认在最后添加:alter table user add age int(3);
在指定字段后添加:alter table user add email varchar(60) after password;
在开头添加字段:alter table user add id int(11) first;
删除字段:alter table user drop age;
修改字段位置及名称:add/modify/change
alter tablr user modify em varchar(32) first;
修改表名:alter table user rename new_user;
修改字段位置及名称:add/modify/change
数据类型
整型:tinyint(1个字节)、smallint(2个字节)、mediumint(3个字节)、int(4个字节)、bigint(8个字节)
浮点型:
float(m, d):单精度浮点型,4个字节,m表示总位数,d表示小数位数
double(m, d):双精度浮点型,8个字节,m表示总位数,d表示小数位数
decimal(m, d):以字符串的形式存储浮点数,多用于金融相关应用
字符串:
char:定长字符串,0~255个字节
varchar:变长字符串,0~65535个字节
时间日期:
date:日期,格式:2018-11-05
time:时间,格式:15:52:52
datetime:日期时间,格式:2018-11-05 15:52:52
timestamp:时间戳
year:年,只占用一个字节,年份:1901~2155
符合类型:
set:集合类型,格式:set(s1,s2,…,s63),最多63种可能
enum:枚举类型,格式:enum(e1,e2,…,e65535),最多65535种可能
字段修饰:
unsigned:无符号数
zerofill:高位0填充,防止出现负数
auto_increment:自动增加(1),用于整数,经常与主键结合使用
default:默认值
not null:不能为空
字符集:
查看系统支持字符集:show character set;,通常我们只使用utf8
存储引擎:
查看系统支持存储引擎:show engines;
常用存储引擎:InnoDB和MyISAM
索引
说明:简单理解就是一本书最前面的目录,可以提高读取效率,但也不是说越多越好。
分类:
普通索引(index):最基本的索引
唯一索引(unique):修改的字段不能重复
主键索引(primary key):是一种特殊的唯一索引,一张表中最多只能有一个字段设置
全文索引(fulltext):对全局数据进行添加索引
示例:
alter table user add index(em); # 给em字段添加普通索引
alter table user add unique(username); # 给username字段添加唯一索引
alter table user add primary key(id); # 给id字段添加主键索引
alter table user drop index em; # 删除em字段的普通索引
创建表示直接指定:
create table user(
id int auto_increment,
name varchar(20),
primary key(id),
unique(name)
)engine=innodb default charset=utf8;
数据操作语言(DML)
说明:在大多数的操作中,使用的都是增删改查操作(CURD)。
准备:一张用于测试的表
mysql> create table star(
-> id int auto_increment,
-> name varchar(20) not null,
-> money float not null,
-> province varchar(20) default null,
-> age tinyint unsigned not null,
-> sex tinyint not null,
-> primary key(id)
-> )engine=innodb default charset=utf8;
插入数据:
方式1:不指定字段,添加数据时需要写完整所有的字段
insert into star values(1, ‘老大’, 20000000, ‘武汉’, 28, 1);
可以一次性插入多条数据,一条数据需要使用一个()包括起来。
方式2:指定字段,只需要传递指定字段的值
insert into star(name, money, age, sex, province) values(‘老二’, 8000000, 31, 1, ‘河北’);
插入数据的顺序与前面指定的字段名要一致。
注意:插入数据时可以不传值的字段
自增的字段
有默认值的
可以为空的
说明:插入数据时,第二种方式使用的比较多。
查询数据:select * from star;
修改数据:update star set age=31, money=10000000 where id=1;
警告:修改操作一定不要忘了指定条件,否则后果自负。
删除数据:delete from star where id=2;
警告:删除操作一定不要忘了指定条件,否则后果自负。