MySql基础 --- DDL操作表

本文详细介绍了MySQL的DDL(Data Definition Language)操作,包括创建表、数据类型、约束以及修改和删除表的语法。通过示例展示了如何创建学生表、查看表结构、修改表结构以及删除表的操作。此外,还强调了主键和自动增长属性的使用规则。内容适合初学者了解和掌握数据库基础操作。

DDL操作表

Data Definition Language (DDL数据定义语言) 如:操作数据库,操作表

创建表

语法:

create table 表名(
 字段名 字段类型 [约束],
 字段名 字段类型 [约束],
 ........
 字段名 字段类型 [约束]
);
-- 注意: 小括号中最后定义的字段后面不要加逗号

MySql,数据类型概览图:
类型

  1. 整型

    • 一般使用int 或者bigint
  2. 浮点/双精度型

    • 默认的范围 : float或者double
    • 指定范围 :float(M,D) eg: float(4,2) 表达的范围: -99.99~99.99
  3. 字符串

    • 固定长度 : char(n) eg: char(20), 最大能存放20个字符. ‘aaa ’, 还是占20个字符的空间
    • 可变长度 : varchar(n) eg:varchar(20), 最大能存放20个字符. ‘aaa’, 占3个字符的空间
      一般使用varchar(n) 节省空间; 如果长度(eg:身份证)是固定的话 可以使用char(n) 性能高一点
  4. 关于大文件

    • 一般在数据库里面很少存文件的内容, 一般存文件的路径
    • 一般不使用二进制存, 使用varchar(n)存文件的路径
  5. 日期

    • DATE 只有日期
    • DATETIME 日期和时间

约束概览图:
约束
约束种类:

  • not null: 非空 ; eg: username varchar(40) not null username这个字段不能为空,必须要有数据

  • unique:唯一约束, 后面的数据不能和前面重复; eg: cardNo varchar(18) unique; cardNo字段不能出现重复的数据

  • primary key;主键约束(非空+唯一); 一般用在表的id列上面. 每一张表基本上都有id列的, id列作为记录的唯一标识的

  • auto_increment: — 自动增长,必须是设置了primary key之后,才可以使用auto_increment id int primary key auto_increment id不需要我们自己维护了 插入数据的时候直接插入null,自动的增长进行填充进去, 避免重复了.

  • 注意:

    • 先设置了primary key 再能设置auto_increment
    • 只有当设置了auto_increment 才可以插入null 自己维护 否则插入null,会报错
    • 一般开发中id主键会设置为自动增长

代码示例:

  • 创建一张学生表(含有id字段,姓名字段,性别字段. id为主键自动增长)
-- 语法:
-- create table 表名(
字段名 字段类型 约束,
字段名 字段类型 约束,
....
字段名 字段类型 约束
-- );
-- 字段类型: int,bigint,float,double,varchar(size),date,datetime
-- 字段约束: not null, unique,primary key auto_increment
-- 创建一张学生表(含有id字段,姓名字段,性别字段. id为主键自动增长)
create table student(
id int primary key auto_increment,
 name varchar(40),
 sex varchar(25)
);

查看表:

  • 语法:
    • 查看所有的表:show tables;
    • 查看表的定义结构:desc 表名;

代码示例:

-- 查询day17_1数据库中所有表
show tables;

-- 查询student表的定义结构
desc student;

修改表:

  • 语法

    • 增加一列; alter table 表名 add 字段 类型 约束;
    • 修改列的类型约束; alter table 表名 modify 字段 类型 约束 ;
    • 修改列的名称,类型,约束; alter table 表名 change 旧列名 新列名 类型 约束;
    • 删除一列; alter table 表名 drop 列名;
    • 修改表名 ; rename table 旧表名 to 新表名;
  • 需求:

    • 给学生表增加一个grade字段
    • 给学生表的sex字段改成字符串类型
    • 给学生表的grade字段修改成class字段
    • 把class字段删除
    • 把学生表修改成老师表

代码示例:

-- 给学生表增加一个grade字段
alter table student add grade varchar(40) not null;

-- 给学生表的sex字段改成字符串类型
alter table student modify sex varchar(20) not null;

-- 给学生表的grade字段修改成class字段
alter table student change grade class varchar(40) ;

-- 把class字段删除
alter table student drop class;

-- 把学生表修改成老师表
rename table student to teacher;

删除表:

  • 语法: drop table 表名;

代码示例:

-- 删除teacher表
drop table teacher;
 -------------------------------------------------------------------------------------------------------------------------------

小白一枚,喜欢编程,以上内容纯手打,如有错误,请及时指正,谢谢!!!

            欢迎下次再来ヾ(≧▽≦*)o
         
               求三连(❁´◡`❁)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Donne_CN

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值