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, ...
随机推荐
- 通过case when实现SQL 多个字段合并为一列值
with tt as (select A.GID, CASE WHEN A.IsApp='是' THEN 'APP' else '' end 'APP', CASE WHEN A.IsSmallApp ...
- Linux(CentOS)安装JDK1.8
1.JDK的RPM包安装方式: https://www.cnblogs.com/hunttown/p/5450463.html 2.JDK的tar包安装方式: 首先,从SUN公司网站下载最新的JDK ...
- Superset配置impala数据源
1.安装impyla pip install impyla 2.在superset页面配置如下,此时impala是有kerberos认证的 impala://xxxx:xx/default?auth_ ...
- EasyNVR网页摄像机无插件H5、谷歌Chrome直播方案之使用RTSP流判断摄像机设备是否在线以及快照抓取
背景分析 熟知EasyNVR产品的小伙伴都知道,通过纯Web化的交互方式,只要配置出摄像机的IP.端口.用户名.密码等信息,就可以将地址进行通道配置完成,即可将设备接入.如果设备支持Onvif协议,E ...
- 和至少为K的最短子数组
返回 A 的最短的非空连续子数组的长度,该子数组的和至少为 K 如果没有和至少为 K 的非空子数组,返回 -1 . 示例 1: 输入:A = [1], K = 1 输出:1 示例 2: 输入:A = ...
- win7安装 truffle
1. 最近有个项目需要用到区块链,第一次玩不太熟悉.现在电脑上安装个 truffle,作为一个区块链节点 2. 安装 truffle ,之前需要安装其他几个软件 truffle的安装需要首先装有:n ...
- 在 Hibernate 中inverse的属性
hibernate配置文件中有这么一个属性inverse,它是用来指定关联的控制方的.inverse属性默认是false,若为false,则关联由自己控制,若为true,则关联由对方控制.见例子: 一 ...
- Gerrit - 代码评审工具Gerrit简介与安装
1 - 前言 Code Review 代码评审是指在软件开发过程中,对源代码的系统性检查,改进代码质量,查找系统缺陷,保证软件总体质量和提高开发者自身水平. 简单的说,Code Review是用来确认 ...
- 验证Prometheus alertmanager邮件发送
新环境上配置alertmanager时出现了“Client was not authenticated to send anonymous mail during MAIL FROM”错误,但老环境上 ...
- jdbc(mysql)数据库连接
0.将驱动引入项目 在项目根目录新建文件夹lib,把数据库驱动mysql-connector-java-5.1.7-bin.jar放入该文件夹. 右键点击项目名称->properties-> ...