【MYSQL】MYSQL学习的一大重点:MYSQL表的操作

🎬 个人主页:艾莉丝努力练剑
❄专栏传送门:《C语言》《数据结构与算法》《C/C++干货分享&学习过程记录》
《Linux操作系统编程详解》《笔试/面试常见算法:从基础到进阶》《Python干货分享》
⭐️为天地立心,为生民立命,为往圣继绝学,为万世开太平
🎬 艾莉丝的简介:
文章目录
0 ~> 概要
1、查看表结构:desc。
desc:描述表的详细信息。desc可以理解成,describe,“描述”。
2、清空MYSQL:system clear。
3、查询表的多个数据:select * from 表名。
- SELECT:从一个或者多个表中检索数据,不会修改原始数据
4、不要轻易修改表名字或者删除表一旦改了,上层很难找,对程序员是一种莫大的伤害,所以表结构不要改,虽然讲了表的修改和删除,但是不建议修改或者删除标的表,表结构尽量后续少改。
总结一下表操作的几个重点:第一个是增加,第二个是修改,第三个是删除,第四个是查看。
CREATE是操作表结构,但是像SELECT不是操作表结构,而是操作表的内容。
数据库的操作、表的操作,尤其是表的操作,应该属于哪一种呢?DDL、DCL、DML?表的操作是在定义表的结构,无论是增加、删除还是修改表的结构,都是属于定义表的结构的范畴。
1 ~> 创建表
创建表的语法:
CREATE TABLE table_name ( field1 datatype, field2 datatype, field3 datatype ) character set 字符集 collate 校验规则 engine 存储引擎;说明:
field表示列名data type表示列的类型character set字符集,如果没有指定字符集,则以所在数据库的字符集为准collate校验规则,如果没有指定校验规则,则以所在数据库的校验规则为准
2 ~> 创建表的案例详解
案例:
create table users(id int, name varchar(20) comment '用户名', password char(32) comment '密码是32位的md5值', birthday date comment '生日') character set utf8 engine MyISAM;说明:
不同的存储引擎,创建表的文件不一样。users表存储引擎是MyISAM ,在数据目中有三个不同的文件,分别是:
users.frm:表结构;users.MYD:表数据;users.MYI:表索引。
我们复制一下渠道,查看一下当前路径——
直接在文件资源管理器中也可以看到——
备注: 创建一个engine(存储引擎)是innodb的数据库,观察存储目录。
3 ~> 查看表结构
语法:
desc 表名;示例:
实际场景中,查看效果如下:
4 ~> 修改表
4.1 什么时候需要修改表
在项目实际开发中,经常修改某个表的结构,比如字段名字,字段大小,字段类型,表的字符集类型,表的存储引擎等等。我们还有需求,添加字段,删除字段等等。这时我们就需要修改表。
4.2 修改方式
ALTER TABLE tablename ADD (column datatype [DEFAULT expr][,column datatype]...); ALTER TABLE tablename MODIfy (column datatype [DEFAULT expr][,column datatype]...); ALTER TABLE tablename DROP (column);4.3 案例
4.3.1 在users表添加二条记录
mysql> insert into users values(1,'a','b','1982-01-04'),(2,'b','c','1984-01-04');4.3.2 在users表添加一个字段,用于保存图片路径
mysql> alter table usersadd assets varchar(100) comment '图片路径' after birthday;添加之后我们查看一下表的详细信息——
mysql> desc users; +----------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +----------+--------------+------+-----+---------+-------+ |id| int(11)| YES || NULL ||| name | varchar(20)| YES || NULL ||| password | char(32)| YES || NULL ||| birthday |date| YES || NULL ||| assets | varchar(100)| YES || NULL || +----------+--------------+------+-----+---------+-------+ 插入新字段后,对原来表中的数据没有影响:
mysql>select * from users; +------+------+----------+------------+-------+ |id| name | password | birthday | assets | +------+------+----------+------------+-------+ |1| a | b |1982-01-04 | NULL |<= 原来的数据仍然存在 |2| b | c |1984-01-04 | NULL | +------+------+----------+------------+-------+ 4.3.3 修改name,将其长度改成60
mysql> alter table users modify name varchar(60);mysql> desc users; +----------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +----------+--------------+------+-----+---------+-------+ |id| int(11)| YES || NULL ||| name | varchar(60)| YES || NULL ||<= 长度变成60 | password | char(32)| YES || NULL ||| birthday |date| YES || NULL ||| assets | varchar(100)| YES || NULL || +----------+--------------+------+-----+---------+-------+ 4.3.4 删除password列
- **注意:**删除字段一定要小心,删除字段及其对应的列数据都没了(公司里尤其注意)。
mysql> alter table users drop password; mysql> desc users; +----------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +----------+--------------+------+-----+---------+-------+ |id| int(11)| YES || NULL ||| name | varchar(60)| YES || NULL ||| birthday |date| YES || NULL ||| assets | varchar(100)| YES || NULL || +----------+--------------+------+-----+---------+-------+ 4.3.5 修改表名为employee
这里先展示一下如果修改表名为User是啥样的:
mysql> alter table usersrename to employee;to:这个可以省掉。
mysql>select * from employee; +------+------+------------+-------+ |id| name | birthday | assets | +------+------+------------+-------+ |1| a |1982-01-04 | NULL ||2| b |1984-01-04 | NULL | +------+------+------------+-------+ 4.3.6 将name列修改为xingming(中文拼音)
mysql> alter table employee change name xingming varchar(60); --新字段需要完整定义 mysql> desc employee; +----------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +----------+--------------+------+-----+---------+-------+ |id| int(11)| YES || NULL ||| xingming | varchar(60)| YES || NULL ||| birthday |date| YES || NULL ||| assets | varchar(100)| YES || NULL || +----------+--------------+------+-----+---------+-------+ 5 ~> 删除表
删除表很简单。
语法格式:
DROP [TEMPORARY] TABLE [IF EXISTS] tbl_name [, tbl_name]... 示例:
drop table t1;结尾
uu们,本文的内容到这里就全部结束了,艾莉丝在这里再次感谢您的阅读!
结语:希望对学习MYSQL相关内容的uu有所帮助,不要忘记给博主“一键四连”哦!
往期回顾:
🗡博主在这里放了一只小狗,大家看完了摸摸小狗放松一下吧!🗡૮₍ ˶ ˊ ᴥ ˋ˶₎ა