DDL数据定义语言

本节涉及MySQL关键字:create、alter(rename,add,chang,modify,drop)、drop、delete、truncate等。

-- 创建表:
-- 数据类型:int,date,varchar(size),[ decimal(5,2),小数点后两位]
格式:create table tableName
               (
                  columnName datatype,
                  columnName datatype,
                  .......
);

拷贝表格:

格式 :  create table tableName
           as
           subquery;或者在subquery后加(where 1=2),表示只保留格式

创建表实例: create table supermarket
                         (
                            market_id int,
                            market_name varchar(50),
                            address varchar(200),
                            contact varchar(15),
                            manager int
                          );

拷贝表实例:create table supermarkets_copy
                 as
                 select *
                 from supermarkets;

-- 修改表:alter
       -- 修改表名
             格式:  alter table tableName
                             rename to new_tableName;

实例:   alter table supermarket

rename to supermarkets;

-- 添加列
            格式 : alter table tableName
                             add columnName defined [ FIRST | AFTER column_name ];
                       alter table tableName
                             add columnName defined [ FIRST | AFTER column_name ],
                             add columnName defined [ FIRST | AFTER column_name ],
                             ...;

实例:  alter table supermarkets

add kind int;

-- 修改列
        -- 修改列名
            格式:  alter table tableName
                            change column old_name new_name defined;

实例:  alter table supermarkets
                                 change kind category varchar(10);

-- 修改列定义
            格式:  alter table tableName
                              modify columnName new_defined [ FIRST | AFTER column_name ];
                      alter table tableName
                              modify columnName new_defined [ FIRST | AFTER column_name ],
                              modify columnName new_defined [ FIRST | AFTER column_name ],
                              ....;

实例: alter table supermarkets

modify category int;

-- 删除列

格式;   alter table tableName
                              drop column columnName;

实例: alter table supermarkets

drop column category;

-- 删除表
           格式: drop table tableName;

--删除表的内容,保留格式:

格式:delete from tableName;  后面可以加限制条件where1=2或1=1。

-- truncate: 清空表(删除后无法返回上一步)
                  格式:truncate table tableName;
                                 select * from emp;

-- 创建表上的约束
-- 主键约束:标志行的唯一性,只能有一个,而且不能为空
-- 外键约束:建立两张表的关联关系
-- 唯一约束:标志其唯一性,但数量不限的,可以为空
-- 非空约束:必填项

-- 默认

如果创建表的时候添加约束,可直接去掉alter语句

创建表上的约束, (主键,外键,唯一)约束用add constraint,

(非空,默认)约束用modify.

格式: alter table tableName
                                   add constraint_defination;
                     实例: alter table supermarkets
                                     drop primary key;

主键约束:  primary key

实例:alter table supermarkets
                                  add constraint pk_market_id primary key(market_id);

唯一约束: unique

实例: alter table supermarkets
                                  add constraint uq_market_name unique(market_name);

外键约束:foreign key
                     实例:  alter table emp
                                    add constraint fk_market_id foreign key (market_id)
                                    references supermarkets(market_id);

两个外键的约束实例:  add constraint fk_market_id_customer_id foreign key (market_id,customer_id)
                                    references supermarkets(market_id),customer(customer_id);

delete from supermarkets where market_id = 1; -- 维护数据的完整性

非空约束:not null

实例: alter table supermarkets
                                     modify market_name varchar(50) not null,
                                     modify address varchar(200) not null;

默认值:

实例:  alter table supermarkets
                                     modify market_name varchar(50) not null,
                                     modify address varchar(200) not null default '苏州店';

-- 视图
     -- 创建或者更新视图
             格式:-- create or replace view viewName
                     -- as
                     -- subquery;

实例: create view cust_view
                         as
                         select customer_id,customer_name,address,province,city,sale_employee_id,credit_limit
                         from customer;

select *
                         from cust_view;

实例: create or replace view purchase_view
                        as
                        select `order`.order_number,customer.customer_name,product.product_name,buy_number,format(order_detail.price,2)                                   fmt_price,format(order_detail.total_money,2) fmt_total_money
                        from `order`
                        left join order_detail on `order`.order_id = order_detail.order_id
                        left join customer on `order`.customer_id = customer.customer_id
                        left join product on order_detail.product_id = product.product_id;

select *
                        from purchase_view
                        where order_number = '321154103';

-- 删除视图
             格式:-- drop view [if exists] view_name;

实例:drop view if exists cust_view;

-- 现有一个商店的数据库,记录客户及其购物情况,由下面三个表组成:
-- 商品goods(商品号goodsId,商品名goodsName,单价unitprice,商品类别category,供应商provider);
-- 客户customer(客户号customerId,姓名name,地址address,电邮email,性别sex,身份证cardId);
-- 购买purchase(客户号customerId,商品号goodsId,购买数量nums);
-- 请用SQL语言完成下列功能:
-- 1. 建表,在定义中要求声明:
-- (1). 每个表的主外键;
-- (2). 客户的姓名不能为空值;
-- (3). 电邮不能够重复;
-- (4). 客户的性别默认是男;
create table goods
(
      goodsId int not null,
      goodsName varchar(50),
      unitprice decimal(5,2),
      category varchar(30),
      provider varchar(30),
      constraint pk_goodsId primary key(goodsId)
);

create table customer
(
      customerId int not null,
      name varchar(50),
      address varchar(200),
      email varchar(20),
      sex varchar(6),
      cardId varchar(20),
      constraint pk_customerId primary key(customerId)
);

create table purchase
(
      customerId int not null,
      goodsId int not null,
      nums int,
      constraint pk_customerId_goodsId primary key(goodsId,customerId),
      constraint fk_customerId foreign key(customerId)
      references customer(customerId),
      constraint fk_goodsId foreign key(goodsId)
      references goods(goodsId)
);

alter table customer
    modify name varchar(50) not null;

-- 约束
-- 主键:primary key
-- 外键:foreign key
-- 唯一:unique
-- 非空:not null

alter table customer
add constraint uq_email unique(email);

alter table customer
modify sex varchar(6) default '男';

转载于:https://www.cnblogs.com/wanglisong/p/6903162.html

mysql DDL数据定义语言相关推荐

  1. 七、MySQL DDL数据定义语言 学习笔记(库和表的创建、修改、删除详解 + 强化复习)

    DDL语言 数据定义语言 库和表的管理: 一.库的管理: 创建.修改.删除 二.表的管理: 创建.修改.删除 创建: create 修改: alter 删除: drop 一.库的管理 1.库的创建: ...

  2. MySQL基础--(2) [SQL(结构化查询语言), DDL(数据定义语言)]

    目录 Sql(结构化查询语言) sql的概念以及特点 DDL(数据定义语言) 创建,删除,修改数据库. 数据库存储数据的特点 数据库表 数据库表中数据的数据类型 数据库表中数据的约束 创建表 设置修改 ...

  3. MySQL04:DDL数据定义语言

    DDL数据定义语言 库和表的管理 一.库的管理 1.库的创建 语法: create database [if not exists]库名; 案例:创建库Books CREATE DATABASE IF ...

  4. 数据库DDL数据定义语言

    文章目录 DDL数据定义语言 1. 数据库相关操作 1.1 查看DBMS中已有的数据库 1.2 新建一个数据库 1.3 查看数据库信息 1.4 删除数据库 1.5 使用一个数据库(切换一个数据库) 2 ...

  5. 【数据库基础知识二】数据库DataBase(简称DB),数据库基本概念、DDL:数据定义语言,用来操作数据库对象、DML:数据操作语言,用来操作表中的数据

    14天阅读挑战赛 目录 数据库基本概念 数据库DataBase(简称DB) 数据库管理系统Database management system(简称DBMS) 如何操作DBMS? 连接数据库的方式: ...

  6. sql 两大类 DDL数据定义语言 和DCL数据控制语言

    SQL分为五大类: DDL:数据定义语言   DCL:数据控制语言     DML:数据的操纵语言  DTL:数据事务语言  DQL:数据查询语言. DDL (date definition lang ...

  7. 大数据技术之Hive 第4章 DDL数据定义语言

    第4章 DDL数据定义语言 4.1 创建数据库 CREATE DATABASE [IF NOT EXISTS] database_name [COMMENT database_comment] [LO ...

  8. MySQL→数据库、启动连接数据库、SQL→DDL数据定义语言及数据类型、DML数据操作语言、DQL数据查询语言、数据库约束→主键、唯一、非空、默认、外键、SQL、三大范式及一多关系、视图、内外连接

    MySQL连接退出命令 mysql –uroot -proot mysql –h127.0.0.1 –uroot -proot mysql --host=localhost --user=root - ...

  9. MySQL的DDL(数据定义语言)

    笔记本 SQL语言一共分为4大类: DQL(数据查询语言). DDL(数据定义语言). DML(数据操纵语言). DCL (数据控制语言)     本文就介绍的是其中的DDL(Data Definit ...

最新文章

  1. MySQL数据库提升篇-----触发器
  2. 32位centos下安装jdk1.7报Permission denied处理方式
  3. 一起谈.NET技术,在没有安装 ASP.NET MVC3 的服务器上运行 MVC3
  4. php连接数据库提示could not find driver 问题解决
  5. Hibernate4实战 之 第四部分:关系映射
  6. Ubuntu20.04更换为国内源
  7. VUE.JS 组件化开发实践
  8. sip协议详解_SIP协议详解-INVITE消息发送过程
  9. liveness 生存性/活性
  10. listView多布局
  11. linux 远程修改时间,linux 获取远程系统时间的例子
  12. H.266/VVC代码学习38:VTM6.0帧间merge预测(xCheckRDCostMerge2Nx2N)
  13. Ubuntu18.04 下载与安装(阿里云官方镜像站)
  14. 如何搭建企业自己的邮箱服务器,企业如何搭建属于自己的企业邮箱
  15. template应用之Policies和Policy Classes
  16. 袋鼠云研发手记 | 袋鼠云EasyManager的TypeScript重构纪要
  17. 代理IP 有效性检测
  18. Unity读取项目文件夹图片,PC端
  19. 【移动安全实战篇】————3、Android应用程序破解入门
  20. DP算法:动态规划算法

热门文章

  1. 怎样修改iis 服务器日期,怎么在IIS里设置服务器端缓存时间?
  2. java深拷贝和浅拷贝介绍
  3. GC的作用域,方法区和堆
  4. 查看docker容器日志
  5. matlab信号频率分析实验报告,信号抽样实验报告
  6. 手机技巧:是否应该一次性给手机充电到100%?看完你就明白了!
  7. Linux文件压缩命令笔记
  8. Linux实现MYSQl数据库的定时备份
  9. C#实现图片的无损压缩
  10. mysql kill_Mysql使用kill命令解决死锁问题(杀死某条正在执行的sql语句)