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

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,BOOLEAN zero为假,非zero为真
SMALLINT[(M)] 小的整数
MEDIUMINT[(M)] 中等大小的整数
INT[(M)] 普通大小的整数
INTEGER[(M)] INT同义词
BIGINT[(M)] 大整数
DOUBLE[(M,D)] 普通大小双精度浮点数
DECIMAL[(M,D)] 压缩的严格定点数
DEC DECIMAL同义词
日期和时间类型 描述
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(约束条件表达式)};

相关推荐

  1. 数据库基础学习03计算机二级- 数据定义

    2023-12-10 04:08:03       41 阅读
  2. 数据库基础学习04计算机二级- 数据查询

    2023-12-10 04:08:03       39 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-10 04:08:03       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-10 04:08:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-10 04:08:03       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-10 04:08:03       20 阅读

热门阅读

  1. 85. 最大矩形

    2023-12-10 04:08:03       41 阅读
  2. 力扣labuladong一刷day31天二叉树

    2023-12-10 04:08:03       37 阅读
  3. 在Go中使用循环时使用Break和Continue语句

    2023-12-10 04:08:03       35 阅读
  4. 汽车网络安全--ISO\SAE 21434解析(一)

    2023-12-10 04:08:03       38 阅读
  5. Environment Variables Used by GPUDirect Storage

    2023-12-10 04:08:03       33 阅读
  6. 解释 Git 的基本概念和使用方式。

    2023-12-10 04:08:03       19 阅读
  7. 12.5每日一题(备战蓝桥杯小数运算、拆位练习)

    2023-12-10 04:08:03       24 阅读
  8. 【Spring篇】切点表达式语法规范

    2023-12-10 04:08:03       24 阅读
  9. 服务器数据损坏了有办法修复吗 ?

    2023-12-10 04:08:03       36 阅读