Bibles_MySQL笔记整理__简答题

1.请描述MySQL数据库在管理数据的时候的使用的管理模型。

MySQL是采用库和表的方式管理数据的,一个MySQL服务中可以存在多个数据库,每一个数据库中可以存在多张表。表一定要存在于库里面。

2.简述表结构包含哪些内容。

针对已经存在的表student,使用命令
desc student或者show columns from student;

表结构:
Field字段(表示的是列名)
Type类型(表示的是列的数据类型)
Null 这个列是否能取空值
Key 是否为主键,在mysql中key 和index 是一样的意思,这个Key列可能会看到有如下的值:PRI(主键)、MUL(普通的b-tree索引)、UNI(唯一索引)
Default:列的默认值
Extra:其它信息

3.请说明SQL指什么。并写出SQL的常见分类,说明每一类SQL的作用及相关关键字。

SQL指的是结构化查询语句(structured query lanangue)

SQL语句的种类:

  1. DDL:数据定义语言 (表结构相关的操作,库的相关操作)
    关键字:create[创建] alter[修改] drop[删除]
    作用:定义数据的结构
  2. DML:数据操作语言(表中数据操作相关)
    关键字:insert[插入] select[查询] update[修改] delete[删除]
    作用:实现对表中的数据进行增删改查的操作(crud)
  3. DCL:数据控制语言(表中数据操作授权)
    关键字:grant[授权] revoke[取消授权]
    作用:实现表中数据访问权限的控制
  4. TCL:事务控制语言(事务相关的操作)
    关键字:commit[提交事务] rollback[回滚事务]

4.DDL是什么,DDL相关的关键字有哪些,可用于实现哪些功能,语法是怎么样的,举例说明。(相关结果截图)

数据定义语言
create[创建] alter[修改] drop[删除]
1) 创建数据库,删除数据库
2) 创建表,删除表
3) 修改表结构:
添加字段,修改字段的名字,修改字段的类型,修改字段的顺序,删除字段,
add change modify drop

5. 请总结add,modify,change的作用。

通过add change modify drop这四个关键字实现
能用modify实现的都能用change实现
一般修改表名的时候用change
其他的修改建议用modify

6. 请设计一张表,创建联合主键,并通过添加数据验证联合主键的特性。(相关结果截图)

存储有问题

设立联合主键的代码:
create table homework_q6(id int auto_increment, _name varchar(8), tel int, address varchar(25), primary key(id, _name));
desc homework_q6;

在这里插入图片描述

在这里插入图片描述

设了联合主键之后,id值一样表也能存储。
如果不设立联合主键,id值一样就表就无法存储

扩展

“主键是唯一的索引”是有歧义的。应该是“当表中只有一个主键时,它是唯一的索引;当表中有多个主键时,称为联合主键,联合主键联合保证唯一索引”。

为什么自增长ID已经可以作为唯一标识的主键,为啥还需要联合主键呢。因为,并不是所有的表都要有ID这个字段啊哈哈,比如,我们建一个学生表,没有唯一能标识学生的ID,怎么办呢,学生的名字、年龄、班级都可能重复,无法使用单个字段来唯一标识,这时,我们可以将多个字段设置为主键,形成复合主键,这多个字段联合标识唯一性,其中,某几个主键字段值出现重复是没有问题的,只要不是有多条记录的所有主键值完全一样,就不算重复。

联合主键一般用于在一个字段可能有重复的情况下,用另一个字段去保持其唯一性

比如有两个字段:name , phone
name 字段是可能重复的,而 phone 是唯一的
这时在创建数据表的时候可以在末尾加上:

PRIMARY KEY(name, phone)
表示用 name 与 phone 构成联合主键,复合主键以保持记录的唯一性

1、数据库的每张表只能有一个主键,不可能有多个主键。
2、所谓的一张表多个主键,我们称之为联合主键。
注:联合主键:就是用多个字段一起作为一张表的主键。
3、主键的主键的作用是保证数据的唯一性和完整性,同时通过主键检索表能够增加检索速度。

https://blog.csdn.net/qq_34741578/article/details/89393578

7. 暂时hold住,搞定联合主键先。 |||||| 请设计一张表,创建联合唯一性,并通过添加数据验证联合唯一性的特性。(相关结果截图)

设立联合唯一的代码:
create table homework_q7(id int primary key auto_increment, _name varchar(8), tel int, address varchar(25), unique key(tel, address));
desc homework_q7;

设计tel和address联合唯一,tel即使一样也能存储

如果不设置联合唯一,tel一样就不能存储

insert into MyClass values 666;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值