DDL常用语句(一)
DDL常用语句(一)
- 操作数据库
- 操作表
- 约束
- 增
- 查
- 删
- 改
操作数据库
创建库:
create database 数据库名;
创建库是否存在,不存在则创建:
create database if not exists 数据库名;
查看所有数据库:
show databases;
查看某个数据库的定义信息:
show create database 数据库名;
修改数据库字符信息:
alter database 数据库名 character set utf8;
删除数据库:
drop database 数据库名;
使用指定数据库:
use 数据库名;
操作表
以下我以列名为字段名,便于理解。
约束
一种限制,对表的数据做出约束,确保其完整性和唯一性。
- mysql中约束主要有六种
- NOT NULL :非空约束,用于约束该字段的值不能为空。
- DEFAULT :默认值约束,用于约束该字段有默认值,约束当数据表中某个字段不输入值时,自动为其添加一个已经设置好的值。
- PRIMARY KEY:主键约束,用于约束该字段的值具有唯一性,至多有一个,可以没有,并且非空。
- UNIQUE:唯一约束,用于约束该字段的值具有唯一性,可以有多个,可以没有,可以为空。
- CHECK:检查约束,用来检查数据表中,字段值是否有效。
- FOREIGN KEY:外键约束,外键约束经常和主键约束一起使用,用来确保数据的一致性,用于限制两个表的关系,用于保证该字段的值必须来自于主表的关联列的值。在从表添加外键约束,用于引用主表中某列的值。
增
创建表:
create table 表名(列名1 类型 [约束],列名2 类型 [约束],列名3 int|bigint [约束] [auto_increment],...[constraint 外键名] foreign key(你的外键列名) references 被添加外键表名(设为被添加外键的列名) [外键中的级联关系])[engine=innoDB|myISAM default charset=字符集];-- 注:[]里的内容为可加可不加,或根据需要加
-- [engine参数用来设置引擎类型,常用的有innoDB和myISAM引擎]
-- 外键中的级联关系:[ON DELETE RESTRICT | CASCADE | SET NULL | NO ACTION | SET DEFAULT][ON UPDATE RESTRICT | CASCADE | SET NULL | NO ACTION | SET DEFAULT]RESTRICT:限制外表中的外键改动,默认值CASCADE:跟随外键改动SET NULL:设空值SET DEFAULT:设默认值NO ACTION:无动作,默认的
复制表:
-- 只复制表结构及约束,但不复制数据
create table 复制出的表名 like 原表名;
-- 复制表结构及数据,但不复制约束
create table 复制出的表名 as select * from 原表名;
添加表的一列
alter table 表名 add [column] 列名 列类型 [约束] [first|after 某列名]; -- 注:[]里的内容为可加可不加,或根据需要加
添加主键和唯一标识
alter table 表名 add PRIMARY KEY(列名); alter table 表名 add UNIQUE KEY(列名);
添加外键约束
-- 自己指定外键的名字(删除外键需要外键的名字) alter table 表名 add constraint 外键名 foreign key(设为外键的列名) REFERENCES 外表表名(对应的表的主键列名); -- 例:alter table student add constraint stu_1 foreign key(id) references class(id);-- 系统自动生成一个外键的名字(用'show create table 表名'查看外键名字) alter table 需要添加外键表名 add FOREIGN KEY 需要添加外键表名(设为外键的列名) REFERENCES 被添加外键表名(设为被添加外键的列名); -- 例:alter table student add foreign key student(id) references class(id);
注:一个表可以又多个外键,每个外键必须参照另一个主键;被外键约束的列,取值必须参照其主表列中的值(通常先创建主表,再创建从表)
查
查看表结构
desc 表名;
查看创建表的SQL语句
show create table 表名;
删
删除表:
drop table 表名;
drop table if exists 表名;
删除表的一列
alter table 表名 drop [column] 列名;
删除表的列的约束
删除主键
alter table 表名 drop primary key;
删除外键
alter table 表名 drop foreign key 外键名;
删除索引
alter table 表名 drop index 索引的列名;
改
修改表名:
alter table 表名 rename [to] 新表名;
-- 注:[]里的内容为可加可不加,或根据需要加
rename table 表名 to 新表名;
修改表的列名的类型(不可修改列名)
alter table 表名 modify [column] 列名 列类型 [约束] [first|after 某列名]; -- 例:alter table teacher modify name varchar(10); alter table 表名 change [column] 列名 列名 列类型 [约束] [first|after 某列名]; -- 例:alter table teacher change name name varchar(11) first;
修改表的列名(可修改列名)
alter table 表名 change [column] 原列名 新列名 列类型 [约束] [first|after 某列名]; -- 例:alter table teacher change id teacher_id varchar(11);
注:change也可以用来修改列的属性,但列名要写两次,所以只修改列的属性时用modify比较方便,修改列名用change
DDL常用语句(一)相关推荐
- DDL、DML介绍及常用语句
一.介绍 DDL(Data Definition Language 数据定义语言) DDL用于操作对象和对象的属性,这种对象包括数据库本身,以及数据库对象,像:表.视图等等,DDL对这些对象和属性的管 ...
- mysql 查询和修改组合_## 超详细MySQL常用语句,增删查改
## MySQL常用语句,增删查改,安装配置mysql服务 ***#新手博客,应届生,谢谢支持哟 记得点赞关注哟*** ***-----sql常见命令:--------*** 安装服务:mysqld ...
- MySQL数据库增删改查常用语句详解
MySQL数据库增删改查常用语句详解 一 MySQL数据库表结构 1.1 常见数据类型 1.2 常用约束类型 1.3 MySQL存储引擎 二 DDL语句:数据定义语句 2.1 修改数据库密码 2.1. ...
- sqlserver2012常用语句
sqlserver2012常用语句 /创建数据库/ create database zhjdb on primary ( name='zhj_dbz', filename='E:\gongzuo_hc ...
- MySQL常用语句(CURD)
文章目录 一.数据库定义语言(DDL) 1.1 库操作 1.2 表操作 二.数据库操纵语言(DML) 2.1 插入 insert 2.2 修改 update 2.3 删除 delete 三.数据库查询 ...
- VBA经典常用语句400句
VBA经典常用语句400句 定制模块行为 (1) Option Explicit '强制对模块内所有变量进行声明 Option Private Module '标记模块为私有,仅对同一工程中其它模块有 ...
- python基础常用语句-Python基本语句
在学习W3Cschool python高级教程之前,大家接触过许多python语句,在本文中我们将Python一些基本的常用语句做了汇总,并简单介绍下这些python常用语句的用途和标准格式,放在一起 ...
- python 语言-Python语言的一些基本常用语句
在学习玩蛇网python教程高级篇之前,大家接触过许多python语句,在本文中我们将Python一些基本的常用语句做了汇总,并简单介绍下这些python常用语句的用途和标准格式,放在一起方便大家参考 ...
- CSDN的Markdown编辑器常用语句
CSDN的Markdown编辑器还是挺好用的,比那个富文本编辑器用起清爽得多,那个富文本编辑器常常是一个换行符留很宽的距离,而且插入图片.代码等都没有Markdown编辑器方便.Markdown编辑器 ...
最新文章
- 《大数据、小数据、无数据:网络世界的数据学术》一 导读
- POJ 3414 Pots(罐子)
- 【Android FFMPEG 开发】FFMPEG 读取音视频流中的数据到 AVPacket ( 初始化 AVPacket 数据 | 读取 AVPacket )
- eclipse mac 下载php文件夹,PHP Pydev Eclipse (linux or mac)
- android通过数组,流播放声音的方法,音频实时传输
- node工程默认url_node.js处理url常用方法
- Rxjs 的一些学习笔记
- 【TensorFlow】随机训练和批训练的比较与实现
- 2017年机器之心北京开会_2017年成为机器人的感觉
- Basic INFO: InstallShield中如何获取所调用Exe的返回值
- asp.net文本编辑器FCKeditor使用方法详解 - 橙色大地 - 博客园
- Python实现RFM模型
- EPLAN P8.2.7 学习版安装教程(适用于 Win10 64位)
- ETL开发工具Kettle下载安装环境搭建及使用教程
- vue基础(三)——vue实例化对象
- windows系统中nul文件删不掉,文件夹无法删除出现无法删除nul参数不正确,MS-DOS命令无效,等各种难以删除的文件或者文件夹
- linux 内存强度测试软件,Linux系统性能测试工具(一)——内存带宽测试工具mbw...
- 蚂蚁区块链的新计划与BAT的新动向 |链捕手
- android高德地图截屏,高德地图-地图截屏
- java线程状态——java线程状态图
热门文章
- linux中文件重命名_如何在Linux中重命名文件?
- HTML基础标签:标题段落空格链接图像强调
- Android studio 底部的状态栏不见了如何显示
- python源码打包exe、exe反编译
- Microsoft .NET Framework 4.5.2:NDP452-KB2901907-x86-x64-AllOS-ENU下载地址
- 对未来计算机的畅想英语50个单词,《英语2》作业
- mysql update 排他锁_数据库:Mysql中“select ... for update”排他锁分析
- python爬取“舔狼”语录-助你520之前找到girlfriends
- T+Cloud专属云18.0安装
- 华为p50是鸿蒙系统,华为p50是鸿蒙系统吗_华为p50是不是鸿蒙系统