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 '男';
mysql DDL数据定义语言的更多相关文章
- DDL数据定义语言
DDL数据定义语言 (一)概述 DDL(Data Definition Language):数据定义语言,用来定义数据库对象,库.表.列等:创建.删除.修改 库,表结构.主要分为操作数据库的DDL和操 ...
- oracle学习笔记(三) DCL 数据控制语言与 DDL 数据定义语言
DCL 数据控制语言 Data control language 之前说过的授权和收权利语句 grant, revoke DDL 数据定义语言 Data define language create ...
- sql 两大类 DDL数据定义语言 和DCL数据控制语言
SQL分为五大类: DDL:数据定义语言 DCL:数据控制语言 DML:数据的操纵语言 DTL:数据事务语言 DQL:数据查询语言. DDL (date definition lang ...
- Hive 官方手册翻译 -- Hive DDL(数据定义语言)
Hive DDL(数据定义语言) Confluence Administrator创建, Janaki Lahorani修改于 2018年9月19日 原文链接 https://cwiki.apache ...
- 【MySQL】DDL数据定义语言的基本用法create、drop和alter(增删改)
DDL 的基础语法 文章目录 DDL 的基础语法 对数据库进行定义 对数据表进行定义 创建表结构(数据表) 设计工具 修改表结构 小结 参考资料 简单复习一波 SQL必知必会 DDL 的英文全称是 D ...
- MySQL之数据定义语言(DDL)
写在前面 本文中 [ 内容 ] 代表啊可选项,即可写可不写. SQL语言的基本功能介绍 SQL是一种结构化查询语言,主要有如下几个功能: 数据定义语言(DDL):全称Data Definition L ...
- Oracle language types(语言种类) 表的相关操作 DDL数据定义语言
数据定义语言 Data Definition Language Statements(DDL)数据操纵语言 Data Manipulation Language(DML) Statements事务控制 ...
- MySQL之DDL数据定义语言:库、表的管理
库的管理 常用命令 #创建库 create database if not exists 库名 [ character set 字符集名]; create database if not exists ...
- DDL 数据定义语言
目录 创建数据库(CREATE) 删除数据库(DROP) 修改数据库(ALTER) 创建数据表(CREATE) 数据表的数据属性 数据类型属性(Type) 其他属性(Null,Key,Default, ...
随机推荐
- odoo开发笔记 -- docker容器打包到另一台服务器部署异常
场景描述: odoo.conf文件指定了数据库配置,如果docker打包的时候,没注意,新环境启动该镜像,会导致并没有连接本地的数据库,如果你配置文件中的数据库地址,当前这台服务器也可以访问到,那么问 ...
- JS的base64编码解码
Unicode问题解法 有个小坑是它只支持ASCII. 如果你调用btoa("中文")会报错: Uncaught DOMException: Failed to execute ' ...
- exe4j 打包jar包程序,inno setup complier打包所有
关于库: jar包中对于引用第三方库的话,需要再exe4j中引用. rxtx http://rxtx.qbang.org/wiki/index.php/Download
- Html JavaScript网页制作与开发完全学习手册
Html JavaScript网页制作与开发完全学习手册 篇 HTML技术章 HTML入门 1.1 什么是HTML 1.1.1 HTML的特点 1.1.2 HTML的历史 1.2 HTML文件的基本结 ...
- JAVA SpringBoot2 整合 ueditor 的 并实现前后端分离
1,下载 jsp 版本的 百度编辑器,点击此处下载 2,解压文件,解压后目录如下 3,我们将 jsp 目录暂时移动到别的地方,剩下的文件作为一个 H5 前端项目使用,笔者这边导入到 idea 进行开发 ...
- 【Spring Boot学习之十二】mybatis3 分页打印sql日志
环境 eclipse 4.7 jdk 1.8 Spring Boot 1.5.2 参考: mybatis手册 Mybatis的插件 PageHelper 分页查询使用方法MyBatis中Like语句使 ...
- 解决chrome浏览器插件开发者模式每次启动要确认弹出框的问题
在日常工作中,我们经常会用到一些浏览器插件,有些插件因为没上架到浏览器的应用商店,只能以开发者模式运行,但是chrome浏览器出了限制,每次重新启动浏览器的时候,就会弹出该插件是否要禁止运行的对话框, ...
- iframe高度自适应的方法
第一种:iframe内容未知,高度可预测 这个时候,我们可以给它添加一个默认的CSS的min-height值,然后同时使用JavaScript改变高度.常用的兼容代码有: // document.do ...
- php中让数组顺序随机化,打乱顺序等
php中有很多排序的函数,sort,rsort,ksort,krsort,asort,arsort,natcasesort,这些函数用来对数组的键或值进行这样,或那样的排序. 可以终究有时候还需要一些 ...
- 大数据之路【第十二篇】:数据挖掘--NLP文本相似度
一.词频----TF • 假设:如果一个词很重要,应该会在文章中多次出现 • 词频——TF(Term Frequency):一个词在文章中出现的次数 • 也不是绝对的!出现次数最多的是“的”“是”“在 ...