暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

深入浅出之数据库学习(四)-MySQL数据库定义语言DDL

测试漫谈 2021-05-10
713


前续学习教程请点击:

深入浅出之数据库学习(一)-数据库与DBMS简介
深入浅出之数据库学习(二)-MySQL数据库和常用数据库命令
深入浅出之数据库学习(三)-MySQL存储引擎和SQL数据类型

本篇文章主要介绍数据库的DDL(Database Definition Languages,数据库定义语言)。
SQL主要分为四个部分DDL(数据定义语言)、DML(数据操作语言)、DQL(数据查询语言)、DCL(数据控制语言)。
DDL主要用来定义数据库对象,如创建库,表,列,索引等数据库对象。常用的语句关键字主要包括create、alter、drop。
如创建数据库:
create  database  数据库名称 character  set  utf8;
修改数据库的字符集编码为gbk
alter  database  数据库名称  character  set  gbk;
删除数据库:
drop  database  数据库名称;
创建学生表(先进入一个数据库,然后定义表的结构):
create table 表名(
列名1  列的类型  [约束],
列名2  列的类型  [约束],
列名n   列的类型  [约束]
);
注意最后一行没有逗号。
添加一列:
alter  table  表名称  add  列名数据类型;
删除一列:
alter table  表名称  drop  列名称;
修改表中的字段类型:
Altertable  表名称  modify  列名称字段类型;
修改表中字段名:
altertable  表名称  change  原始列名  新列名  数据类型;
修改表名:
renametable 原始表名 to 新表名;
修改表的字符集编码为gbk
alter  table  表名称  characterset  gbk;
删除表:
drop  table  表名称;
查看表的字段信息:
desc  表名称;
查看表的创建细节:
show  create  table  表名称;
说明:
1)字符串用单引号 `,可提高性能;
2)表名、字段、数据库名等标识符可用反引号 ` ;
3)标识符也可以不使用反引号,但如果标识符包含特殊字符或保留字,则必须使用;
4)标识符包括:数据库、表、索引、列、别名、视图、存储过程、分区、表空间、其他对象名称。
本章的演示在可视化Navicat工具下练习,关于工具和MySQL的安装请参考第一篇文章。
首先打开Navicat的命令窗口

然后分别新建、删除数据库supermarket:
创建一个产品表作为演示:
    mysql> create table products(    
    ->prod_id char(10) not null,    
    ->vend_id int not null,    
    ->prod_name char(255) not null,    
    ->prod_price decimal(8,2) not null,    
    ->prod_desc text null,    
    ->primary key(prod_id)    
    ->)ENGINE=Innodb;      
    复制

    下面增加一个字段,商品的数量:
      mysql> alter table products add prod_quantity int;
      Query OK, 0 rows affected
      Records:0  Duplicates: 0  Warnings: 0
      复制



      Navicat查看表的创建语句(数据表->右键->对象信息->DDL):

      utf8mb4utf8 是 Mysql 中的一种字符集,只支持最长三个字节的 UTF-8字符,要在 Mysql 中保存 4 字节长度的 UTF-8 字符,需要使用 utf8mb4 字符集,但只有 5.5.3 版本以后的才支持。
      COLLATE:COLLATE是用来告知MySQL如何对该列进行排序和比较,主要会影响到ordey by,distinct,group by,having语句的查询结果。“utf8mb4_0900_ai_ci”是用来排序的规则,如varchar,char,text类型的列,都需要有一个COLLATE类型来告知MySQL如何对该列进行排序和比较, COLLATE通常是和数据编码(CHARSET)相关的,一般来说每种CHARSET都有多种它所支持的COLLATE,并且每种CHARSET都指定一种COLLATE为默认值。如GBK编码的默认COLLATE为gbk_chinese_ci。

      PS:如果文章对你有价值,欢迎分享文章到朋友圈 + 点个「在看」让更多的人看到,谢谢。
      END

      历史文章回看:

      测试人员与开发和产品的日常

      测试左移思想和测试质量保证

      Bug提的多就代表能力突出吗

      软件测试艺术

      测试技术|自动化测试|测试流程

      长按扫码可关注


      在看点一下 大家都知道



      文章转载自测试漫谈,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

      评论