1.2 mysql入门教程,数据库的概念,表字段类型,实体完整性等

数据库概念

数据和数据库
数据是关于自然、社会现象和科学试验的定量或定性的记录,是科学研究最重要的基础。
数据库有多种定义,在计算机体系内,简单来讲就是存储数据的“仓库” 。

从数据管理角度分析 人工管理阶段 20世纪50年代中期之前
文件系统阶段 20世纪50年代中期到60年代中期
数据库系统阶段 20世纪60年代后期

数据库的基本概念
在关系型数据库:实体对应的是表
实体中的特征属性——表的字段
每一个实体对应java的对应——一条记录

实体(Entity)是客观存在并可以相互区别的事物 。
对象—实体—一条记录
属性(Attribute)是事物本身固有的性质 。
属性----字段

在关系型数据库中:对应的就是记录和字段——列

数据表与数据库的关系
表、表中数据以及表间关系) 数据表就是记录的集合 。
数据库就是数据表、数据库关系和数据库关系对象的集合。

面向对象关系模型
面向对象数据模型把实体表示为类,一个类描述了对象属性和实体行为
在这里插入图片描述

当前主流数据库
MySQL:
自己独立,mysql界面化 数据量都布达不到商业要求,早期的mysql都是一些小公司。开源。目前的MySql和商业数据库媲美。大部分公司用的都是它。

Oracle关系型:
商业数据库。甲骨文公司。效率高–非常稳定 —提供系统函数非常丰富。

SqlServer:局限性比较大。
微软。目前大部分的服务器都是liunx。只能在window系统下跑。.netMySql:开源免费——oracle收购——优秀5.5——稳定版5.7——稳定版Mysql8.0.23Mysql SQLServer Oracle db2 Sysbase …SqlServer:微软,只能在window下。java项目大部分都在liunx。企业门户——.net 发布IIS服务器(window的自带的一个服务器)

Mysql优点
开源:MySQL源代码免费下载
简单:体积小,便于安装
性能优越:性能足够与商业数据库媲美
开源、功能强大:提供的功能足够与商业数据库媲美

mysql的使用

通过cmd访问

命令:mysql –u 登录名 –p 密码 登录数据库

在这里插入图片描述
出现上图就是没有配置环境变量 path添加一下mysql安装的bin的路径
在这里插入图片描述
在这里插入图片描述

常见的命令
show databases;显示所有数据库
use  数据库名称;切换数据库
show tables ; 显示所有表
select * from user;必须在mysql数据库中。显示所有mysql数据库的用户信息
update user set  authentication_string=password ('root') where user='root';   更改新密码为: root
flush  privileges;      刷新MySQL的系统权限相关表。修改密码后需要执行此语句quit或者exit;退出mysql

在这里插入图片描述

开启远程链接:可以通过ip地址链接

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root';
grant all privileges  on *.* to 'root'@'%' identified by 'root';
写命令的时候大小写不区分(一般推荐 要写大写全部大写  要写小写全部小写) 这里的123456为你给新增权限用户设置的密码,%代表所有主机,也可以具体到你的主机ip地址flush privileges;   这句表示从mysql数据库的grant表中重新加载权限数据

使用客户端(navicat)连接MySql:
系统数据库
information_schema:提供了访问数据库元数据的方式。
mysql:是mysql的核心数据库。
performance_schema :主要用于收集数据库服务器性能参数。
test : mysql创建的测试库。5的版本,8的版本没有

MySQL(server)创建并管理的数据库文件:
.frm文件:存储数据表的框架结构,文件名与表名相同,每个表对应一个同名frm文件,与操作系统和存储引擎无关,即不管MySQL运行在何种操作系统上,使用何种存储引擎,都有这个文件。除了必有的.frm文件,根据MySQL所使用的存储引擎的不同(MySQL常用的两个存储引擎是MyISAM和InnoDB),存储引擎会创建各自不同的数据库文件。
MyISAM数据库表文件:
.MYD文件:即MY Data,表数据文件。 .MYI文件:即MY Index,索引文件 .log文件:日志文件。 InnoDB采用表空间(tablespace)来管理数据,存储表数据和索引:
ibdata1、ibdata2等:系统表空间文件,存储InnoDB系统信息和用户数据库表数据和索引,所有表共用。 .ibd文件:单表表空间文件,每个表使用一个表空间文件(file per table),存放用户数据库表数据和索引。 日志文件: ib_logfile1、ib_logfile2。

数据库的操作

创建数据库
-- 建库语句
create database mybase01 
default charset 'utf8' -- 字符编码格式
--COLLATE 'utf8_general_ci';
-- 删库语句
drop database mybase01;
创建表和删除表
-- 建表
/*create table 表名(	
字段名  数据类型(varchar...)  约束,	
字段名1  数据类型(varchar...)  约束,	
字段名2  数据类型(varchar...)  约束,	
字段名3 数据类型(varchar...)  约束,	
....	字段名n 数据类型(varchar...)  约束
)
*/
create table tab_student(	
stu_no int,	
stu_name varchar(200),	
stu_age int,	
stu_phone varchar(11),	
stu_address varchar(2000),	
stu_sex varchar(2)
)
表字段类型

在这里插入图片描述
在这里插入图片描述

字符型

char c=‘A’
String s=“abcef”

char 数据库:定长字符串。char(6):长度为6的字符串,这个字段中可以存储6个字符。——‘a’,系统会自动补全补空格补齐6个 保证占位一定是6个。不足补齐超出报错。邮编 手机号

varchar(100):不定长。最大长度为100,如果存储一个a占位就是一个a长度,实际占位和实际内容有关,100是最大长度,不能超出,超出会报错。
在这里插入图片描述

日期型

在这里插入图片描述

二进制类型

在这里插入图片描述

数据完整性

在这里插入图片描述

数据完整性概念

数据完整性(Data Integrity)是指数据的精确性(Accuracy)和可靠性(Reliability)
数据完整性分为4类:
实体完整性(Entity Integrity)、 域完整性(Domain Integrity)、 引用完整性(Referential Integrity) 用户自定义完整性(User-defined Intergrity)。

实体完整性:

实体完整性在表中的约束体现为:必须可以唯一性的标志这一行。必须有一个或多个字段可以让我直接找到这一行而且只找到这一行。
PRIMARY KEY(主键)约束:唯一 并且非空一个表只能有一个主键,一个主键可以包含1或者多列。
AUTO_INCREMENT (自增)约束:一般为主键服务。新增时无需指明本列值,系统会自动配置一个自动增长的数字 UNIQUE(唯一)约束:唯一但是可以为空

域完整性:

域完整性(Domain Integrity)是考虑如何限制向表中输入的值的范围 域完整性的约束: FOREIGN KEY(外键)约束 DEFAULT(默认值)约束 NOT NULL(非空)约束Check约束----MySql不支持

create table tab_student(	
-- auto_increment自增,一般配合主键使用,no=1 第二个自动成2	
stu_no int primary key auto_increment ,-- 主键  保证非空 唯一	
stu_name varchar(200),	
stu_age int,	
stu_phone varchar(11) not null,-- 不予许为空	
stu_address varchar(2000) default '牛顿国际',-- 默认	
stu_sex varchar(2),	
stu_card varchar(20) unique -- 唯一列允许为空  但是不能重复
)
引用完整性(Referential Integrity)

外键:两张表的关联关系。保证录入的一致性 删除的一致性 修改的一致性。一般情况下:本表的外键市另外一张表的主键保证:外键表数据存储的值在主表的主键中一定能找到。从表:新增 修改外键有限制主表:修改主键 删除数据 它一般建立在主键与外键之间的关系,或者外键与唯一索引之间的关系的基础上 MySQL禁止用户进行下列操作。
(1)如果主表中没有对应记录,从表不能新增。从表不能乱新增,修改id
(2)更新主表 从表也好都需要保证两边数据的一致性
(3)删除主表数据,从表中存在关联数据也不能删除

create table tab_class(	
class_id int primary key auto_increment,	
class_name varchar(200) not null,	
teacher_name varchar(200)
)
create table tab_student(	-- auto_increment自增,一般配合主键使用,no=1 第二个自动成2	
stu_no int primary key auto_increment ,-- 主键  保证非空 唯一	
stu_name varchar(200),	
stu_age int,	stu_phone varchar(11) not null,-- 不予许为空	
stu_address varchar(2000) default '牛顿国际',-- 默认	
stu_sex varchar(2),	stu_card varchar(20) unique, -- 唯一列允许为空  但是不能重复	
class_idw int,	
CONSTRAINT fk_classid FOREIGN key (class_idw) 	REFERENCES tab_class(class_id)-- 本表外键关联其他表主键
)

建表以后表的管理

修改列——非空/默认
Alter table 表名 change 字段名 新字段名 新的数据类型 新的约束;
添加列
Alter table 表名 add 字段名 数据类型 约束;
删除列
Alter table 表名 drop 字段名;
表外添加主键、删除主键(格外注意复合主键)
Alter table 表名 add CONSTRAINT 约束名 primary key(主键字段,字段2)
Alter table 表名 drop primary key;-- 有自增必须先删除,使用修改列进行
添加外键和删除外键
Alter table 表名 add constraint 约束名 foreign key(外键) references 另外一张表(主键)
Alter table 表名 drop foreign key 约束名
添加default约束
Alter table 表名 alter column 列名 set default ‘’ 或者用修改列也可以
添加唯一约束
Alter table 表名 add unique(列名) Alter table 表名 drop index 列名

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

杵意

谢谢金主打赏呀!!

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

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

打赏作者

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

抵扣说明:

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

余额充值