中国建设银行网站易方达消费,网站不同,飞翔时代 网站建设,创一个网站怎样赚钱文章目录前言一、创建表创建表时指定属性二、查看表查看表结构查看建表消息三、修改表修改列属性修改列名修改表名四、删除表总结前言 Hello! 那我们乘胜追击#xff0c;开始 表的操作#xff01; 一、创建表 首先创建一个 数据库 testForTable
mysql create database i…
文章目录前言一、创建表创建表时指定属性二、查看表查看表结构查看建表消息三、修改表修改列属性修改列名修改表名四、删除表总结前言 Hello! 那我们乘胜追击开始 表的操作 一、创建表 首先创建一个 数据库 testForTable
mysql create database if not exists testForTable;当前创建的 数据库 testForTable 字符集和校验集分别为 utf8mb4 和 utf8mb4_unicode_ci这是由配置文件中的默认编码集决定的 接下来创建一张表具体语法为
CREATE TABLE [if not exists] tablename
(field1 datatype,field2 datatype,field3 datatype
) [character set 字符集] [collate 校验规则] [engine 存储引擎];其中 字符集、校验规则、存储引擎 可以不用指定默认使用当前数据库的默认属性 创建一张 person 表包含 姓名、性别、年龄 三个字段 注意 创建表之前需要先使用数据库
mysql create table if not exists person
(name varchar(16) comment 姓名,sex char(2) comment 性别只能为男/女,age int unsigned comment 年龄不能为负数
);这样就得到了一张 person 表当前表的字符集为 utf8mb4校验集为 utf8mb4_unicode_ci存储引擎为 InnoDB这些都是数据库的 默认属性只要我们在创建表时不指定属性表就会继承数据库的默认属性 通过 InnoDB 引擎创建的表会生成 一个文件跟你的MySQL版本有关 注意
comment ‘内容’ 表示注释通常用来注明该字段的含义及用途在 MySQL 中定义无符号类型的数据需要把 unsigned 放在类型之后修饰
创建表时指定属性 除了使用数据库的 默认属性还可以在创建时指定属性比如再创建一张 goods 表表示商品信息包含字段有 商品名、价格、数量、厂商并且在创建表时指定字符集为 gbk校验集为 gdk_chinese_ci存储引用选择 MyISAM
mysql create table if not exists goods
(name varchar(32) comment 商品名称,price double(10, 2) unsigned comment 商品价格最多支持小数点前 8 位数小数点后 2 位数,num int unsigned comment 商品数量,factory varchar(64) comment 厂商名称
) character set gbk collate gbk_chinese_ci engine MyISAM;此时通过 MyISAM引擎 生成的表会创建三个文件 二、查看表 身处某个数据库中可以通过 show tables 查看当前数据库中有哪些表
mysql show tables;比如说之前创建的两张表 查看表结构 知道有哪些表后还需要进一步了解表的 结构 信息比如有哪些字段才能知道如何使用这张表查看表的详细信息语法为
mysql desc tablename分别查看刚才创建的两张表的 结构 信息
mysql desc person;
mysql desc goods;可以看到查询结果为一张行列构建的表第一行表示各种属性信息属性支持修改 Field 表示 列名Type 表示 类型Null 表示 是否可为空Key 表示 是否存在 主键/外键/唯一键 约束Default 表示 是否有默认值Extra 表示 额外信息
查看建表消息 如果想查看关于表更详细的信息可以通过指令查看建表时的语句内容语法为
SHOW CREATE TABLE tablename
SHOW CREATE TABLE tablename \GMySQL 会记录下用户的所有操作痕迹这也是备份后恢复数据库的关键把所有指令再执行一遍就能得到一模一样的数据库了
三、修改表
修改列属性 首先是新增字段语法为
ALTER TABLE tablename ADD (column datatype [DEFAULT expr][,column datatype]...);column 表示 列名datatype 表示 类型[DEFAULT expr] 表示该列的各种 属性比如约束、默认值、是否为空等支持同时新增多个字段 给 person 表新增 出生日期、爱好 两个字段 注意 如果新增多个字段时需要使用 ( ) 将新增的一批字段括起来
mysql alter table person add (birthday date comment 生日, hobby varchar(32) comment 爱好);新增的字段默认是紧跟最后一个字段的 如果想新增至指定字段之后可以在语句后面加上 after column比如在 性别 sex 之后新增一个 籍贯 字段 注意 只支持新增单个字段时指定位置也就是说 ( ) 与 after column 是冲突的不能同时使用
mysql alter table person add hometown varchar(16) comment 籍贯 after sex;除了可以新增字段还可以修改字段语法为
ALTER TABLE tablename MODIFY column datatype [DEFAULT expr], [MODIFY ...];注意
需要确保修改的字段存在并且要保证修改后的字段类型与表中已经存在的数据类型相匹配修改多个字段时可以叠加多条 MODIFY column datatype [DEFAULT expr] 语句通过 , 分隔修改字段后原字段的所有信息都会被覆盖包括注释 修改 name 的类型为 varchar(32)修改 age 的类型为 int因为此时是空表所以可以随便修改
mysql alter table person modify name varchar(32), modify age int;可以看到之前的注释没了并且字段的类型也修改了 最后就是删除字段语法为
ALTER TABLE tablename DROP (column), [DROP ...];注意 删除字段时同样需要确保字段存在字段被删除后表中对应的数据也会被删除 先随便新增几个无用字段再删除
mysql alter table person add (a int, b int, c double);
mysql alter table person drop a, drop b, drop c;刚刚新增的无用字段立马就被删除了 在 MySQL 中删除 一直都是一个 高危 操作毕竟数据丢了不容易找回比如这里的删除字段如果表中有数据那么表中数据关于该字段的信息会被全部删除所以删除字段要 慎用 网上说的被裁什么删库跑路之类的看看笑话就行~ 修改列名 列名是支持修改的语法为
ALTER TABLE tablename CHANGE oldcolumn newcolumn datatype [DEFAULT expr];注意 修改需要确保字段存在修改后上层应用会受影响 比如把 goods 表中的 num 改为 nums
mysql alter table goods change num nums int unsigned;可以看到修改之后注释也没了这个操作也要 慎用因为上层查询时可能会查询失败需要上层配合更新信息 修改表名 表名支持修改语法为
ALTER TABLE oldname RENAME [TO] newname;其中 TO 可以省略修改成功后Linux 中对应的文件名也会被修改 注意 如同修改字段名一样修改表名也是一个危险操作同样会影响上层使用 修改 person 表名为 students
mysql alter table person rename to students; 可以看到表对应的文件名也被修改了 四、删除表 还是要提醒下这很危险非必要情况下请不要这么做 删除表的语法为
DROP TABLE tablename;注意 删除表很危险删除之后表中所有的数据就都没了不要轻易删除 删除 goods 表
mysql drop table goods;当然删除成功后Linux 中对应的文件也被删除了这也是很显然的 总结 本篇有很多删除操作数据库的恢复是相当麻烦的甚至还有彻底无法恢复的可能所以我们再进行修改乃至删除的时候务必要慎之又慎