数据库_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自增长,例如每增加一条数据,值就自动加1。自增长默认从1开始增长。必须配合主键使用,自增长的必为主键,但主键未必使用自增长。且自增长只对整数有作用。

CREATE TABLE IF NOT EXISTS user01(
id SMALLINT KEY AUTO_INCREMENT,
username VARCHAR(20)
);

在这里插入图片描述
这是两种加入内容的写法,先了解,后面还会讲。
在这里插入图片描述
然后我们查看一下内容,第一条加入是吧id加了进去,第二个id没有给出,它会因为自增变成2。如果不指定的时候才会自增1(指定为NULL或DEFFAULT),如果指定且未重复,它会根据你指定的值来录入。
可以在创建表的时候在语句尾部添加AUTO_INCREMENT=值,来指定自增开始的值。或单独使用语句ALTER TABLE 表名 AUTO_INCREMENT=值来更改设定。

在这里插入图片描述
FOREIGN KEY外键
NOT NULL非空,有该属性的字段在输入时必须有值,不能是NULL。否则输入报错。
查询是NULL列为no。
在这里插入图片描述
UNIQUE KEY唯一,与主键的效果类似不能重复(NULL除外),但主键只能有一个,唯一可以由很多。
DEFAULT默认值,一般与非空一起使用。这样非空属性的内容不传值也不会报错,而是使用默认值。如果不想输入,直接写入默认值可以写DEFAULT。
例如:创建表时,默认username为admin。添加内容时只填id。
在这里插入图片描述
查询时,可以看到username填上了默认的admin
在这里插入图片描述

修改数据表

先创建一个表
在这里插入图片描述

修改表名

四种选择一种使用即可,将tbl_name表重命名为new_name

ALTER TABLE tbl_name RENAME TO new_name;
ALTER TABLE tbl_name RENAME AS new_name;
ALTER TABLE tbl_name RENAME new_name;
RENAME TABLE tbl_name TO new_name;

这里以第一个为例。
这里添加的test01表
在这里插入图片描述
在这里插入图片描述

添加删除字段

在tbl_name表中添加 字段名称 的字段,规定字段类型为字段类型 可选择一些完整性约束条件,也可以指定该字段的位置(FIRST将字段放在第一个,AFTER+字段名称 则放在字段名称后面)

ALTER TABLE tbl_name ADD 字段名称 字段类型 [完整性约束条件] [FIRST|AFTER 字段名称]

在tbl_name表中删除字段字段名称

ALTER TABLE tbl_name DROP 字段名称

例子:
先查看一下原有的
在这里插入图片描述
然后我们添加一个试试
在这里插入图片描述
再删除一个试试删除usernaem吧,打错了,删掉。
在这里插入图片描述
也可以一次添加多个字段,删除也一样。
在这里插入图片描述
还可以混用,即添加又删除
在这里插入图片描述

修改字段

修改tbl_name表中字段字段名称的字段类型、约束条件、位置(此语句不修改字段名称)

ALTER TABLE tbl_name MODIFY 字段名称 字段类型 [完整性约束条件] [FIRST|AFTER 字段名称]

修改tbl_name表中旧字段名称的字段名为新字段名称,并重新定义字段类型、约束条件、位置。

ALTER TABLE tbl_name CHANGE 旧字段名称 新字段名称 字段类型 [完整性约束条件] [FIRST|AFTER 字段名称]

例子:
先查看一下表中存在的字段
在这里插入图片描述
这次我把add_new修改成username设置为唯一,放在id的后面,用第二条语句。
在这里插入图片描述
现在我再把username的type改大一些。用第一条语句。注意,这里没办反改变唯一属性,后面会讲到如何删除唯一属性
在这里插入图片描述

添加删除默认值

在tbl_name表中给字段字段名称添加默认值默认值

ALTER TABLE tbl_name ALTER 字段名称 SET DEFAULT 默认值

在tbl_name表中给字段字段名称删除默认值默认值

ALTER TABLE tbl_name ALTER 字段名称 DROP DEFAULT

例子:
先查看一下
在这里插入图片描述
给username添加一个默认值admin
在这里插入图片描述
在这里插入图片描述
再删掉它。
在这里插入图片描述

添加删除主键

如果主键中还有约束条件,应该先删掉约束条件再删除主键,删除使用前面的修改字段,不传入约束即可
在tbl_name表中添加

ALTER TABLE tbl_name ADD PRIMARY KEY(字段名称,...)

在tbl_name表中删除主键

ALTER TABLE tbl_name DROP PRIMARY KEY

例子:
这里以复合主键为例,单一主键只要括号中写一个即可
在这里插入图片描述
再删除,主键只有一个,所以不需要指定
在这里插入图片描述

添加删除唯一

给tbl_name表中的字段名称添加唯一

ALTER TABLE tbl_name ADD UNIQUE INDEX [索引名称](字段名称,...)

给tbl_name表中的字段名称删除唯一

ALTER TABLE tbl_name DROP INDEX index_name

例子:
先添加一个的
在这里插入图片描述
删除一下看看
一定要设置索引,如果你不设置,在删除的时候会直接把这一字段直接删除
在这里插入图片描述
联合索引
在这里插入图片描述
这里可以用SHOW CREATE TABLE test01来查看一下
在这里插入图片描述
删除的话依旧用索引uni_id删除
在这里插入图片描述

修改存储引擎

ALTER TABLE tbl_name ENGINE=存储引擎名称

例子:
将innodb改为myisam引擎
在这里插入图片描述

设置自增长值

ALTER TABLE tbl_name AUTO_INCREMNET=;

删除数据表

SHANCHU tb_name…一个或多个表

DROP TABLE IF EXISTS tbl_name...

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值