DDL,数据定义语言,用来定义数据库对象(数据库,表,子段)
数据库操作
启动
mysql -u root -p
查询所有数据库
show databases;
查询当前数据库
select database();
创建
create database [if not exists] 数据库名 [default charset 字符集] [collate 排序规则];
--if not exists 如果不存在则创建
删除
drop database [if exists] 数据库名
--if exists 如果存在则删除
使用数据库
use 数据库名
表操作
创建
create table 表名(
字段1 类型 [comment 注释],
字段2 类型 [comment 注释],
字段3 类型 [comment 注释]
)[comment 表注释];
--最后一个字段没有都好
例:
创建下列表结构
mysql> create table tb_user(
-> id int comment '编号',
-> name varchar(50) comment '姓名',
-> age int comment '年龄',
-> gender varchar(1) comment '性别'
-> )comment '用户表';
删除
删除字段
alter table 表名 drop 字段名;
删除表
drop table [if exists] 表名;
删除指定表,并重新创建该表(即删除数据,保留表结构)
truncate table 表名;
修改
添加字段
alter table 表名 add 字段名 类型(长度) [comment 注释] [约束];
例:
alter table emp add nickname varchar(20) comment '昵称';
--为emp表增加一个新的字段nickname,类型为varchar(20)
修改数据类型
alter table 表名 modify 字段名 新数据类型(长度);
alter table 表名 change 旧字段名 新字段名 类型(长度) [comment 注释] [约束];
例:
alter table emp change nickname username varchar(30) comment '用户名';
--将emp表的nickname字段修改为username,类型为varchar(30)
修改表名
alter table 表名 rename to 新表名;
查询
查询当前数据库所有表
show tables;
查询表结构
desc 表名;
查询指定表的建表语句
show create table 表名;
数据类型
数值类型
例:
age tinyint unsigned
--小整数值,无符号
score double(4,1)
--4为整体长度,1为小数位数,如100.0
字符串类型
char(10)
--定长字符串,占用10个字符空间,没有字符的空间使用空格补位,超出10个字符报错
varchar(10)
--变长字符串,根据存储内容占用空间,超出10个字符报错
--性能较差,因为会根据内容计算空间
例:
username varchar(50)
gender char(1)
日期时间类型
例:
birthday date
案例
create table emp(
id int comment '编号',
workno varchar(10) comment '工号',
name varchar(10) comment '姓名',
gender char(1) comment '性别',
age tinyint unsigned comment '年龄',
idcard char(18) comment '身份证号',
entrydata date comment '入职时间'
) comment '员工表';