数据库
首页 > 数据库> > 数据库_Mysql基础——DDL数据定义语言

数据库_Mysql基础——DDL数据定义语言

作者:互联网

数据库

查看警告

SHOW WARNINGS;

创建数据库

语句{}中内容在使用语句时必须出现,方括号可以不出现。

CREATE {DATABASE|SCHEMA} [IF NOT EXISTS] db_name [DEFAULT CHARACTER SET = 编码格式] 

例子:
1.简单创建一个数据库 creat database(schema也可以) 数据库名称
在这里插入图片描述
然后你可以在C:\ProgramData\MySQL\MySQL Server 8.0\Data(这是我的路径)下看到创建了一个文件夹。
在这里插入图片描述
你也可以在这个文件夹下手动创建新的文件夹,也相当于创建了一个新的数据库,数据库的名字不能重复,重复创建会报错,如果加上IF NOT EXISTS创建,会返回警告。
2. 创建自定义编码格式的数据库
在这里插入图片描述

查看数据库

SHOW DATABASES;

SHOW SCHEMA;

注意: information_schema;mysql; performance_schema这三个数据库不能动!!!
在这里插入图片描述

查看指定数据库的定义

SHOW CREATE DATABASE|SCHEMA db_name;

在这里插入图片描述

修改指定数据库的编码方式

ALTER DATABASE|SCHEMA db_name DEFAULT CHARACTER SET = charset_name;

可以看到查询数据库定义的编码格式是utf8
在这里插入图片描述

打开指定的数据库

USE db_name;

在这里插入图片描述

得到当前打开的数据库名称

SELECT DATABASE();

在这里插入图片描述

删除指定数据库

DROP DATABASE|SCHEMA [IF EXISTS] db_name;

在这里插入图片描述
这样,那个文件夹下就删除了mysql01这个文件夹,也可以使用语句查看
在这里插入图片描述

数据表

数据表时数据库最重要的组成部分之一,是其他对象的基础,是存储数据的数据结构,是包含了特定实体类型的数据。它由行(row)和列(column)构成的二维网格。数据表一定时现有表结构,再有数据。数据表至少有一列,可以没有行或者多行。数据表名称要求唯一,而且不要包含特殊字符。

MYSQL中的数据类型

这些记个大概即可用的时候可以通过帮助查询
在这里插入图片描述

整数类型

在这里插入图片描述
如果需要输入无符号数,在数据类型后添加一个单词 UNSIGNED

浮点类型

在这里插入图片描述
如果输入小数位数超过指定位数,会进行四舍五入。定点数DECIMAL精度比前两个高。

字符串类型

在这里插入图片描述
CHAR会把输入字符串尾部的空格去掉,VARCHAR不会去掉。

日期时间类型

在这里插入图片描述

二进制类型

视频、图片等

类型选择

在这里插入图片描述

创建数据表

CREATE TABLE [IF NOT EXIST] tbl_name(字段名 字段类型 [完整约束条件] ...) ENGINE = 引擎名称 CHARSET = 编码方式;

字段名就是这个数据表中每一列的列标签;字段类型是每一列的数据类型;

引擎

存储引擎就是指表的类型,出具库的存储类型决定了表在计算机的存储方式。用户可以根据不同的存储方式,是否进行事务处理等来选择合适的存储引擎。
查看mysql支持的存储引擎

SHOW ENGINES;

查看显示支持的引擎信息

SHOW VARIABLES LIKE 'have%';

查看默认的存储引擎

SHOW VARIABLES LIKE 'storage_engine';

在这里插入图片描述
其中name表示引擎名称
support表示是否支持支持(yes),不支持(no)
comment注释
transactions是否支持事务处理,支持(yes),不支持(no)
XA是否是分布式处理的交易规范(我也不知道这是个什么玩意)是(yes),否(no)
savepoints是否支持保存点。
在这里插入图片描述
在这里插入图片描述

常用的引擎

不同数据表可以使用不同的引擎
InnoDB事务、回滚、修复、多版本并发控制,支持外借。创建的表结构在.fim的文件。缺点:读写效率低,占用空间大。
MyISAM存储文件时分为三个文件。分别存储表结构、数据、索引。支持静态、动态、压缩三种存储格式。效率高,空间占用小。缺点:不支持事务,没有事务的完整性、安全性、并发性的特点。
MEMORY存储在内存中创建表。速度快。可以提高表的效率。数据在内存中,占用内存多。缺点:存储在内存中,断电会造成丢失。

注释的写法

使用#来表示注释
在这里插入图片描述
这样回车不会执行该语句
或者使用-- 来表示注释内容(后面有空格)
在这里插入图片描述
给字段注释使用COMMENT
在这里插入图片描述

创建数据表

当输入内容含有中文的时候,需要临时更改编码格式为GBK

CREATE TABLE [IF NOT EXIST] tbl_name(字段名 字段类型 [完整约束条件] ...) ENGINE = 引擎名称 CHARSET = 编码方式;

创建数据库,打开数据库然后在数据库中创建数据表。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这段太麻烦了我附上代码

SET NAMES GBK;
CREATE TABLE IF NOT EXISTS `user` (id SMALLINT,username VARCHAR(20),age TINYINT,sex ENUM('男','女','保密'),email VARCHAR(50),addr VARCHAR(200),birth YEAR,salary FLOAT(8,2),tel INT,married TINYINT(1))ENGINE=INNODB CHARSET=UTF8;

这里在test01数据库下创建了user这个数据表。表的标签包含id username age…括号中的就是标签,后面跟的是数据类型。然后设定了引擎和编码格式。

查看创建的数据表

SHOW TABLES;

在这里插入图片描述
再创建一个试试
在这里插入图片描述

查看指定表的表结构

三种方法都可以

DESC tbl_name;
DESCRIBE tbl_name;
SHOW COLUMNS FROM tbl_name;

在这里插入图片描述

字段属性(完整性约束条件)

PRIMARY KEY主键,唯一标识某个记录的内容,要求定义为主键的字段不能重复且非空。

CREATE TABLE user1 (id INT PRIMARY KEY);#这样就给id定义为主键

在这里插入图片描述
key=pri就是主键。

CREATE TABLE user1 (id INT,card CHAR(18),PRIMARY KEY(id,card));#来定义一个复合主键

这是两个字段确定一个。
后面的明天再更
AUTO_INCREMENT自增长
FOREIGN KEY外键
NOT NULL非空
UNIQUE KEY唯一
DEFAULT默认值
用于修饰字段,使得字段符合要求。

标签:存储,name,SHOW,创建,数据库,Mysql,定义语言,数据表,DDL
来源: https://blog.csdn.net/Temmie1024/article/details/116331824