MySQL数据库——数据定义(一)

目录

一、定义数据库

1.创建数据库

2.选择数据库

3.查看数据库

4.修改数据库

5.删除数据库

二、定义表

1.创建表

2.查看表

2.1.查看表的名称

2.2.查看数据表的基本结构

2.3.查看数据表的详细结构

3.修改表

3.1.添加字段

3.2.修改字段

3.3.删除字段

4.重命名表

5.删除表

三、数据的完整性约束

1.实体完整性

1.1.主键约束

1.2.完整性约束的命名

1.3.候选键约束

2.参照完整性

3.用户自定义完整性

3.1.设置非空约束

3.2.CHECK约束

4.更新完整性约束

4.1.添加约束

4.2.删除约束


一、定义数据库

1.创建数据库

格式:

 CREATE DATABASE 数据库名字;
 CREATE DATABASE IF NOT EXISTS 数据库名字;

Example:

 

2.选择数据库

格式:

 USE 数据库名字;

Example:

3.查看数据库

格式:

 SHOW DATABASES;

Example:

4.修改数据库

格式:

ALTER DATABASE 数据库名字 [完整性约束];

Example:

5.删除数据库

格式:

DROP DATABASE 数据库名字;

Example:

二、定义表

1.创建表

格式:

CREATE TABLE 表名(
字段名1 数据类型1 【完整性约束条件】,
字段名2 数据类型2 【完整性约束条件】,
字段名3 数据类型3 【完整性约束条件】,
字段名4 数据类型4 【完整性约束条件】,
字段名5 数据类型5 ,
字段名6 数据类型6 【完整性约束条件】,
);

Example:

2.查看表

2.1.查看表的名称

格式:

SHOW TABLES;

Example:

2.2.查看数据表的基本结构

格式:

SHOW COLUMNS FROM 表名;
  • 还有另外一种方式,因为我不喜欢用,所以就不测试了 

Example:

2.3.查看数据表的详细结构

格式:

 SHOW CREATE TABLE 表名;

Example:

3.修改表

3.1.添加字段

格式:

 ALTER TABLE 表名 ADD COLUMN 字段名 字段类型 【完整性约束】 FIRST;
  • FIRST:表示将新添加的字段设置为表的第一个字段
ALTER TABLE 表名 ADD COLUMN 新增字段名 数据类型 【完整性约束条件】 AFTER 原有字段名;
  • AFTER:表示将新添加的字段加到指定的“已有字段名”后面

Example:

3.2.修改字段

格式:

 ALTER TABLE 表名 CHANGE COLUMN 原字段名 新字段名 数据类型 【完整性约束条件】;
  •  可同时修改表中指定列的名称和数据类型。
ALTER TABLE 表名 ALTER COLUMN 字段名 SET/DROP  DEFAULT 【完整性约束条件】;
  •  可修改或删除表中指定列的默认值。
ALTER TABLE 表名 MODIFY COLUMN 字段名 数据类型 【完整性约束条件】 AFTER 已有字段名;
  • 只会修改指定列的数据类型,而不会干涉它的列名。
  • 通过FIRST或AFTER关键字修改指定列在表中的位置

Example:

3.3.删除字段

格式:

ALTER TABLE 表名 DROP COLUMN 字段名;

Example:

4.重命名表

格式:

ALTER TABLE 原表名 RENAME TO 新表名;
RENAME TABLE 原表名 TO 新表名;

Example:

5.删除表

格式:

DROP TABLE IF EXISTS 表名;
  • 可以同时删除多个表,表与表之间用逗号分隔
  • IF EXISTS 用于在删除表之前判断要删除的表是否存在,如果不加这玩意,它会提示一条错误信息,加上之后,如果要删除的表不存在,sql语句顺利执行,但会有一个warning

Example:

  •  我也不知道为啥不加那东西竟然不会报错......

三、数据的完整性约束

1.实体完整性

实体完整性规则是指关系的主属性不能取空值,即主键和候选键在关系中对应的属性都不能取空值。

1.1.主键约束

  • 列级完整性约束:只需在表中某个字段定义后加上关键字PRIMARY KEY
  • 适用于主键由一列构成

 


  • 表级完整性约束:需要在所有字段定义后添加一条PRIMARY KEY
  • 适用于主键由多列构成

 

1.2.完整性约束的命名

  • 完整性约束的命名:便于删除和修改完整性约束

 

  •  小道消息:当前MySql版本只能给表级的完整性约束指定名字

1.3.候选键约束

  • 列级完整性约束:只需在表中某个字段定义后加上关键字UNIQUE
  • 适用于候选键由一列构成
  • 候选键的值必须唯一,且不能为NULL


  • 表级完整性约束:需要在所有字段定义后添加一条UNIQUE
  • 适用于候选键由多列构成
  • 此处对完整性约束进行了命名

2.参照完整性

参照完整性规则是外键与主键之间的引用规则,即外键的取值或者为空,或者等于被参照关系中某个主键的值。

  • 被参照表必须是已创建的表
  • 被参照表必须定义主键或候选键
  • 必须在被参照表的表名后面指定被参照表的主键或候选键
  • 外键允许出现空值
  • 外键对应列的数目、列的数据类要与被参照表的主键、候选键对应的相同

2.1.列级完整性约束:

  • 创建父表并指定主键或候选键
  • 创建从表,添加外键

2.2.表级完整性约束:

  • 创建父表并指定主键或候选键
  • 创建从表,添加外键

 

3.用户自定义完整性

3.1.设置非空约束

  • 指定字段的值不能为空(NOT NULL)

3.2.CHECK约束

  • 需要指定限定条件 
  • 列级完整性约束:
    • 字段名的数据类型后面加上CHECK的限定条件


  • 表级完整性约束:
    • 在所有列的后面给CHECK约束重命名并加上CHECK的约束条件

  •  CHECK约束CK_student定义了字段studentGrades应满足的关系

4.更新完整性约束

4.1.添加约束

4.1.1.添加主键约束

 格式:

ALTER TABLE 表名 ADD CONSTRAINT 约束名 PRIMARY KEY(字段名);

Example:

4.1.2.添加外键约束

 格式:

ALTER TABLE 表名 ADD CONSTRAINT 约束名 FOREIGN KEY(字段名)
REFERENCES 父表(主键字段名);

Example:

4.1.3.添加候选键约束

 格式:

ALTER TABLE 表名 ADD CONSTRAINT 约束名 UNIQUE KEY(字段名);

Example:

4.2.删除约束

4.1.1.删除主键约束

 格式:

ALTER TABLE 表名 DROP PRIMARY KEY;

Example:

4.1.2.删除外键约束

 格式:

ALTER TABLE 表名 DROP FOREIGN KEY 外键约束名;

Example:

4.1.3.删除候选键约束

 格式:

ALTER TABLE 表名 DROP INDEX 约束名;
(ALTER TABLE 表名 DROP INDEX 候选键字段名);

Example:

  • 9
    点赞
  • 56
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 在MySQL 8.0中,可以通过使用SET语句来定义全局变量。可以在MySQL配置文件的[mysqld]部分或者在运行时使用SET GLOBAL语句来定义全局变量。 下面是在MySQL 8.0中定义全局变量的步骤: 1. 编辑MySQL配置文件。可以通过找到并打开my.cnf文件来编辑配置文件。在[mysqld]部分添加如下行: ``` set-variable = variable_name=value ``` 其中,variable_name是要定义的全局变量名称,value是要给变量赋的值。 2. 保存并关闭my.cnf文件。 3. 重启MySQL服务,使得配置文件的更改生效。 4. 验证全局变量是否定义成功。可以使用SHOW GLOBAL VARIABLES命令来检查已经定义的全局变量。例如,如果要查看一个名为my_variable的全局变量的值,可以运行以下查询: ``` SHOW GLOBAL VARIABLES LIKE 'my_variable'; ``` 这将返回变量名和值的列表。 另外,在运行时也可以使用SET GLOBAL语句进行全局变量的定义。例如,要将一个名为my_variable的全局变量设置为10,可以运行以下查询: ``` SET GLOBAL my_variable=10; ``` 总之,在MySQL 8.0中,可以通过编辑配置文件或者使用SET GLOBAL语句来定义全局变量,并且使用SHOW GLOBAL VARIABLES命令来验证已定义的全局变量的值。 ### 回答2: 在MySQL 8.0中,可以通过以下方式定义全局变量。 1. 在MySQL配置文件中定义全局变量: 打开MySQL配置文件(通常是my.cnf或my.ini),在[mysqld]部分添加以下内容: ``` [mysqld] global_variable_name = value ``` 其中,global_variable_name是要定义的全局变量的名称,value是变量的值。 2. 使用SET GLOBAL语句定义全局变量: 在MySQL命令行或客户端工具中执行以下语句来设置全局变量: ``` SET GLOBAL global_variable_name = value; ``` 其中,global_variable_name是要定义的全局变量的名称,value是变量的值。 需要注意的是,定义全局变量需要有适当的权限。通常,只有具有SUPER权限的用户才能定义全局变量。此外,全局变量定义后可以在整个MySQL实例中使用,包括所有数据库和连接。 要使用已定义的全局变量,可以在SQL语句中通过@符号引用变量,例如: ``` SELECT @global_variable_name; ``` 总之,在MySQL 8.0中,可以通过编辑配置文件或使用SET GLOBAL语句来定义全局变量,以便在整个MySQL实例中使用。 ### 回答3: MySQL 8.0可以通过使用SET语句和@@符号定义全局变量。 使用SET语句定义全局变量的语法如下: SET GLOBAL variable_name = value; 其中,variable_name是要定义的全局变量的名称,value是要为该变量赋的值。设置全局变量之后,它的值将在整个MySQL服务器的作用范围内生效。 使用@@符号获取全局变量的值的语法如下: SELECT @@variable_name; 其中,variable_name是要获取值的全局变量的名称。通过执行以上语句,可以获取到指定全局变量的当前值。 举个例子,假设我们要定义一个全局变量my_var并将其值设为100: SET GLOBAL my_var = 100; 接着,我们可以通过以下语句获取my_var的值并输出: SELECT @@my_var; 以上就是在MySQL 8.0中定义全局变量的方法。需要注意的是,全局变量的作用范围是整个MySQL服务器,默认情况下只有管理员用户才有权限定义和修改全局变量。因此,在进行全局变量的定义和使用时,需要确保具备相应的权限。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

来得晚一些也行

观众老爷,请赏~

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

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

打赏作者

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

抵扣说明:

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

余额充值