1. DDL-数据库设计
数据定义语言,用来定义数据库对象(数据库,表)
数据库操作
1.查询所有数据库:show databases;
2.查询当前数据库:select databases;
3.创建数据库:create database [if not exists] 数据库名;
4.切换数据库:use 数据库名;
5.删除数据库:drop database [ if exists ] 数据库名;
表操作
创建表的流程
注意:
create_time:记录的是当前这条数据插入的时间
update_time:记录当前这条数据最后更新的时间
1.创建表并插入数值
create table 表名(
字段1 字段1类型 [约束] [comment 字段1注释 ],
字段2 字段2类型 [约束] [comment 字段2注释 ],
字段3 字段3类型 [约束] [comment 字段3注释 ],
......
字段n 字段n类型 [约束] [comment 字段n注释 ]
) [ comment 表注释 ] ;
//例如
create table tb_user (
id int comment 'ID',
username varchar(20) comment '用户名',
name varchar(10) comment '姓名',
age int comment '年龄',
gender char(1) comment '性别'
) comment '用户表';
2.表格的5大约束
概念:约束是作用于表中字段上的规则,用于限制存储在表中的数据
目的:保证数据库中的数据的正确性、有效性和完整性
约束 | 关键字 | 描述 |
---|---|---|
非空约束 | NOT NULL | 限制该字段的数据不能为null |
唯一约束 | UNIQUE | 保证该字段的所有数据都是唯一、不重复的 |
主键约束 | PRIMARY KEY | 主键是一行数据的唯一标识,要求非空且唯一 |
默认约束 | DEFAULT | 保存数据时,如果未指定该手段的值,则采用默认值 |
外键约束 | FOREIGN KEY | 用来让两张表的数据之间建立连接,保证数据的一致性和完整性 |
约束使用代码的例子:
create table tb_user2 (
id int primary key auto_increment comment 'ID',
username varchar(20) not null unique comment '用户名',
name varchar(10) not null comment '姓名',
age int comment '年龄',
gender char(1) default '男' comment '性别'
) comment '用户表';
主键自增 Auto_increment
具有auto_increment属性的数据列应该是一个正数序列(从1开始自增),auto_increment数据列必须有唯一索引,以避免序号重复;必须具备NOT NULL属性。
3.数据类型
MySQL中的数据类型有很多,主要分为:数值类型、字符串类型、日期时间类型
(1)数值类型
(2) 字符串类型
char 与 varchar 都可以描述字符串,char是定长字符串,指定长度多长,就占用多少个字符,和字段值的长度无关 。而varchar是变长字符串,指定的长度为最大占用长度 。相对来说,char的性能会更高些。
(3)日期时间类型
查询
(1)show tables; 查询当前数据库所有表
(2)desc 表名; 查看指定表结构
(3)查询指定表的建表语句:show create table 表名; 查看指定表的建表语句
修改
(1)添加字段
alter table 表名 add 字段名 类型 (长度) [ comment 注释 ] [ 约束 ];
例:alter table emp add qq varchar(11) comment ‘QQ号码’;
(2)修改数据类型
alter table 表名 modify 字段名 新数据类型 (长度);
例:alter table emp modify qq varchar(13);
(3)修改字段名和字段类型
alter table 表名 change 旧字段名 新字段名 类型 (长度) [ comment 注释 ] [ 约束 ];
例:alter table emp change qq qq_num varchar(13) comment ‘QQ’;
(4)删除字段
alter table 表名 drop 字段名;
例:alter table emp drop qq_num;
(5)修改表名
rename table 表名 to 新表名;
例:rename table emp to employee;
删除
(1)删除表
drop table [ if exists ] 表名;
(2)删除指定表, 并重新创建表
truncate table 表名;
注意: 在删除表的时候,表中的全部数据也都会被删除。