数据库基础和数据表的维护(第一天)

1.DB: Database 数据库 按照数据结构来组织、存储和管理信息的仓库

2.DBMS: 数据库管理系统

3.数据管理经历的过程:
手工管理阶段:数据不保存 不共享 没有独立性
文件管理阶段:数据可保存 但是共享性差 冗余大
数据库管理阶段:数据可保存 可共享 冗余小

4.数据库类型:
网状型数据库
层次型数据库
关系型数据库:采用二维表的结构进行数据的管理,定义表之间的依赖关系
表由行和列组成(类似二维数组的结构)
列包含一组命名的属性(也称字段)
行包含一组记录,每行包含一条记录。
行和列的交集称为数据项,指出了某列对应的属性在某行上的值,也称为字段值。
列需要定义数据类型,比如整数或者字符型的数据。

5. 常见关系数据库:
Oracle、DB2、Sybase、Microsoft SQL Server 、MySQL
6.查看数据库版本 select version()
7.查看当前连接下的所有数据库 show databases
8.默认用哪个数据库 use mysql
9.查看表 show tables
10.查看具体表结构 describe tablename

11.Mysql 数据库的存储引擎:
INNODB:支持外键 支持事务 支持全文检索 – mysql默认存储引擎
MyISAM:不支持外键 不支持事务 支持表的压缩等
MEMORY

12.要创建数据库MySQLDB,可以使用下面的语句。
CREATE DATABASE [IF NOT EXISTS] MYSQLDB
使用 IF NOT EXISTS 关键字,当指定数据库名存在时不创建数据库,同名不报错

13.删除数据库
drop database 数据库名

14.表的维护
表是数据库中最基本的开发单元,表由行和列构成

15.数据表的设计:
E-R(Entity-Relationship) 模型即实体-关系模型,用于定义数据的存储需求,由实体、属性和关系三个基本要素构成。

16.MySQL数据库的五种约束
约束 说明
NOT NULL 非空约束,指定某列的所有行数据不能包含空值
UNIQUE 唯一性约束,指定列或者列的组合 的所有行数据必须唯一
PRIMARY KEY 主键约束,表的每行的唯一性标识,指定列或者列的组合所有行数据必须唯一,我们创建的表,必须要有主键
FOREIGN KEY 外键约束,在列及引用列上建立的一种强制依赖关系
CHECK 检查性约束,在列上指定一个必须满足的条件

17.MySQL的数据类型包括数值类型、日期和时间类型和字符串类型等。
Mysql常用的数据类型:
数值类型:
整数:int
浮点型:double
日期型:
date:只存储日期的年月日,例如’2021-01-13’
datetime:年月日时分秒,例如’2021-01-13 13:48:00’
timestap:时间戳类型.TIMESTAMP列用于INSERT或UPDATE操作时记录日期和时间
字符串类型:
char(M):固定长度的字符串,M为存储长度
VARCHAR(M):可变长度的字符串,M为最大存储长度,实际存储长度为输入的长度

18.创建表的基本语法:
create table 表名(
字段名1 数据类型 [约束条件],

[其他约束条件],
[其他约束条件]
)

create table dept(
deptno int(2) primary key auto_increment,   (设置主键且自动递增列)
dname varchar(20),
loc varcjar(30)
)

• PRIMARY KEY,指定字段为主键。
• AUTO_INCREMENT,指定字段为自动增加字段。
• INDEX,为字段创建索引。
• NOT NULL,字段值不允许为空。
• NULL,字段值可以为空。
• COMMENT,设置字段的注释信息。
• DEFAULT,设置字段的默认值。

19.一个表的外键必须关联另外一个表的主键或唯一键
20.课后练习:
在这里插入图片描述

在这里插入图片描述

21.复制表:
复制一个表结构的实现方法有两种.
方法一: 将源表的表结构复制到新表中,不带数据
create table新表名like源表
方法二: 将源表中的结构和数据均复制过去
create table新表名select * from源表

22.删除表: drop table表名

23.修改表: 可以使用alter table语句修改表的结构,包括添加列、修改列属性和删除列等操作。
Alter table表名add列名 数据类型和长度 列属性
Alter table表名modify列名 新数据类型和长度 新列属性
Alter table表名drop column列名
例如:
使用alter table语句在表emp中增加一列,列名为tele,数据类型为varchar,长度为50,列属性为允许空,具体语句如下:
Alter table emp add tele varchar(50) null
使用alter table语句在表emp中修改tele列的属性,将数据类型为char,长度为50,列属性为允许空。具体语句如下:
Alter table emp modify tele char(50) null
使用alter table语句在表emp中删除tele列,具体语句如下:
Alter table emp drop column tele

24.添加约束:
向表的某个字段添加约束条件的语法格式如下(其中约束类型可以是唯一性约束、主键约束及外键约束)。
alter table 表名 add constraint 约束名 约束类型 (字段名)

25.修改约束条件:
删除约束条件:
• 删除表的主键约束条件语法格式比较简单,语法格式如下。
alter table 表名 drop primary key
• 删除表的外键约束时,需指定外键约束名称,语法格式如下(注意需指定外键约束名)。
alter table 表名 drop foreign key 约束名
• 删除表字段的唯一性约束,实际上只需删除该字段的唯一性索引即可,语法格式如下(注意需指定唯一性索引的索引名)。
alter table 表名 drop index 索引名;

26.修改表
• alter table 表名 engine=新的存储引擎类型
• alter table 表名 default charset=新的字符集
• alter table 表名 auto_increment=新的初始值
• alter table 表名 pack_keys=新的压缩类型
例如:

alter table person engine=MyISAM;
alter table person default charset=gb2312;
alter table person auto_increment=8;
alter table person pack_keys=1;

27.修改表名
修改表名的语法格式较为简单,语法格式如下。
rename table旧表名to新表名
该命令等效于:alter table 旧表名 rename 新表名

课后习题
2.创建学生关系sc,包括属性名:
– 选课流水号 数值型 主键;
– 学生编号 非空 外键
– 课程编号 非空 外键;
– 成绩 0-100之间;

create table sc(
scno int(4) primary key auto_increment,
sno int(3) not null,
cno int(3) not null,
score int(3),
constraint sss foreign key(sno) references class(sno),
check (score>0 and score<=100)
)

5.设置copy_emp 表中外键deptno,参照copy_dept中deptno,语句能否成功,为什么?
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/gcyqweasd/article/details/112572720