MySQL——数据库以及数据表的创建

创建数据库

回到刚才创建数据库的问题,我们在创建数据库的时候可以通过添加一个参数,这个参数的意义在于当我们创建的数据库已经存在的时候则不会创建,也不会报错,如果不使用这个参数,则我们在重复创建一个已经存在的数据库的时候就会报错,中断我们的SQL语句的执行:

这里我们看到我们同时执行了两条SQL语句,并且都执行成功了,我们的数据库中多出了一个我们自己创建的bigdata数据库,当我们再次执行SQL语句的时候,他会报错:

对于SQL语句的报错,我们需要注意三个地方,第一个地方是在我们的查询控制台,当多条SQL语句同时执行,其中一条SQL报错,则不会继续向下执行。在查询控制台的最下方,有一个红色的框会显示报错信息和报错代码,同时在我们的日志中也会显示报错信息。

对于报错的检查和修改就是通过报错信息和报错代码去进行调整的。

根据报错信息我们知道是因为重复创建了一个已经存在的数据库导致的,如果我们加上刚才介绍的参数:

这里说一下,使用这种可视化工具还有一个好处,就是在我们敲代码的时候,可以根据我们的输入显示代码补全,我们继续添加参数:

添加完参数之后我们再次执行:

SQL顺利通过,这就说明当我们添加了参数之后他不会重复的创建已有的数据库,在之后我们也会看到很多的类似的可选参数,在之后的学习中,我们只需要知道加上这些参数之后的效果就可以了,并不会每一个都详细的展示参数的作用。

连接数据库

我们操作数据库的流程是首先展示一下已有的数据库,然后选择一个要操作的数据库,之后对数据库中的数据表进行操作。所以我们使用命令行选择我们要操作的数据库。

use mysql

这个语句可以不加分号。

查看数据表

选择数据库之后,就要开始使用命令查看数据库中所有的表:

show tables;

此时所有的数据表就会展示在下方的查询结果的区域。

退出数据库

使用命令退出数据库

exit quit

上面展示的两个命令都可以退出数据库。这个命令是在命令行界面中使用的,输入命令后回车就会关闭当前的命令行窗口

创建数据表以及插入数据

之前我们看过了如何创建数据库,但是我们自己创建的数据库里面是没有任何的数据表的:

我们要自己创建表,使用建表命令:

create table [if not exists] 自定义表名( 字段名 字段类型 [约束 备注], 字段名 字段类型 [约束 备注], 字段名 字段类型 [约束 备注], 字段名 字段类型 [约束 备注], …… );

在创建数据库和数据表的时候,需要注意两点,一个是我们的MySQL是一个对大小写不敏感的语言,也就是说我们的英文字母无论是大写或者小写都可以执行,不分大小写。其次就是我们创建的数据库或者数据表的名字不能以MySQL的保留字,否则会报错。

在数据表中的每一列被称为字段,在创建表的时候,一个字段会变成一列。创建表的时候,多个字段之间用逗号隔开,最后一个字段不用加逗号。

至于其中出现的约束和备注都是可选的,之后我们用到的时候再介绍。

我们现在创建一个user表,表中包含id,name,age,sex四个字段:

create table if not exists user( id int, name varchar(20), age int, sex varchar(3) );

然后我们再次查询一下数据库中的所有的表:show tables;

查看表结构

在我们查看数据库中的表的时候,我们只能看到一个表的名字,我们可以使用命令查看这个表的结构

desc 表名;

可以看到表的字段,以及字段的类型,是否允许空值,是否有约束,主键,默认值等等一些信息,至于这些信息如何使用以及他们代表的含义我们以后都会介绍到。

### 如何在 MySQL创建数据库和表 #### 创建数据库MySQL 中,创建一个新的数据库非常简单。通过 `CREATE DATABASE` 命令可以轻松完成这一操作。该命令的基本语法如下: ```sql CREATE DATABASE 数据库名; ``` 这条语句用于告知 MySQL 创建一个名为指定名称的新数据库[^3]。 为了确保新创建数据库能够正常工作并满足特定需求,在创建之前应该考虑一些重要因素。例如,选择合适的字符集和排序规则对于支持多语言环境非常重要。可以通过扩展上述命令来设置这些参数: ```sql CREATE DATABASE example_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ``` 这段代码创建了一个新的数据库 `example_db`,还指定了其使用的字符编码为 UTF-8 和相应的排序方式[^1]。 #### 设计表格结构前需考量的因素 当准备在一个已存在数据库内建立一张或多张表时,有几个方面值得特别注意。首先是确定每张表所代表的实际实体及其属性;其次是定义各字段的数据类型以及可能施加在其上的任何约束条件,比如主键、外键或是唯一性限制等。合理的规划有助于提高系统的性能,并减少后期维护成本。 #### 表格创建过程详解 一旦决定了要存储哪些信息之后就可以着手编写具体的建表语句了。这里给出几个常见的例子作为参考: ##### 学生表 (Student) 此表用来保存有关学生的个人信息,如学号、姓名、性别等基本信息。 ```sql CREATE TABLE Student ( student_id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50), gender ENUM('M', 'F'), birth_date DATE ); ``` 在这段 SQL 代码里,`student_id` 字段被设定为主键并且自动增长,意味着每次插入一条记录时它都会自动生成唯一的编号。同时设置了其他三个列分别表示名字(`name`)、性别(`gender`)及出生日期(`birth_date`)的信息[^4]。 ##### 课程表 (Course) 这张表负责描述学校开设的各种科目情况,包括但限于编号、名称等内容。 ```sql CREATE TABLE Course ( course_id INT AUTO_INCREMENT PRIMARY KEY, title VARCHAR(100), description TEXT ); ``` 此处定义了一种较为简单的模式——仅有两个非空字符串类型的字段:一个是标识符 (`course_id`) ,另一个则是标题 (`title`) 。此外还有一个可选的文字说明区域 (`description`) 可供填写更详细的介绍文字。 ##### 选修关系表 (Enrollment) 最后是连接两者之间的桥梁——即学生与他们所参加的具体科目的关联列表。这通常涉及到至少两方共同拥有的某些特征值来进行匹配对照。 ```sql CREATE TABLE Enrollment ( enrollment_id INT AUTO_INCREMENT PRIMARY KEY, student_id INT NOT NULL, course_id INT NOT NULL, grade DECIMAL(4,2), FOREIGN KEY (student_id) REFERENCES Student(student_id), FOREIGN KEY (course_id) REFERENCES Course(course_id) ); ``` 以上述脚本为例,除了常规的身份识别码之外,还包括了来自另外两张表的关键索引项(`student_id`, `course_id`),并通过外键机制建立了相互间的联系。值得注意的是成绩分数也被纳入其中以便日后查询统计之用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值