MySQL入门3(持续更新)-数据库表结构常见语法

写在最前

因为从这篇文章开始,就要开始操作数据库了,包括建库建表增删改查等等。
为了防止学习的时候有割裂感,找了MySQL和图形化软件教程贴出来,我看了过程,属于非常详细了。在这里非常感谢两位作者,这两篇教程如果帮助到屏幕前的你,欢迎点赞收藏支持两位作者!

安装MySQL

  1. 进入官网下载。

https://dev.mysql.com/downloads/mysql/
在这里插入图片描述

在这里插入图片描述

  1. 等待下载完成,双击开始安装。参考教程安装,配置环境变量。

    教程地址:https://www.jb51.net/database/321983yau.htm

安装图形化软件

安装好MySQL后,你可以在命令窗口敲命令执行学习,也可以安装一个图形化软件来学习。我推荐是用软件,方便很多,结果看起来也很只直观。
作者用的是HeideSQL,当然你想用其他的也无所谓,想用其他的肯定是安装好了甚至已经使用好了。这边再推荐一篇安装软件的教程。

安装教程:https://blog.csdn.net/mo_sss/article/details/137538496

语法

数据库的概念以及创建,前面已经讲过,这里不再重复。
从建表开始,我们开始将常用的一些语法,学会这些语法,能灵活使用。那么对于MySQL来说,已经是正是入门了。

明天就是高考,那么我们以高考学习为建表对象,创建一个表出来。当然,实际上的表肯定比我们这个复杂很多,而且不是一张表就能搞定的。
那么,我们来看建表语句:

CREATE TABLE IF NOT EXISTS `test_db`.`student` (
    student_id INT NOT NULL AUTO_INCREMENT COMMENT '学生ID,唯一标识' PRIMARY KEY,
    name VARCHAR(50) NOT NULL COMMENT '学生姓名',
    sex CHAR(1) NOT NULL DEFAULT 'U' COMMENT '性别(M-男,F-女,U-未指定)',
    birth_date DATE COMMENT '出生日期',
    email VARCHAR(100) COMMENT '电子邮件地址',
    phone VARCHAR(15) COMMENT '联系电话',
    total_score INT COMMENT '高考总分',
    chinese_score INT COMMENT '语文成绩',
    math_score INT COMMENT '数学成绩',
    english_score INT COMMENT '英语成绩',
    science_score INT COMMENT '理科综合成绩',
    humanities_score INT COMMENT '文科综合成绩',
    created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '记录创建时间',
    INDEX index_phone(phone) 
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='高考学生信息表';

关于这整个建表语句,我们一点点掰开来看:

创建一个表的语法。

CREATE TABLE IF NOT EXISTS `database_name`.`table_name`() ENGINE=engine_name DEFAULT CHARSET=utf8mb4 COMMENT=‘备注信息’。
  1. CREATE TABLE:这是一个固定句式,这里就是告诉数据库,我要建一个表 ,然后往后填一些表的信息。
  2. IF NOT EXISTS:这是一个选填的句式,意义是告诉数据库,假如这个表不存在的话,才会创建。如果没有这个,表又存在,那么执行建表语句会失败。
  3. database_name:库名,这样指定在某个数据库。
  4. .,这里特别标明一下这个点。这个点可以表明查询限定在点之前的库或者表。
  5. table_name: 表名,通过3,4,5连用,表示在指定的库中创建表
  6. ():字段,也就是这个表的列,也可以叫做数据库对象的属性值。
  7. ENGINE=engine_name:这是在为表指定引擎。一般使用InnoDB就好了,每个引擎的特点是不一样的,作为入门,这里不用过多纠结,后面深入了会将关于数据库引擎的知识。
  8. DEFAULT CHARSET=utf8mb4:指定表的默认字符集,utf8mb4 是一种广泛使用的字符集,它支持存储任何Unicode字符,包括表情符号等4字节字符。在编写建表语句时,指定字符集是一个好习惯,可以确保数据以预期的方式存储和检索。
  9. COMMENT=‘备注信息’:这里是填写表的一些备注信息,通常用来描述表的作用,对象。

设计表字段的语法

column_name column_type allow_null  default_value COMMENT 'xxx' 
  1. column_name:列名。
  2. column_type:字段类型,通常会在类型后面带个(),里面填上长度。
  3. allow_null:该字段的值是否可以为null。如果可以就是NULL ,不可以的话就为NOT NULL。在我们设计表时,尽量不要设置为null。
  4. default_value:该字段值的默认值。当插入语句中该字段没有设定值的时候,会取默认值。通常情况下主键的默认值是自增的,使用AUTO_INCREMENT 表示。
  5. COMMENT ‘xxx’ :该字段的备注信息,通常描述字段的含义,取值范围等。

索引

INDEX index_phone(phone)
  1. INDEX: 固定语法,表示创建索引。也可以用KEY替代。

    主键索引 PRIMARY KEY(column_name)
    唯一索引 UNIQUE INDEX/KEY index_name(column_name)

  2. index_phone(phone):索引名称,括号中是索引建立的字段,如果有多个字段则用逗号隔开。多个字段的话又可以称为复合索引。

表的修改

  1. 修改表名

    RENAME TABLE old_table_name TO new_table_name;
    
  2. 修改引擎

    ALTER TABLE table_name ENGINE = new_storage_engine;
    
  3. 修改字符集

    ALTER TABLE table_name CHARACTER SET new_charset;
    
  4. 删除表

    # 直接删
    DROP TABLE table_name;
    # 删除前检查存不存在
    DROP TABLE IF EXISTS table_name;
    
  5. 修改表的注释

    ALTER TABLE table_name COMMENT = 'new_table_comment';
    
  6. 清空表

    TRUNCATE TABLE table_name;
    

字段的增删改

  1. 增加字段

    ALTER TABLE table_name
    ADD column_name column_type [NULL | NOT NULL] [DEFAULT default_value] [COMMENT column_comment] [AFTER another_column_name];
    

    这里单独讲一下AFTER ,这个单词表示你新增的字段将会在another_column_name这个字段后面,如果不写默认加到最后。

  2. 删除字段

    ALTER TABLE table_name DROP COLUMN column_name;
    
  3. 修改字段
    修改字段有两种方式,第一张方式不能修改表名,第二种方式可以。

    # 不修改表名
    ALTER TABLE table_name 
    MODIFY COLUMN column_name column_type [NOT NULL | NULL]  [DEFAULT new_default_value] 
    [COMMENT new_column_comment] 
    [FIRST | AFTER another_column_name];
    
    # 修改表名
    ALTER TABLE table_name
    CHANGE COLUMN old_column_name new_column_name new_data_typ e[NOT NULL | NULL] [DEFAULT new_default_value]
    [COMMENT new_column_comment]
    [FIRST | AFTER another_column_name];
    

    如果你不想改那么多属性,那么可以参考下面的单独属性的修改。

  4. 修改字段的数据类型:

    ALTER TABLE table_name MODIFY column_name new_data_type;
    
  5. 更改字段名和数据类型 (需要同时指定新的字段名和数据类型):

    ALTER TABLE table_name CHANGE old_column_name new_column_name new_data_type;
    
  6. 为字段设置默认值:

    ALTER TABLE table_name ALTER column_name SET DEFAULT default_value;
    
  7. 移除字段的默认值 (如果字段有默认值):

    ALTER TABLE table_name ALTER column_name DROP DEFAULT;
    
  8. 将字段设置为允许或不允许为空:

    # 设置为不允许为空:
    ALTER TABLE table_name MODIFY column_name data_type NOT NULL;
    # 设置为允许为空:
    ALTER TABLE table_name MODIFY column_name data_type;
    
  9. 添加列的注释:

    ALTER TABLE table_name COMMENT ON COLUMN column_name IS 'column_comment';
    
  10. 修改列的注释:

    ALTER TABLE table_name MODIFY column_name data_type COMMENT 'new_column_comment';
    
  11. 删除列的注释:

    ALTER TABLE table_name MODIFY column_name data_type;
    

索引的增删改

  1. 创建索引

    # 创建的是普通索引
    CREATE INDEX index_name ON table_name (column_name);
    # 创建唯一索引
    CREATE UNIQUE INDEX unique_index_name ON table_name (column_name);
    
  2. 删除索引

    DROP INDEX index_name ON table_name;
    
  3. 修改索引。MySQL的索引修改没有直接的办法,只能通过先上后增的办法进行修改。

写到最后

MySQL入门语法还剩最后一篇,数据的常用语法。最开始是想写三篇的。一篇简介,一篇基础信息介绍,一篇基础语法介绍。结果写着写着发现语法需要分成两部分,一部分是今天的算是表结构的语法,另一部分明天写完,数据的查询语法。
感谢支持,点赞收藏加关注,学习文章不迷路!
写个打油诗,哈哈!

  • 32
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值