MySQL数据库

数据库系统
数据库系统有3个主要的组成部分
● 数据库:用于存储数据的地方。
● 数据库管理系统:用于管理数据库的软件。
● 数据库应用程序:为了提高数据库系统的处理能力所使用的管理数据库的软件补充。
SQL语言
SQL语言包含以下4部分。
(1)数据定义语言(Data Definition Language DDL):DROP、CREATE、ALTER等语句。
(2)数据操作语言(Data Manipulation Language DML):INSERT(插入)、UPDATE(修改)、DELETE(删除)语句。
(3)数据查询语言(Data Query Language DQL):SELECT语句。
(4)数据控制语言(Data Control Language DCL):GRANT、REVOKE、COMMIT、 ROLLBACK等
语句。
数据库操作
显示所有的库:

 SHOW DATABASES;

创建库

 CREATE DATABASE database_name;

查看数据库的定义

SHOW CREATE DATABASE mybatis;

删除库

DROP DATABASE database_name

InnoDB表
从MySQL 8.0开始,系统表全部换成事务型的InnoDB表,默认的 MySQL实例将不包含任何MyISAM表,除非手动创建MyISAM表。

SELECT DISTINCT ENGINE FROM information_schema.`TABLES`;

删除数据库时需要注意什么?
使用DROP DATABASE命令时要非常谨慎,在执行该命令时,MySQL 不会给出任何提醒确认信息。用DROP DATABASE声明删除数据库后,数 据库中存储的所有数据表和数据也将一同被删除,而且不能恢复
创建数据表
在创建完数据库之后,接下来的工作就是创建数据表。所谓创建数据 表,指的是在已经创建好的数据库中建立新表。创建数据表的过程是规定数 据列的属性的过程,同时也是实施数据完整性(包括实体完整性、引用完整 性和域完整性等)约束的过程。
数据表属于数据库,在创建数据表之前,应该使用语句

“USE <数据库 名>”

指定操作是在哪个数据库中进行,如果没有选择数据库,就会抛出

“No database selected”

的错误。
创建数据表的语句为CREATE TABLE,语法规则如下:

CREATE TABLE TAB_NAME(
字段1 类型 约束 默认值,
字段2 类型 约束 默认值,
字段n 类型 约束 默认值
)

使用CREATE TABLE创建表时,必须指定以下信息: (1)要创建的表的名称,不区分大小写,不能使用SQL语言中的关键字,如DROP、ALTER、INSERT 等。 (2)数据表中每一列(字段)的名称和数据类型,如果创建多列,就要用逗号隔开。

此时可以通过以下命令查看该库下的表

SHOW TABLES;

表约束
数据完整性是指数据的可靠性和准确性
1.实体完整性:实体的完整性强制表的标识符列或主键的完整性(通过索引,唯一约束,主键约束或标识列
属性).
2.域完整性:限制类型(数据类型),格式(通过检查约束和规则),可能值范围(通过外键约束,检查约束,默认值
定义,非空约束和规则).
3.引用完整性:在删除和输入记录时,引用完整性保持表之间已定义的关系.引用完整性确保键值在所有表
中一致.这样的一致辞性要求不能引用不存在的值.如果一个键值更改了,那么在整个数据库中,对该键值的
引用要进行一致的更改.
4.自定义完整性:用户自己定义的业务规则.
四种完整性约束:
实体完整性:唯一约束、主键约束、标识列
域完完整性:限制数据类型、外键约束、默认值、非空约束
引用完整性:外键
自定义完整性:过程,触发器等

约束
约束是在表上强制执行的一些数据校验规则,被插入、修改或删除的数据必须符合在相关字段上设置的
这些约束条件。
五类完整性约束:

NOT NULL 非空
UNIQUE 唯一
PRIMARY KEY 主键
FOREIGN KEY 外键
CHECKED 检查(mysql不支持的

主键约束
主键,又称主码,是表中一列或多列的组合。主键约束(Primary Key Constraint)要求主键列的数据唯一,并且不允许为空。主键能够唯一地标 识表中的一条记录,可以结合外键来定义不同数据表之间的
关系,并且可以 加快数据库查询的速度。主键和记录之间的关系如同身份证和人之间的关 系,它们之间是一一对应的。主键分为两种类型:单字段主键和多字段联合主键。
单子段主键
主键由一个字段组成,SQL语句格式分为以下两种情况。
1)定义列的同时指定主键,语法如下

字段名 字段类型 primary key

自增
在数据库应用中,经常希望在每次插入新记录时,系统自动生成字段的 主键值。可以通过为表主键添加AUTO_INCREMENT关键字来实现。默认 的,在MySQL中AUTO_INCREMENT的初始值是1,每新增一条记录,字段值自动加1。一个表只能有一个字段使用AUTO_INCREMENT约束且该字段必须为主键的一部分。AUTO_INCREMENT约束的字段可以是任何整数类型(TINYINT、SMALLIN、INT、BIGINT等)。
定义表之后指定主键

ALTER TABLE 表名 ADD CONSTRAINT 主键名 PRIMARY KEY(字段)
ALTER TABLE employee ADD CONSTRAINT pk_empid PRIMARY KEY(emp_id)

主键选取原则:

  1. 主键应当是对用户没有意义的。如果用户看到了一个表示多对多关系的连接表中的数据,并抱怨它 没有什么用处,那就证明它的主键设计地很好。
  2. 主键应该是单列的,以便提高连接和筛选操作的效率。
  3. 永远也不要更新主键。实际上,因为主键除了惟一地标识一行之外,再没有其他的用途了,所以也 就没有理由去对它更新。如果主键需要更新,则说明主键应对用户无意义的原则被违反了。
  4. 主键不应包含动态变化的数据,如时间戳、创建时间列、修改时间列等。
  5. 主键应当有计算机自动生成我们在建立数据库的时候,需要为每张表指定一个主键,所谓主键就是能够唯一标识表中某一行的 属性或属性组,一个表只能有一个主键,但可以有多个候选索引。因为主键可以唯一标识某一行记
    录,所以可以确保执行数据更新、删除的时候不会出现张冠李戴的错误。当然,其它字段可以辅助
    我们在执行这些操作时消除共享冲突,不过就不在这里讨论了。主键除了上述作用外,常常与外键
    构成参照完整性约束,防止出现数据不一致。所以数据库在设计时,主键起到了很重要的作用。

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

 字段名 数据类型 not null

唯一约束
唯一性约束(Unique Constraint)要求该列唯一,允许为空,但只能出 现一个空值。唯一约束可以确保一列或者几列不出现重复值。 唯一性约束的语法规则如下

字段名 数据类型 UNIQUE

如果定义完表后也可以给某个字段添加唯一约束,语法如下:

ALTER TABLE 表名 ADD CONSTRAINT 约束名 UNIQUE (约束字段);
 ALTER TABLE employee ADD CONSTRAINT uk_phone UNIQUE (emp_phone);

删除唯一索引的语法:

ALTER TABLE 表名 DROP INDEX 约束名;
ALTER TABLE employee DROP INDEX uk_phone;

默认值约束

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值