欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

DDL

程序员文章站 2022-05-08 09:30:20
03-DDL-数据库、数据表、数据的关系04-DDL-SQL的介绍05-DDL-数据库的查询和创建06-DDL-数据库的修改、删除、使用07-DDL-数据表的查询08-DDL-数据表的创建09-DDL-数据表的修改10-DDL-数据表的删除...

03-DDL-数据库、数据表、数据的关系

1.数据库、数据表、数据的关系介绍

  • 数据库
    • 用于存储和管理数据的仓库
    • 一个库中可以包含多个数据表
  • 数据表
    • 数据库最重要的组成部分之一
    • 它由纵向的列和横向的行组成(类似excel表格)
    • 可以指定列名、数据类型、约束等
    • 一个表中可以存储多条数据
  • 数据
    • 想要永久化存储的数据

04-DDL-SQL的介绍

  • 什么是SQL

    • Structured Query Language:结构化查询语言
    • 其实就是定义了操作所有关系型数据库的规则。每一种数据库操作的方式可能会存在一些不一样的地方,我们称为“方言”。
  • SQL通用语法

    • SQL 语句可以单行或多行书写,以分号结尾。
    • 可使用空格和缩进来增强语句的可读性。
    • MySQL 数据库的 SQL 语句不区分大小写,关键字建议使用大写。
    • 数据库的注释:
      • 单行注释:-- 注释内容 #注释内容(mysql特有)
      • 多行注释:/* 注释内容 */
  • SQL分类

    • DDL(Data Definition Language)数据定义语言
      • 用来定义数据库对象:数据库,表,列等。关键字:create, drop,alter 等
    • DML(Data Manipulation Language)数据操作语言
      • 用来对数据库中表的数据进行增删改。关键字:insert, delete, update 等
    • DQL(Data Query Language)数据查询语言
      • 用来查询数据库中表的记录(数据)。关键字:select, where 等
    • DCL(Data Control Language)数据控制语言(了解)
      • 用来定义数据库的访问权限和安全级别,及创建用户。关键字:GRANT, REVOKE 等

05-DDL-数据库的查询和创建

  • R(Retrieve):查询

    • 查询所有数据库
    -- 查询所有数据库
    SHOW DATABASES;
    
    • 查询某个数据库的创建语句
    -- 标准语法
    SHOW CREATE DATABASE 数据库名称;
    
    -- 查看mysql数据库的创建格式
    SHOW CREATE DATABASE mysql;
    
  • C(Create):创建

    • 创建数据库
    -- 标准语法
    CREATE DATABASE 数据库名称;
    
    -- 创建db1数据库
    CREATE DATABASE db1;
    
    -- 创建一个已存在的数据库会报错
    -- 错误代码:1007  Can't create database 'db1'; database exists
    CREATE DATABASE db1;
    
    • 创建数据库(判断,如果不存在则创建)
    -- 标准语法
    CREATE DATABASE IF NOT EXISTS 数据库名称;
    
    -- 创建数据库db2(判断,如果不存在则创建)
    CREATE DATABASE IF NOT EXISTS db2;
    
    • 创建数据库、并指定字符集
    -- 标准语法
    CREATE DATABASE 数据库名称 CHARACTER SET 字符集名称;
    
    -- 创建数据库db3、并指定字符集utf8
    CREATE DATABASE db3 CHARACTER SET utf8;
    
    -- 查看db3数据库的字符集
    SHOW CREATE DATABASE db3;
    

06-DDL-数据库的修改、删除、使用

07-DDL-数据表的查询

08-DDL-数据表的创建

09-DDL-数据表的修改

10-DDL-数据表的删除

3.DDL-操作数据库

  • 练习:创建db4数据库、如果不存在则创建,指定字符集为gbk
-- 创建db4数据库、如果不存在则创建,指定字符集为gbk
CREATE DATABASE IF NOT EXISTS db4 CHARACTER SET gbk;

-- 查看db4数据库的字符集
SHOW CREATE DATABASE db4;
  • U(Update):修改

    • 修改数据库的字符集
    -- 标准语法
    ALTER DATABASE 数据库名称 CHARACTER SET 字符集名称;
    
    -- 修改数据库db4的字符集为utf8
    ALTER DATABASE db4 CHARACTER SET utf8;
    
    -- 查看db4数据库的字符集
    SHOW CREATE DATABASE db4;
    
  • D(Delete):删除

    • 删除数据库
    -- 标准语法
    DROP DATABASE 数据库名称;
    
    -- 删除db1数据库
    DROP DATABASE db1;
    
    -- 删除一个不存在的数据库会报错
    -- 错误代码:1008  Can't drop database 'db1'; database doesn't exist
    DROP DATABASE db1;
    
    • 删除数据库(判断,如果存在则删除)
    -- 标准语法
    DROP DATABASE IF EXISTS 数据库名称;
    
    -- 删除数据库db2,如果存在
    DROP DATABASE IF EXISTS db2;
    
  • 使用数据库

    • 查询当前正在使用的数据库名称
    -- 查询当前正在使用的数据库
    SELECT DATABASE();
    
    • 使用数据库
    -- 标准语法
    USE 数据库名称;
    
    -- 使用db4数据库
    USE db4;
    

4.DDL-操作数据表

  • R(Retrieve):查询

    • 查询数据库中所有的数据表
    -- 使用mysql数据库
    USE mysql;
    
    -- 查询库中所有的表
    SHOW TABLES;
    
    • 查询表结构
    -- 标准语法
    DESC 表名;
    
    -- 查询user表结构
    DESC user;
    
    • 查询表字符集
    -- 标准语法
    SHOW TABLE STATUS FROM 库名 LIKE '表名';
    
    -- 查看mysql数据库中user表字符集
    SHOW TABLE STATUS FROM mysql LIKE 'user';
    
  • C(Create):创建

    • 创建数据表

      • 标准语法
      CREATE TABLE 表名(
          列名1 数据类型1,
          列名2 数据类型2,
          ....
          列名n 数据类型n
      );
      -- 注意:最后一列,不需要加逗号
      
      • 数据类型
      1. int:整数类型
      	* age int
      2. double:小数类型
      	* score double(5,2)
      	* price double
      3. date:日期,只包含年月日     yyyy-MM-dd
      4. datetime:日期,包含年月日时分秒	 yyyy-MM-dd HH:mm:ss
      5. timestamp:时间戳类型	包含年月日时分秒	 yyyy-MM-dd HH:mm:ss	
      	* 如果将来不给这个字段赋值,或赋值为null,则默认使用当前的系统时间,来自动赋值
      6. varchar:字符串
      	* name varchar(20):姓名最大20个字符
      	* zhangsan 8个字符  张三 2个字符
      
      • 创建数据表
      -- 使用db3数据库
      USE db3;
      
      -- 创建一个product商品表
      CREATE TABLE product(
      	id INT,				-- 商品编号
      	NAME VARCHAR(30),	-- 商品名称
      	price DOUBLE,		-- 商品价格
      	stock INT,			-- 商品库存
      	insert_time DATE    -- 上架时间
      );
      
      • 复制表
      -- 标准语法
      CREATE TABLE 表名 LIKE 被复制的表名;
      
      -- 复制product表到product2表
      CREATE TABLE product2 LIKE product;
      
  • U(Update):修改

    • 修改表名
    -- 标准语法
    ALTER TABLE 表名 RENAME TO 新的表名;
    
    -- 修改product2表名为product3
    ALTER TABLE product2 RENAME TO product3;
    
    • 修改表的字符集
    -- 标准语法
    ALTER TABLE 表名 CHARACTER SET 字符集名称;
    
    -- 查看db3数据库中product3数据表字符集
    SHOW TABLE STATUS FROM db3 LIKE 'product3';
    -- 修改product3数据表字符集为gbk
    ALTER TABLE product3 CHARACTER SET gbk;
    -- 查看db3数据库中product3数据表字符集
    SHOW TABLE STATUS FROM db3 LIKE 'product3';
    
    • 添加一列
    -- 标准语法
    ALTER TABLE 表名 ADD 列名 数据类型;
    
    -- 给product3表添加一列color
    ALTER TABLE product3 ADD color VARCHAR(10);
    
    • 修改列名称和数据类型
    -- 修改数据类型 标准语法
    ALTER TABLE 表名 MODIFY 列名 新数据类型;
    
    -- 将color数据类型修改为int
    ALTER TABLE product3 MODIFY color INT;
    -- 查看product3表详细信息
    DESC product3;
    
    
    -- 修改列名和数据类型 标准语法
    ALTER TABLE 表名 CHANGE 列名 新列名 新数据类型;
    
    -- 将color修改为address,数据类型为varchar
    ALTER TABLE product3 CHANGE color address VARCHAR(30);
    -- 查看product3表详细信息
    DESC product3;
    
    • 删除列
    -- 标准语法
    ALTER TABLE 表名 DROP 列名;
    
    -- 删除address列
    ALTER TABLE product3 DROP address;
    
  • D(Delete):删除

    • 删除数据表
    -- 标准语法
    DROP TABLE 表名;
    
    -- 删除product3表
    DROP TABLE product3;
    
    -- 删除不存在的表,会报错
    -- 错误代码:1051  Unknown table 'product3'
    DROP TABLE product3;
    
    • 删除数据表(判断,如果存在则删除)
    -- 标准语法
    DROP TABLE IF EXISTS 表名;
    
    -- 删除product3表,如果存在则删除
    DROP TABLE IF EXISTS product3;
    

本文地址:https://blog.csdn.net/qq_41375318/article/details/108974933