实验一数据库基础管理

文章介绍了MySQL中的数据库概念,强调数据库是存储数据对象如表、视图的容器,并详细阐述了创建和删除数据库的SQL命令。接着,文章讨论了数据表结构,包括列的定义和常用数据类型,并详细解析了创建、修改和删除数据表的SQL语法,以及数据表的完整性约束,如NOTNULL、UNIQUE、DEFAULT和PRIMARYKEY等。
摘要由CSDN通过智能技术生成
(一)MySQL中数据库概念

数据库可以看作是一个专门存储数据对象的容器,这里的数据对象包括表、视图、触发器、存储过程等,其中表是最基本的数据对象。物理上数据库由各种操作系统文件组成,主要包括数据文件和日志文件,不同DBMS的文件机制不同。在 MySQL 数据库中创建数据对象之前,先要创建好数据库。MySQL创建数据库时忽略文件设置,由系统自动管理,一般一个表对应一个文件存储数据。

(二)MySQL中数据库管理命令格式

1、SQL创建数据库命令语法格式

CREATE DATABASE <数据库名>

2、SQL删除数据库命令语法格式

DROP DATABASE <数据库名>

(三)数据表结构

数据表是对数据进行存储和操作的一种逻辑结构,每个表代表一个对象。数据库通常包含多个表,每个表都是一个存储数据的容器,具有唯一的名称。数据表为其他对象提供数据。

l 表由若干个列组成,每一个列在表中是唯一的。字段列具有多个属性:列值应该为可选的数据类型;大小则规定列值的最大长度;小数位用于定义数据型numeric列的小数位数;是否为空说明列值是否允许为空值;默认值用于定义不经输入所定义的列值。

常用的数据类型主要有:

表1-1 常用数据类型

char(n)

固定长度的字符或Unicode字符

varchar(n)

可变长度的字符或Unicode字符

datetime, time, date

时间日期型

tinyint,smallint,int,bigint

各种整型数值,int类型可以设置数字长度

float和real

近似小数数据类型,普通的带小数点数据使用

numeric和decimal

精确的小数数值类型,精度高,存储占用字节大

enum

枚举类型

(四)MySQL中数据表管理命令格式

1、SQL创建表命令语法格式

CREATE TABLE <表名> (

<列1定义> [列级完整性约束]

[,<列2定义> [列级完整性约束]

[,<列n定义> [列级完整性约束]]

[,表级完整性约束1[,…]] )

列定义格式:

<列名> <数据类型> [Default]

其中:Default用于设置默认值。

表1-2 参数说明

参数

说明

表名

表名必须符合标识符规则。

列名

列名必须符合标识符规则,并且在表内唯一。

数据类型

指定列的数据类型。可以是系统数据类型或用户定义数据类型。

列级完整性约束

表级完整性约束

表示对列或表的约束条件,用于规范数据输入。放在列定义后面的是列级约束条件,一般只涉及一个列。放在所有列的后面的是表级约束条件,一般涉及多个列。

创建数据表时除了定了字段列的属性,还需要对数据的约束条件进行定义。约束分为列级完整性约束和表级完整性约束。

列级完整性约束条件是指定义在字段列中的约束,列级约束一般只针对一个字段取值进行限制。列级约束定义格式:

<字段定义> [CONSTRAINT <约束名>] <约束类型>

注意:Mysql基本不支持在列级约束定义时使用约束名。

列级约束类型及定义如下:

  • NOT NULL约束:是否允许字段值为空,只能作为列级约束,不能加约束名

  • UNIQUE约束:唯一性约束,指定的列或列的组合的取值在表中必须唯一

  • DEFAULT约束:默认值,比如:ssex char(2) DEFAULT( ‘男’)

  • CHECK约束:检查约束,设置字段取值要满足的条件,比如:sage int CHECK (sage >=10 AND sage <=50)

  • PRIMARY KEY:主键约束,指定的字段或字段组合为表的主键,用以实现实体完整性。比如:sno char(5) PRIMARY KEY

表级完整性约束条件是指不定义在字段中,而是定义在所有字段之后的约束,表级约束定义格式:

[CONSTRAINT <约束名>] <约束类型> (约束字段设置)

注意:约束字段设置,可以是单个字段,也可以是字段组合,表级约束一般针对多个字段联合取值进行限制。

表级约束类型及定义如下:

  • UNIQUE,比如:CONSTRAINT UQ_stu_namesex UNIQUE(sName,sSex)

  • CHECK,比如:CONSTRAINT CK_stu_BMI CHECK(sWeight/sHeight/sHeight>=19)

  • PRIMARY KEY(),比如:PRIMARY KEY(sNo,ccNo)

  • FOREIGN KEY(),外键约束,定义外键字段及其参照的主键字段,并设置参照完整性的实施细则。比如:FOREIGN KEY(sNo) REFERENCES student(sNo)

注意:MySQL中列级外键约束不能使用foreign key

2、SQL修改数据表命令语法格式

ALTER TABLE <表名>

[ ADD <新列名> <数据类型> [列级完整性约束]]

[ ADD <表级完整性约束>

[ DROP [COLUMN] <列名>]

[ DROP <完整性约束名>]

[ MODIFY COLUMN <列名> <列定义>]

3、SQL删除数据表命令语法格式

DROP TABLE <表名>

(五)MySQL中DML语句语法格式

1、INSERT 命令

一次向基本表中插入一个元组。一般格式:

INSERT INTO <表名> [(<列名1>[,<列名2>]...)]

VALUES (<常量1> [,<常量2>]...)

说明:

  • VALUES子句中各常量的数据类型必须与INTO子句中所对应列的数据类型相兼容,VALUES子句中各常量的数量必须与INTO子句中的列数相匹配。

  • 如果省略INTO子句中的<列名1>[,<列名2>,…n],则新插入元组的每一列必须在VALUES子句中均有值对应,即与基本表中的列一一对应。

  • INTO子句中没有出现的列,新插入的元组在这些列上会被置为默认值或空值。

  • 如果在基本表中存在定义为NOT NULL的列,则该列的值必须要出现在VALUES子句中的常量列表中。

如果需要一次性插入多条语句,可以这么书写:

INSERT INTO table_name [(column1[,<column2>,…n])]

VALUES(value11[,value12,…n]), (value21[,value22,…n]), …n

2、DELETE 命令

删除数据表中的数据。一般格式:

DELETE FROM <表名>

[WHERE <条件>]

说明:

  • DELETE语句删除的是基本表中的数据,而不是表的定义。

  • 省略WHERE子句,表示删除基本表中的全部元组。

  • 在WHERE子句中也可以嵌入子查询。

  • 数据一旦被删除将无法恢复,除非事先有备份。

3、UPDATE 命令

修改表中的数据。一般格式:

UPDATE <表名>

SET <列名1>=<表达式1>[,<列名2>=<表达式2>]...

[WHERE <条件>]

说明:

  • WHERE子句指出表中需要修改的行应满足的条件,如省略,则修改表中的全部元组。

  • 使用SET子句给出修改的新数据,新数据可以是常量,也可以是固定的表达式甚至是一个子查询。

  • 新值必须符合列的数据类型以及在列上的约束。

  • 如果使用修改命令更新关键字的值,而该关键字在其他表中作为外码存在时,操作可能违反参照完整性。系统将拒绝执行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Marylin0

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值