MySQL----DDL(操作数据库,表)

时间:2021-08-07 18:03:13

1. 操作数据库:CRUD

1. C(Create):创建

  * 创建数据库:
    * 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 databases;


  * 查询某个数据库的字符集:查询某个数据库的创建语句
    * show create database 数据库名称;

3. U(Update):修改

  * 修改数据库的字符集
    * alter database 数据库名称 character set 字符集名称;

4. D(Delete):删除

  * 删除数据库
    * drop database 数据库名称;


  * 判断数据库存在,存在再删除
    * drop database if exists 数据库名称;

5. 使用数据库

  * 查询当前正在使用的数据库名称
    * select database();


  * 使用数据库
    * use 数据库名称;

2、操作表

1. C(Create):创建

  1、语法:

   *创建表

    create table 表名(

      列名1 数据类型1,

      列名2 数据类型2,

      列名3 数据类型3,

      ...

      列名n 数据类型n

              );

  *复制表

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

      *注意:最后一列,不需要加逗号(,)

      *数据类型(常用):

          1、int:整数类型

            * age int,

          2、double:小数类型

            * score double(5,2),-- (5,2)表示这个小数最多5位,保留两位小数

          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,
    inset_time timestamp
);

 

 

 

2. R(Retrieve):查询

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

    *  show tables;

  *  查询表结构

    *  desc 表表名;

3. U(Update):修改

  1、修改表名

    alter table 表名 rename to 新的表名;

  2、修改表的字符集

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

  3、添加一列

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

  4、修改列名称  类型

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

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

  5、删除列

    alter table 表名 drop 列名;

4. D(Delete):删除

  *drop table 表名;

  * drop table if exists 表名;