mysql DDL数据定义语言

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/283520.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

piwik抓取用户交互行为

2019独角兽企业重金招聘Python工程师标准>>> https://github.com/matomo-org/matomo-sdk-ios/tree/version-3 http://piwik.org 首先下载demo,把文件拖到项目中去,在AppDelegate.m文件填写piwik服务器的URL和编号; 例如&#xff1…

k8s 读书笔记 - kubernetes 基本概念和术语(下)

DevOps前言上一篇文章 中,我们介绍了 k8s 中的 Master、Node、Pod、Label、RC & RS、Deployment、HPA & VPA、DaemonSet 这些资源对象信息,接下来我们继续介绍 k8s 中常用的资源对象。StatefulSet在 k8s 系统中,Pod 的管理对象 RC、D…

java数据类型后加三个点...

2019独角兽企业重金招聘Python工程师标准>>> 从Java5开始,Java语言对方法参数支持一种新写法,varargs(可变长度参数列表),其语法就是类型后跟...,表示此处接受的参数为0到多个Object类型的对象&…

ARP病毒查找与防范

ARP病毒查找与防范 笔者是一名大学生,学的是网络project。自然接触的网络就多了。当然免不了做些坏事,嘿嘿。 比如我经经常使用在网上学习的知识去測验一下我自己的电脑或者同学啥的,都是一些小打小闹。无伤大雅,知道有一天。。。…

手把手教你用 Jenkins 自动部署 SpringBoot!

1. 什么是 CI/CD 1.1 CI(Continuous Integration) 1.2 CD(Continuous Delivery/Continuous Deployment) 2. 什么是 Jenkins 3. 准备工作 3.1 整体规划 3.2 准备代码 3.3 准备服务器 4. 搭建 Jenkins 5. 安装插件 6. 配置 …

bondat蠕虫传播与对抗

转载来自:http://www.mottoin.com/109730.html (1)可移动磁盘传播手段:隐藏U盘文件,创建快捷方式指向病毒bat文件。Bondat蠕虫主要通过可移动磁盘传播,并借助可移动磁盘中的文件隐蔽自身。Bondat蠕虫会检索…

vim 编译 Python 代码提示配置

2019独角兽企业重金招聘Python工程师标准>>> .vim 和.vimrc 拷贝到根目录 注意根目录下默认是没有.vim的,所以拷贝.vim 没问题,但是拷贝.vimrc 之前需要把原来的.vimrc备份 两个文件下载:http://pan.baidu.com/s/1eRRhakM 转载于:…

天天写日记争当文艺青年 2014-5-13

学校的一些检查貌似要和这边的外包项目冲突了。比較纠结&#xff0c;按这个情况下去这个项目2周肯定解决不了。>_<一个破系统&#xff0c;拖来拖去的&#xff0c;居然能拖到2周啊&#xff0c;纠结&#xff0c;要是学校没事我还能坐打酱油拿工资。我果然还是最擅长风骚的打…

[转]Pinia与Vuex的对比:Pinia是Vuex的良好替代品吗?

文章目录 介绍设置 Pinia 设置Vuex 设置使用 Pinia使用Vuex使用社区和生态系统的力量学习曲线和文档GitHub 评分性能比较 Pinia 2 和 Vuex 4Vuex 和 Pinia 的优缺点何时使用Pinia&#xff0c;何时使用Vuex介绍 Pinia 是 Vue.js 的轻量级状态管理库&#xff0c;最近很受欢迎。它…

使用Network Recycle Bin启用映射网络驱动器上的回收站

前言 在内网环境中我们经常会使用NAS或者Samba在Windows中映射网络驱动器&#xff0c;方便局域网用户实时共享交换数据。但当存储在网络或映射网络上的任何文件被删除时&#xff0c;该文件将被永久删除。它不会去到本地计算机回收站&#xff0c;也不会去到服务器的回收站&#…

Vite执行npm run serve后浏览器报Cannot GET /

在使用 Vite 时&#xff0c;想像以前执行 npm run serve 一样&#xff0c;查看生产环境的应用。 在执行后并未发现异常&#xff0c;但在浏览器访问时&#xff0c;显示 Cannot GET /&#xff0c;说是找不到根目录。 在网上查找解决方案&#xff0c;发现并没有结果。可能是还没有…

1.2开发文档简读,了解全貌.mp4

转载于:https://www.cnblogs.com/ZHONGZHENHUA/p/6910254.html

开源:一款开源的高颜值现代化桌面美化工具

背景在日常的工作或学习中&#xff0c;难免会有一些临时的文件夹&#xff0c;文件&#xff0c;应用&#xff0c;出现在你的桌面&#xff0c;但是呢你又不确定它是不是哪一天会突然用到&#xff0c;这样一天又一天&#xff0c;直至你的电脑桌面是一片狼藉&#xff0c;满屏的文件…

10月31日,面试题小结

localStorage和sessionStorage localStorage和sessionStorage一样都是用来存储客户端临时信息的对象。 他们均只能存储字符串类型的对象&#xff08;虽然规范中可以存储其他原生类型的对象&#xff0c;但是目前为止没有浏览器对其进行实现&#xff09;。 localStorage生命周期…

软件工程—团队作业1

软件工程—团队作业1 团队称号&#xff1a;Thanos &#xff08;灭霸&#xff0c;超叼的一个动漫人物&#xff09; 团队成员&#xff1a; 队长 成凯 1600802002 博客链接&#xff1a; http://www.cnblogs.com/ck03/ 党康 1600208004 博客链接&#xff1a; http://www.cnblogs…

Nginx单服务器部署多个网站,域名

Nginx部署多网站 一个反向代理服务器&#xff0c;集中处理请求&#xff0c;转发到其他服务器上 一、单网站单服务器的Nginx配置 server {listen 80; # 监听80端口server_name www.google.com google.com; # 带www域名和不带www域名都指向该网站资源location / {root /…

Comparable、Iterator接口和Collections类的实现方法

Comparable接口&#xff1a; 此接口强行对实现它的每个类的对象进行整体排序。这种排序被称为类的自然排序&#xff0c;类的 compareTo 方法被称为它的自然比较方法。 实现此接口的对象列表&#xff08;和数组&#xff09;可以通过 Collections.sort&#xff08;和 Arrays.sort…

k8s 读书笔记 - kubernetes 基本概念和术语(上)

k8s 资源控制系统k8s 中大部分概念如&#xff1a;Node、Pod、Replication Controller、RS、Deployment、Service 等都可以被看作一种资源对象&#xff0c;激活所有的资源对象都可以通过 k8s 提供 kubectl 工具&#xff08;或者 API 编程调用&#xff09;执行 CRUD 等操作并将其…

CentOs6.5下安装svn

1、检查是否已安装 rpm -qa subversion 1、1如果需要卸载旧版本&#xff08;如果想在一台机器安装不同svn&#xff0c;切记不要执行此步骤&#xff01;&#xff01;&#xff01;&#xff09; yum remove subversion 2、安装 yum install subversion 3、检查安装是否成功 svnser…

奉献一波鹅厂的面经!纪念最后的校招!| 掘金技术征文

薪资:special offer(已收到正式offer) 个人情况:主要做后台研发方向(c/c&#xff0b;&#xff0b;/java)都用过&#xff0c;末流985计算机专业硕士&#xff0c;有过长达一年半的实习工作经历。计算机基础&#xff0c;算法&#xff0c;项目都还马马虎虎。之前秋招有运气好有拿到…