注册 登录
  • 欢迎访问"运维那点事",推荐使用Google浏览器访问,可以扫码关注本站的"微信公众号"。
  • 如果您觉得本站对你有帮助,那么可以扫码捐助以帮助本站更好地发展。

SQL编程:数据库和表管理

MySQL SQL 彭东稳 6076次浏览 已收录 0个评论

一、数据库管理

MySQL安装并初始化之后,默认会有几个数据库(mysqlinformation_schemaperformance_schema)都是初始化产生的数据库,MySQL 5.7新增了sys库,每个库的具体作用后面介绍。然后首先需要自定义数据库,这是使用MySQL各种功能的前提,下面介绍数据的基本操作,主要内容包括:创建数据库、删除数据库以及更改数据库。

CREATE(创建数据库)语法

示例:

ALTER(修改数据库)语法

示例:

修改数据库字符集并不会改变已经定义的表的字符集,只有新创建的表才会继承更改后的库的字符集。

DROP(删除数据库)语法

示例:

SHOW语法

USE语法

二、表约束

  • 数据类型约束(TYPE

就是数据类型的约束,在定义表结构时都会对于每一个字段指定对应的数据类型,如INTCHAR等。当一个字段指定了特定的数据类型之后,如果在插入数据时没有按照指定的数据类型插入数据,系统就会报错。

  • 主键约束(PRIMARY KEY

主键约束就是表中的一个属性,在一个表中最多可以有一个主键,一个主键可以定义在一个或多个字段上,主键使一个或多个字段的值必须唯一且不为空,这样做可以通过该字段或该组字段中的值唯一地标识表中的一条记录。也可以结合外键来定义不同数据表之间的关系,并且可以加快数据库查询的速度。

作用:

1.主键可以保证记录的唯一性。

2.主键用于唯一标识表中的行数据,一个主键值对应一行数据。

3.主键由一个或多个字段组成,其值具有唯一性而且不允许取空值null一个表只能有一个主键而可以有多个备用键。

4.键可用做索引属于特殊的索引(有特殊限定不允许相同),都是B+Tree索引。

  • 外键约束(FOREIGN KEY

一个关系数据库通常都包含多个表,通过外键(foreign key)可以使这些表之间关联起来,主要作用是保证数据引用的完整性。外键约束针对的两个表,如果表A的主关键字是表B中的字段,则该字段称为表B的外键,表A称为主表,表B称为从表,但要注意,必须要计算机要知道你是这种关系(外键只支持支持事物的存储引擎)。另外定义外键后,不允许删除在另一个表中具有关联关系的行,要保证数据的一致性。例如,部门表tb_dept的主键是id,在员工表tb_emp5中有一个键deptld与这个id关联。

  • 非空约束(NOT NULL

非空约束指此字段的值不能为空,对于使用了非空约束的字段,如果用户在添加数据时没有指定值,数据库系统会报错。

  • 唯一键约束(unique key

一个表中只能有一个主键属性,为了方表用户,提出唯一约束;唯一约束可以定义在一个或多个字段上;唯一约束使该字段或该组字段中的值唯一,可以为空,但是不能重复。

  • 检查性约束

数据的定义不能违反阈值,比如使用NOT NULL属性后就不能有空值,又叫NOT NULL约束;缺省属性又叫缺省约束等等;他们的本意是实现自动化,也就是让计算机做这判断并处理件事。

建立主键和唯一键约束的时候,就会自动的创建索引。而且是唯一索引,如果看过索引的作用就会知道了。像主键约束、唯一约束、非空约束、外键约束、核查约束和缺省约束这些操作都是使表具有某些特性,所以在这里也可以称它们都是表的属性。

三、表管理

创建完数据库之后,接下来就是创建表了。所谓创建数据表,指的是在以及创建好的数据库中建立新表。创建数据表的过程是规定数据列的属性的过程,同时也是实施数据完整性(包括实体完整性、引用完整性和域完整性等)约束的过程。下面将介绍创建数据表的语法形式、如何添加主键约束、外键约束、非空约束等。

CREATE(创建表)语法

或者

示例:

创建表tn1,并定义表结构,每个字段都使用了COMMENT注释:

下面是创表时所会用到的数据类型(data_type)

PS:字符类型详细解释看MySQL数据类型章节。

下面是创表时常用字段属性(column_definition)

index_col_name:

index_type:

index_option:

下面是创表时常用选项(table_options)

其他用法:

ALTER(更改表)语法

ALTER语法与CREATE TABLE带有的属性和选择基本差不多,下面给出一些基本实例,具体可以HELP ALTER TABLE。

示例:

然而,你在以这种方式修改表格类型的时候需要非常仔细,因为对不支持同样的索引、字段类型或者表大小的一个类型进行修改可能使你丢失数据。如果你指定一个在你的当前的数据库中不存在的一个存储引擎,那么就会创建一个INNODB类型的表。

DROP(删除表)语法

示例:

RENAME(重命名表)语法

SHOW语法

DESC语法


如果您觉得本站对你有帮助,那么可以支付宝扫码捐助以帮助本站更好地发展,在此谢过。
喜欢 (1)or分享 (0)
关于作者:

您必须 登录 才能发表评论!