MySQL——DDL--数据定义语言,用来定义数据库对象

前言

        在数据库管理中,DDL(Data Definition Language,数据定义语言)是一组用于定义数据库结构和对象的SQL命令集合。这些命令主要用于创建、修改或删除数据库中的表、索引、视图等数据对象。

以下是MySQL中最常用的几种DDL操作:

  1. CREATE

    • CREATE DATABASE:用于创建一个新的数据库。
    • CREATE TABLE:用于创建新的表,并定义其列名、数据类型以及约束条件等。
    • CREATE INDEX 或 CREATE UNIQUE INDEX:用于创建索引以提高查询性能。
    • CREATE VIEW:用于创建一个视图,视图是一个虚拟表,它的结果集来自由定义视图的查询所生成的结果集。
  2. ALTER

    • ALTER DATABASE:用于修改已存在的数据库属性,如更改字符集等。
    • ALTER TABLE:用于修改已存在的表结构,例如添加或删除列、改变列的数据类型等。
    • ALTER USER:用于修改用户账号的信息。
  3. DROP

    • DROP DATABASE:用于删除整个数据库。
    • DROP TABLE:用于删除一个或多个表。
    • DROP INDEX:用于删除索引。
    • DROP VIEW:用于删除视图。
  4. TRUNCATE

    • TRUNCATE TABLE:用于快速清空表中的所有数据,但保留表的结构。这通常比使用DELETE命令更快,因为它不记录每一行的删除操作。

 下面将介绍DDL的一些基础用法,来初步了解DDL。

数据库操作

       数据库查询

 查询所有已存在的数据库

        

SHOW DATABASES;

  查询当前数据库

SELECT DATABASE();

        数据库创建

CREATE DATABASE 
    [IF NOT EXISTS] <数据库名> 
    [DEFAULT CHARACTER EST <字符集>]
    [COLLATE <校对规则>];

<数据库名>不区分大小写,中括号内可写可不写,按照需求添加。

 实例:创建一个MySQL数据库

mysql> create database tset_01;
Query OK, 1 row affected (0.12 sec)

返回 "Query OK" 则表示命令执行成功,完成数据库的创建  "1 row affected"表示只影响了数据库中的1行,"(0.12 sec)" 命令执行时间 为0.12秒。

若我们不知道是否已经存在与你想创建的数据库重名的数据库,从而导致报错,你可以通过添加[IF NOT EXISTS]子句来避免。该子句在数据库建立前会判断,只有数据库不存在时才执行数据库的创建,如下:

mysql> create database if not exists test_01;
Query OK, 1 row affected (0.13 sec)

当你想指定其默认字符集为 utf8,默认校对规则为 utf8_bin时,可以使用如下语句。

mysql> CREATE DATABASE IF NOT EXISTS test_02
    -> DEFAULT CHARACTER SET utf8
    -> DEFAULT COLLATE utf8_bin;
Query OK, 1 row affected (0.03 sec)

        数据库删除

DROP DATABASE 
    [IF EXISTS] <数据库名>;

        数据库使用

USE <数据库名>;

数据表操作

        数据表创建

create  table  表名(
    字段1 字段1的类型[comment 字段1注释],
    字段2 字段2的类型[comment 字段2注释],
    字段3 字段3的类型[comment 字段3注释],
    ...
    字段n 字段n的类型[comment 字段n注释]
)[comment 表注释];

实例:创建一个用户表USER 数据字段分别为'id'编号,'name'姓名,'age'年龄,'sex'性别

mysql> create table USER(
    -> id int comment '编号',
    -> name varchar(50) comment '姓名',
    -> age int comment '年龄',
    -> sex char(1) comment '性别'
    -> )comment '用户表';
Query OK, 0 rows affected (0.17 sec)

数据类型主要分为三大类,分别是数值类型,字符串类型,日期类型。

分类类型大小描述
数值类型TINYINT1byte小整数值
SMALLINT2byte大整数值

MEDIUMINT

3byte大整数值
INT或INTEGER4byte大整数值
BIGINT8byte极大整数值
FLOAT4byte单精度浮点
DOUBLE8byte双精度浮点
DECIMAL小数值(精确定点数)
字符串类型CHAR0~255byte定长字符串
VARCHAR0~65535byte变长字符串
TINYBLOB0~255byte不超过255个字符串的二进制数据
TINYTEXT0~255byte短文本字符串
BLOB0~65535byte二进制形式的长文本数据
TEXT0~65535byte长文本数据
MEDIUMBLOB二进制形式的中等长度文本数据
MEDIUMTEXT中等长度文本数据
LONGBLOB二进制形式的极大文本数据
LONGTEXT极大文本数据
日期类型DATE3日期值
TIME3时间值
YEAR1年份值
DATETIME8混合日期和时间值
TIMESTAMP4混合日期和时间值,时间戳

数据

 数据表查询

         查询当前数据表所有表

SHOW TABLES;

        查询表结构 

DESC  <表名>;

        查询指定表的建表语句

SHOW CREATE TABLE <表名>;

 数据表修改

        添加字段

ALTER TABLE <表名> 
    ADD <字段名> 类型(长度)
    [COMMENT 注释]
    [约束]; 

        修改数据类型

ALTER TABLE <表名>
    MODIFY <字段名> 型数据类型(长度); 

        修改字段名和字段类型

ALTER TABLE <表名>
    CHANGE <旧字段名> <新字段名> 类型(长度)
    [COMMENT 注释]
    [约束]; 

        删除字段

ALTER TABLE <表名>
    DROP <字段名> ; 

 数据表表名修改

ALTER TABLE <表名>
    RENAME TO <新表名>; 

 数据表删除  

         删除表    删除表时,表中所有数据会全部删除

DROP TABLE [IF EXISTS] <表名>; 

        删除指定表,并重新创建该表

TRUNATE TABLE <表名>;
  • 6
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值