• MYSQL基础02DDL操作数据库6


    DDL:操作数据库、表

    1、操作数据库:CRUD

      1. C(Create):创建

      • 创建数据库:默认字符集为utf8

          create database 数据库名称;

          重复创建会报错,如下图

          

      • 创建数据库,判断是否存在:

          create database if not exists 数据库名称;

      • 创建数据库,并指定字符集:

          create database 数据库名称 character set 字符集;

      • 练习:创建db4数据库,判断是否存在,并指定字符集为gbk

           create database if not exists db4 character set gbk;

      2. R(Retrieve):查询

      • 查询所有数据库的名称:

          show database;

          //mysql安装好后默认有4个数据库,按理说应该对应MySQL数据目录C:\ProgramData\MySQL\MySQL Server 5.5\data中4个文件夹,但是data中只有3个文件夹。

          

        • information_schema:这个数据库是用来描述数据库MySQL里面的信息的(有哪些表有哪些库名字)。这里面存放的并不是真正的表,而是视图,所以information_schema数据库并不存在真正的物理文件。
        • mysql:核心数据库,存放的是核心数据,存放了很多表。
        • performance_schema:对性能提升做一些操作的数据库,里面也有很多表。
        • test:空的测试数据库。一般不用。

           注意:前3个数据库尽量不要动。

      3. U(Update):修改

      • 修改数据库的字符集

          alter database 数据库名称 character set 字符集名称;

          

      4. D(Delete):删除

      • 删除数据库:

          drop database 数据库名称;

          重复删除会报错,如下图

          

      •  判断数据库存在,存在再删除:

          drop database if exists 数据库名称;

          

      5. 使用数据库

      • 查询当前正在使用的数据库名称:

          select database();

      • 使用数据库:

          use 数据库名称;//相当于进入了db1文件夹

         

    2、操作表

      1. C(Create):创建

      • 创建表语法:

          create table 表名(

            列名1 数据类型1, 

            列名2 数据类型2,

            ...

            列名n 数据类型n

          );

      • 注意:最后一列,不需要加逗号(,)
      • 数据类型:

            1. int:整数类型  例如:age int,

            2. double:小数类型 例如:score double(5,2),//表示小数最多有5位,小数点后面有2位,最大值为999.99

            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个字符

      • 练习:创建表   
    create table student(
        id int,
        name varchar(32),
        age int ,
        score double(4,1),
        birthday date,
        insert_time timestamp
    );

         

      • 复制表:

          create table 表名 like 被复制的表名;

          

      2. R(Retrieve):查询

      •  查询某个数据库中所有的表名称

          show tables;

          

      • 查询表结构

          desc 表名;

          

      • 查询某个表的字符集:查询某个表的创建语句

          show create table 表名;

          

      3. U(Update):修改

      • 修改表名:

          alter table 表名 rename to 新的表名;

          

      • 修改表的字符集:

          alter table 表名 character set 字符集名称;

          

      • 添加一列:

          alter table 表名 add 列名 数据类型;

          

      • 修改列名称 类型

          alter table 表名 change 列名 新列名 新数据类型;

          alter table 表名 modify 列名 新数据类型;

          

      • 删除列

          alter table 表名 drop 列名;

          

      4. D(Delete):删除

      • 删除表:

          drop table 表名;

          drop table if exists 表名;

          

  • 相关阅读:
    el-input 标签中密码的显示和隐藏
    java 使用RedisTemplate实现Redis事务
    mac 安装 Java 环境
    Snowflake 分布式UUID
    lsof 查看端口使用时刻
    nginx.pid" failed (2: No such file or directory)
    解决Redis之MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist
    Linux环境下 Jna 解决so依赖文件not found
    Ubuntu mysql 在线安装
    Linux中为什么执行自己的程序要在前面加./
  • 原文地址:https://www.cnblogs.com/ajing2018/p/15681058.html
Copyright © 2020-2023  润新知