数据库基础学习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(约束条件表达式)};
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!