• SQL分类之DDL:操作数据库表


    DDL:操作数据库表

    1.操作数据库:CRUD

    1.C(Create):创建

    • 创建数据库:
    create database 数据库名称
    • 创建数据库,判断不存在,再创建:
    create database if not exists 数据库名称;
    • 创建数据库,并指定字符集
    create database 数据库名称 character set 字符集名;
    • 练习:创建db3数据库,判断是否存在,并指定字符集为gbk
    create database if not exists db3 character set gbk;
    mysql> create database abc003 character set gbk;
    Query OK, 1 row affected (0.00 sec)

    2.R(Retrieve):查询

    • 询所有数据库的名称:
    show database;
    mysql> show databases;
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | abc001
    • 查询某个数据库的字符集:查询某个数据库的创建语句
    show create database 数据库名称;
    mysql> show create database abc001;
    +----------+-----------------------------------------------------------------------------------------+
    | Database | Create Database |
    +----------+-----------------------------------------------------------------------------------------+
    | abc001 | CREATE DATABASE `abc001` /*!40100 DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci */ |
    +----------+-----------------------------------------------------------------------------------------+
    1 row in set (0.00 sec)

    3.U(Update):修改

    • 修改数据库的字符集
    alter database 数据库名称 character set 字符集名称:
    mysql> alter database abc001 character set gbk;
    Query OK, 1 row affected (0.00 sec)
    
    mysql> show create database abc001;
    +----------+----------------------------------------------------------------+
    | Database | Create Database                                                |
    +----------+----------------------------------------------------------------+
    | abc001   | CREATE DATABASE `abc001` /*!40100 DEFAULT CHARACTER SET gbk */ |
    +----------+----------------------------------------------------------------+
    1 row in set (0.00 sec)

    4.D(Delete):删除

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

    5:使用数据库

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

    2.操作表

    1.C(Create):创建

    • 语法;
    create table 表名(
    列名1 数据类型1,
    列名2 数据类型2,
    ...
    列名n 数据类型n
    );

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

    • 数据类型:

    1.int:整数类型

    age int,

    2.double:小数类型

    score duoble (3,7)

    3.data:日期,只包含年月日,yyyy-MM-dd
    4.datatime:日期,包含年月日时分秒 ,yyyy-MM-dd HH:mm;ss
    5.timestamp:时间类型 包含年月日时分秒 yyyy-MM-dd HH:mm;ss

    如果将来不给这个字段赋值,或赋值为null,则默认使用当前的系统时间,来自动赋值

    6.varchar:字符串

    name varchar(20):姓名最大20的字符
    cainiao 7个字符 张三 2个字符
    • 创建表
    create table student(
    id int,
    name varchar(37),
    age int,
    score double(4.1),
    birthday data,
    insert_time timestamp
    );
    • 复制表:
    create table 表名 like 被复制的表名
    mysql> create table abc004 like abc;
    Query OK, 0 rows affected (0.15 sec)
    
    mysql> show tables;
    +------------------+
    | Tables_in_abc001 |
    +------------------+
    | ab001            |
    | abc              |
    | abc004           |
    +------------------+
    3 rows in set (0.00 sec

    2.R(Retrieve):查询

    • 查询某个数据库中所有的表名称
    show tables;
    • 查询表结构
    desc 表名;

    3.U(Update):修改

    • 1.修改表名
    alter table 表名 rename to 新的表名;
    mysql> alter table abc rename to abc002;
    Query OK, 0 rows affected (0.12 sec)
    
    mysql> show tables;
    +------------------+
    | Tables_in_abc001 |
    +------------------+
    | ab001            |
    | abc002           |
    | abc004           |
    +------------------+
    3 rows in set (0.00 sec)
    • 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 表名;//先判断再删除
    mysql> drop table abc002;
    Query OK, 0 rows affected (0.01 sec)
    
    mysql> show tables;
    +------------------+
    | Tables_in_abc001 |
    +------------------+
    | ab001            |
    | abc004           |
    +------------------+
    2 rows in set (0.00 sec)

    *客户端图形化工具:SQLYog

    小丑竟是我自己
  • 相关阅读:
    【基础算法-模拟-例题-*校长的问题】-C++
    【基础算法模拟+例题】-C++
    Chrome开发者调试工具 //TODO
    Javascript面试题&知识点汇总(持续汇总...)
    HTML面试题&知识点汇总(持续汇总...)
    零基础学习Web前端开发
    UML
    江西财经大学第一届程序设计竞赛 F
    江西财经大学第一届程序设计竞赛 E
    江西财经大学第一届程序设计竞赛 D
  • 原文地址:https://www.cnblogs.com/lspbk/p/14413982.html
Copyright © 2020-2023  润新知