DDL(Data Definition Language),数据定义语言。本节讲DDL-数据库操作。

MySQL数据库基本操作-DDL

  • 对数据库的常用操作

  • 对表结构的常用操作

  • 修改表结构

对数据库的常用操作

功能 SQL
查看所有的数据库   show databases; 
创建数据库 create database [if not exists] mydb1 [charset=utf8]
切换 (选择要操作的) 数据库 use mydb1;  
删除数据库    drop database [if exists] mydb1;  
修改数据库编码 alter database mydb1 character set utf8;
-- 1 DDL操作之数据库操作
  -- 查看所有数据库 
show databases;
  -- 创建数据库
create database if not exists mydb1 ;     #不存在的话创建
create database mydb2;                    #直接创建,可能报错
  -- 选择使用哪一个数据库
use mydb1;  
  -- 删除一个数据库
drop database if exists mydb1; #存在的话删除
drop database mydb1;           #直接删除,可能报错
  -- 修改数据库编码(了解)(一般都用utf-8)
alter database mydb1 character set utf8;

它不区分大小写,但是尽量统一。

Navicat中写代码流程

SQLyog写指令流程

(PS:操作完后可能需要刷新一下才能看到效果)

对表结构的常用操作

创建表

语法:

create table [if not exists]表名(
  字段名1 类型[(宽度)] [约束条件] [comment '字段说明'],
  字段名2 类型[(宽度)] [约束条件] [comment '字段说明'],
  字段名3 类型[(宽度)] [约束条件] [comment '字段说明']
)[表的一些设置];

上面[]里的内容就是可选的参数。

创建表是构建一张空表,指定这个表的名字,这个表有几列,每一列叫什么名字,以及每一列存储的数据类型。

列与列之间用逗号来隔开。

字段名就是说这一列的名字,类型就是数字、字符串等。其他的暂时不关注,后面会介绍。

示例:

use mydb1;      -- 选择mydb1这个数据库
create  table if not exists student(
    sid int,
    name varchar(20),
    gender varchar(20),
    age int,
    birth date, 
    address varchar(20),
    score double
);

上面这段代码的含义其实就是在mydb1里面创建了一个这样的六列表,表的名字是“student”:

代码的含义

代码演示:

  -- 创建数据库
create database if not exists mydb1 ;     #不存在的话创建
use mydb1;                                #使用myds1数据库

  -- 创建一个student表
create  table if not exists student(      
    sid int,                              
    name varchar(20),                     #varchar(20)表示字符串最长20个    
    gender varchar(20),
    age int,
    birth date, 
    address varchar(20),
    score double
);

运行结果

student表里面有六列

数据类型

上面提到int,varchar(20),date, double等数据类型,本小节主要详细介绍数据类型。

数据类型是指在创建表的时候为表中字段指定数据类型,只有数据符合类型要求才能存储起来,使用数据类型的原则是:够用就行,尽量使用取值范围小的,而不用大的,这样可以更多的节省存储空间。

  • 数值类型

    类型 大小 范围(有符号) 范围(无符号) 用途
    tinyint 1 byte (-128,127) (0,255) 小整数值
    smallint 2 bytes (-32 768,32 767) (0,65 535) 大整数值
    mediumint 3 bytes (-8 388 608,8 388 607) (0,16 777 215) 大整数值
    intinteger 4 bytes (-2 147 483 648,2 147 483 647) (0,4 294 967 295) 大整数值
    bigint 8 bytes (-9,223,372,036,854,775,808,9 223 372 036 854 775 807) (0,18 446 744 073 709 551 615) 极大整数值
    float 4 bytes (-3.402 823 466 E+38,3.402 823 466 351 E+38) 0,(1.175 494 351 E-38,3.402 823 466 E+38) 单精度 浮点数值
    double 8 bytes (-1.797 693 134 862 315 7 E+308,1.797 693 134 862 315 7 E+308) 0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308) 双精度 浮点数值
    decimal 依赖于M和D的值 依赖于M和D的值 小数值

​ 一般用int或者double较多。

  • 字符串类型

    类型 大小 用途
    char 0-255 bytes 定长字符串
    varchar 0-65535 bytes 变长字符串
    tinyblob 0-255 bytes 不超过 255 个字符的二进制字符串
    tinytext 0-255 bytes 短文本字符串
    blob 0-65 535 bytes 二进制形式的长文本数据
    text 0-65 535 bytes 长文本数据
    mediumblob 0-16 777 215 bytes 二进制形式的中等长度文本数据
    mediumtext 0-16 777 215 bytes 中等长度文本数据
    longblob 0-4 294 967 295 bytes 二进制形式的极大文本数据
    longtext 0-4 294 967 295 bytes 极大文本数据

varchar用的比较多,例如varchar(20)

  • 日期类型

    类型 大小 (bytes) 范围 格式 用途
    date 3 1000-01-01/9999-12-31 YYYY-MM-DD 日期值
    time 3 '-838:59:59'/'838:59:59' HH:MM:SS 时间值或持续时间
    year 1 1901/2155 YYYY 年份值
    datetime 8 1000-01-01 00:00:00/9999-12-31 23:59:59 YYYY-MM-DD HH:MM:SS 混合日期和时间值
    timestamp 4 1970-01-01 00:00:00/2038 结束时间是第 2147483647 秒,北京时间 2038-1-19 11:14:07,格林尼治时间 2038年1月19日 凌晨 03:14:07 YYYYMMDD HHMMSS 混合日期和时间值,时间戳

datadatetimetimestamp用的比较多

其他操作

功能 SQL语句
查看当前数据库的所有表名称 show tables;
查看指定某个表的创建语句 show create table 表名;
查看表结构 desc 表名
删除表 drop table 表名

show tables; 查看当前数据库的所有表名称

show tables语句效果

show create table 表名;可以得到一个完整的表格的创建语句,得到“表从哪里来”的答案。

show  create table 表名

查看表结构 desc 表名

查看表结构

删除表 drop table student;

修改表结构操作

  • 添加列

alter table 表名 add 列名 类型(长度) [约束];

例如:

为student表添加一个新的字段为:系别dept 、类型为 varchar(20)

ALTER TABLE student ADD dept VARCHAR(20);

  • 修改列名和类型

alter table 表名 change 旧列名 新列名 类型(长度) [约束];

例如:

为student表的dept字段更换为department varchar(30)

ALTER TABLE student change dept department VARCHAR(30);

  • 删除列

alter table 表名 drop 列名;

例如:

删除student表中department这列

ALTER TABLE student DROP department;

  • 修改表名

rename table 表名 to 新表名 ;

例如:

将表student改名成 stu

rename table student to stu;


声明:内容来源于B站视频《2022黑马程序员最新MySQL知识精讲+mysql实战案例_零基础mysql数据库入门到高级全套教程》,博客内容仅作学习参考使用。


博主个人公众号
版权声明 ▶ 本网站名称:陶小桃Blog
▶ 本文链接:https://www.52txr.cn/2022/mysql4.html
▶ 本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长进行核实删除。
▶ 转载本站文章需要遵守:商业转载请联系站长,非商业转载请注明出处!!

最后修改:2022 年 05 月 19 日
如果觉得我的文章对你有用,请随意赞赏