数据库基础学习03计算机二级-第三章 数据定义

2023-12-13 04:24:10

1. 定义数据库

创建数据库:

CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name
[[DEFAULT] CHARACTER SET [=] CHARSET_NAME
[[DEFAULT] COLLATE [=] collation_name];

选择和查看数据库

USE db_name;
SHOW {DATABASES | SCHEMAS};

mysql> SHOW DATABASES
-> ;
±-------------------+
| Database |
±-------------------+
| db_name |
| information_schema |
| mysql |
| performance_schema |
| sys |
±-------------------+
5 rows in set (0.07 sec)

修改数据库

ALTER {DATABASE | SCHEMA} [db_name]
[DEFAULT] CHARACTER SET [=] charset_name
[DEFAULT] COLLATE [=] collation_name;

删除数据库

DROP {DATABASE | SCHEMA} [IF EXISTS] db_name;

2. 定义表

成功创建数据库后,就可以在数据库中创建数据表了。数据表是数据库中最重要、最基本的数据对象,是数据存储的基本单位,若没有数据表,数据库中其他的数据对象就没有意义。

MySQL常用的数据类型

常用数据类型主要有数值类型、日期和事件类型、字符串类型。

数值类型描述
BIT[(M)]位字段类型
TINYINT[(M)]很小的整数
BOOL,BOOLEANzero为假,非zero为真
SMALLINT[(M)]小的整数
MEDIUMINT[(M)]中等大小的整数
INT[(M)]普通大小的整数
INTEGER[(M)]INT同义词
BIGINT[(M)]大整数
DOUBLE[(M,D)]普通大小双精度浮点数
DECIMAL[(M,D)]压缩的严格定点数
DECDECIMAL同义词
日期和时间类型描述
DATE日期型
DATETIME日期和时间的组合
TIMESTAMP[(M)]时间戳
TIME时间型
YEAR[(2|4)]两位或四位格式的年

创建表

CREATE TABLE tbl_name
(
 字段名1 数据类型 【列级完整性约束条件】 【默认值】
 [,字段名2 数据类型 [列级完整性约束条件][默认值]]
 )[ENGINE=引擎类型]
  • 完整性约束

在使用CREATE TABLE 语句创建数据表的同时,可以定义与该表有关的完整性约束条件。包括实体完整性约束(PRIMARY KEY、 UNIQUE) 参照完整性约束(FOREIGN KEY) 和用户自定义约束 (NOT NULL 、DEFAULT、 CHECK约束等)。

  • NULL 与 NOT NULL

关键字 NULL 和NOT NULL 可以给字段自行以约束,NULL 值就是没有值或者值空缺。NOT NULL值的列则不接受该列 没有值的记录。

  • AUTO_INCREMENT

将字段设置为自增属性可以给记录一个唯一而又容易确定的ID号,该字段可以唯一标识表中每条记录。AUTO_INCREMENT为列设置自增属性。

  • DEFAULT

默认值是指在向数据表中插入数据时,如果没有明确给出某个字段所对应的值时候默认值。

  • 存储引擎类型

mysql> show engines

mysql> show engines
 -> ;
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| Engine             | Support | Comment                                                        | Transactions | XA   | Savepoints |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| ARCHIVE            | YES     | Archive storage engine                                         | NO           | NO   | NO         |
| BLACKHOLE          | YES     | /dev/null storage engine (anything you write to it disappears) | NO           | NO   | NO         |
| MRG_MYISAM         | YES     | Collection of identical MyISAM tables                          | NO           | NO   | NO         |
| FEDERATED          | NO      | Federated MySQL storage engine                                 | NULL         | NULL | NULL       |
| MyISAM             | YES     | MyISAM storage engine                                          | NO           | NO   | NO         |
| PERFORMANCE_SCHEMA | YES     | Performance Schema                                             | NO           | NO   | NO         |
| InnoDB             | DEFAULT | Supports transactions, row-level locking, and foreign keys     | YES          | YES  | YES        |
| MEMORY             | YES     | Hash based, stored in memory, useful for temporary tables      | NO           | NO   | NO         |
| CSV                | YES     | CSV storage engine                                             | NO           | NO   | NO         |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
9 rows in set (0.00 sec)

查看表

SHOW TABLES [ {FROM | IN} db_name ];
  • 查看数据表的基本结构
SHOW COLUMNS { FROM | IN } tb_name [ {FROM | IN } db_name];
# DESCRIBE/DESC语句的语法格式是:
{DESCRIBE | DESC} tb_name;
  • 查看数据表的详细结构
SHOW CREATE TABLE tb_name;

修改表

ALTER TABLE tb_name ADD [COLUMN] 新字段名 数据类型
	[约束条件] [FIRST | AFTER 已有字段名]
  • 修改字段

  • CHANGE 子句。 同时修改表中制定列的名称和数据类型。

  • ALTER子句。修改或者删除表中指定的列的默认值。

  • MODIFY子句。只会修改指定列的数据类型。

ALTER TABLE tb_name CHANGE [COLUMN] 原字段名 新字段名 数据类型 [约束条件];
ALTER TABLE tb_name ALTER [COLUMN] 字段名 {SET | DROP} DEFAULT;
ALTER TABLE tb_name MODIFY [COLUMN] 字段名 数据类型 [约束条件] [FIRST | AFTER 已有字段名]
  • 删除字段
ALTER TABLE tb_name DROP [COLUMN] 字段名;

重命名表

ALTER TABLE 原表名 RENAME [TO] 新表名;
RENAME TABLE 原表名1 TO 新表名1 [, 原表名2 TO 新表名2]……;

删除表

DROP TABLE [IF EXISTS] 表1 [,表2]

3 数据完整性约束

定义实体完整性。

主键约束可以在CREATE TABLE 或 ALTER TABLE 语句中使用关键字 PRIMARY KEY 来实现,方法有如下两种:

  • 一种是列级完整性约束,在字段定义后加上关键词 PRIMARY KEY;
  • 一种是作为表级完整性约束, 在所有字段后增加一句 PRIMARY KEY (index_col_name,……) 。

完整性约束的命名

CONSTRAINT<symbol>
{PRIMARY KEY(主键字段列表)
|UNIQUE(候选字段列表)
|FOREIGN KEY (外键字段列表) REFERENCES tb_被参照关系(主键字段列表)
| CHECK(约束条件表达式)};

文章来源:https://blog.csdn.net/qq_41520353/article/details/134902564
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。