DDL操作数据库和DDL操作数据表

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;
  • 练习:创建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;

 

 

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 IF EXISTS 表名;

-- 删除product3表,如果存在则删除
DROP TABLE IF EXISTS product3;

 

posted @   夫君  阅读(43)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示