数据库DDL
自己对数据库的整理,也是对自己知识的梳理
SQL ( Structure query language ) 结构化查询语言
SQL语言分为4个部分
- 1、DDL(Data Definition Languages)语句:数据定义语言,主要负责定义字段,数据库,表,列,索引等。常用的语句主要包括,create、drop、alter等。
- 2、DML(Data Manipulation Languages)语句:数据操作语言,主要负责添加、删除、更新和查询数据库记录,并检查数据的完整性。常用的语句包括,insert,delete,update,select等
- 3 、DQL(data question language) 查询
- 4、 DCL(Data control Languages)语句:数据控制语句,主要负责控制不同数据段直接的许可和访问,定义数据库,表,字段,用户的访问权限和安全级别,常用的语句包括,grant revoke等。
DDL语句
DDL 主要是对数据库内部对象进行创建,删除,修改等的
操作语句。(对库和表结构的操作)
和DML的区别:DML时针对表内部数据操作,而不涉及表的定义结构修改。(对数据的操作)
DCL:主要是权限管理,一般由管理员使用,开发人员很少使用
1. 库的操作
- 命令行输入mysql -u root -p 输入密码进入
每条SQL语句结束,用‘;’,或者‘\g’ 表示结束
创建数据库 test1
CREATE DATABASE test1;
结果:Query ok,1 row affected (0.00 sec) 表示创建成功
如果test1库已经存在会返回一下结果
ERROR 1007 (HY000): Can't create database 'test1'; database exists
想查看系统中有哪些库:
show database;
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sakila |
| sys |
| test1 |
| world |
+--------------------+
7 rows in set (0.00 sec)
从上面结果可以看到有很多库,其他库都是系统内置,我们暂时可以不去理会
进入到指定的数据库中:USE test1
切换数据库 USE 库名
mysql> USE test1;
Database changed
查看当前库中的所有的表
要查看指定库中的表 必须使用USE切换到指定的库里然后执行
show tables;
mysql> show tables;
Empty set (0.00 sec)
test1库是刚创建的库,里面什么都没有 提示Empty
删除库
drop database 库名
mysql> drop database test1;
Query OK, 0 rows affected (0.23 sec)
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sakila |
| sys |
| world |
+--------------------+
6 rows in set (0.00 sec)
执行完命令我们在通过 show databases; 查看系统中所有的库发现test1没有了
注意:数据库删除后,下面所有的表数据都会全部删除,所以删除前一定要慎重并做好数据备份
库操作总结:
- 查看所有库: show databases;
- 创建库: CREATE DATABASE 库名
- 切换库: USE 库名
- 查看当前库中所有的表: show tables;
2.表操作
查看当前表结构: desc 表名;
查看建表语句: show create table 表名;
创建表:
cerate table class(
id int(10) unsigned not null auto_increment primary key,
cname varchar(50)
)default charset=utf8
class 为表名
id 和 cname 是字段名,列名
int(10) varchar(50) 字段类型
unsigned not null ... 是字段约束
查看表结构:
desc 表名
mysql> desc class;
+-------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+------------------+------+-----+---------+----------------+
| id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| cname | varchar(30) | YES | | NULL | |
+-------+------------------+------+-----+---------+----------------+
2 rows in set (0.00 sec)
查看建表语句:
mysql> show create table class\G;
*************************** 1. row ***************************
Table: class
Create Table: CREATE TABLE `class` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`cname` varchar(30) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
1 row in set (0.00 sec)
ERROR:
No query specified
删除表:
mysql> drop table class;
Query OK, 0 rows affected (0.00 sec)
修改表结构:
对于已经建立好的表,尤其是有大量数据的表,如果需要做一些结构上的修改,可以先将表删除,然后重新建表,但是这样做需要做一些而外的工作,如果有服务正在访问,对服务也会产生影响
所以大多数情况下使用下面的命令修改
alter table 表名 modeify 字段名 字段类型和约束
添加字段:
alter table 表名 add 新字段名 字段类型和约束
删除字段;
alter table 表名 drop 字段名
修改字段名:
alter table 表名 change 旧字段名 新字段名 字段类型和约束
注意:modify 和 change 都可以修改字段 不同的是 change 后面必须写两次字段名
指定字段添加的位置:
前面添加字段都是将字段默认添加到最后
如果我向将字段添加到最前面
alter table class add 字段名 字段类型和约束 first
如果我想将字段放到指定字段的后面
alter table class add 字段名和字段约束 after 指定的字段名
修改表名
alter table class rename 新表名
表操作总结:
创建表
查看表结构
删除表
修改表结构
修改表名
DDL语句 库和表的操作
数据库DDL的更多相关文章
- 数据库DDL审计
一.为什么需要数据库DDL审计? DDL在生产系统中扮演非常重要的作用. 1)首先从业务角度来说,DDL可能意味着表结构变更,意味着新的版本即将发布,是个重要的时刻. 2)其次从运维角度来说,DDL尤 ...
- 数据库DDL语句书写规范
数据库DDL语句书写规范 1.SQL语句编写说明编写SQL语句应遵循统一的规范,包括大小写.空格.换行.缩进等等,只有完全一样的SQL才能在数据库中共享,从而减少硬解析. 字段类型.长度:根据数据情况 ...
- 数据库DDL、DML、DCL、DQL、DPL、CCL的全称和使用
数据库DDL.DML.DCL.DQL.DPL.CCL的全称和使用 简介: SQL (Structure Query Language):结构化查询语言,一种特殊目的的编程语言,一种数据库查询和程序设计 ...
- 数据库DDL操作
DDL1. 数据库* 查看所有数据库:SHOW DATABASES* 切换(选择要操作的)数据库:USE 数据库名* 创建数据库:CREATE DATABASE [IF NOT EXISTS] myd ...
- 监控数据库DDL操作日志
背景 为了监控好生产环境下各个数据库服务器上DDL操作日志,便于运维工程师管控好风险,我们有必要关注当前实例下的所有的DDL操作以及对应的IP和hostname. 测试环境 Microsoft SQL ...
- Oracle数据库 —— DDL
时间:2016-10-5 14:55 逆风的方向更适合飞翔我不怕千万人阻挡只怕自己投降 --------------------------------------- 一.表的创建与管理1.表的基本操 ...
- 数据库DDL与DML对应含义
DDL:指的是操作数据库.表.字段的相关语句,例如:create.alter.drop DML:指的是对表中的数据进行增删改的操作,例如:insert.update.delete 查询语句书写顺序:s ...
- Oracle数据库DDL,DML,视图,PLSQL编程
动手敲~~~ --创建一个表空间--beijing create tablespace beijing datafile 'c:\beijing.dbf' size 100m autoextend o ...
- Oracle数据库 — DDL:数据定义语言
1.数据定义语言:用于定义数据库的结构,比如创建.修改或删除数据库对象: 包括: CREATE TABLE:创建数据库表:创建表的命名规则: 2.以字母开头:在 1–30 个字符之间:只能包含 A–Z ...
随机推荐
- SSRS 参数 单选 多选
前段时间 公司要求报表的选项可以多选. 知道需求后,研究了下实现. 首先我们创建一个报表,然后添加3个数据集,2个参数,如下图. DataSet1数据集:存放主数据. ddl_emplid数据集:存放 ...
- FragmentPagerAdapter 与 FragmentStatePagerAdapter的区别。通过验证证明的。
在一个 Android 应用中,我使用 FragmentPagerAdapter 来处理多 Fragment 页面的横向滑动.不过我碰到了一个问题,即当 Fragment 对应的数据集发生改变时,我希 ...
- 在windows bat脚本(batch)中延时
编写bat脚本时,有事我们希望在指令和指令之间,加入延时.例如当一条指令执行后,windows需要一定时间来响应的情况. 以下是一种实现方法,通过ping 指令来实现,5表示ping5次,就是延时5秒 ...
- 利用Excel导入数据到SAP C4C
假设要导入一个Account数据到C4C系统. 工作中心Data Workbench,工作中心视图Import,点download metadata: 会下载一个压缩包到本地. 进入文件夹Templa ...
- 【JavaScript 封装库】BETA 4.0 测试版发布!
/* 源码作者: 石不易(Louis Shi) 联系方式: http://www.shibuyi.net =============================================== ...
- SQL的注入式攻击方式和避免方法
SQL 注入是一种攻击方式,在这种攻击方式中,恶意代码被插入到字符串中,然后将该字符串传递到 SQL Server 的实例以进行分析和执行.任何构成 SQL 语句的过程都应进行注入漏洞检查,因为 SQ ...
- 前端高质量知识(五)-JS详细图解全方位解读this
在这之前,我们需要来回顾一下执行上下文. 在前面几篇文章中,我有好几个地方都提到执行上下文的生命周期,为了防止大家没有记住,再次来回顾一下,如下图. 执行上下文生命周期 在执行上下文的创建阶段,会分别 ...
- php简单开启gzip压缩方法(zlib.output_compression)
网上的教程基本是你抄我来我抄他,不外乎加头加尾或者自构函数两种写法.实际上每个php页面都要去加代码——当然也可以include引用,不过总显得略微麻烦 一般而言,页面文件开启gzip压缩以后,其 ...
- ioc 的好文章 转自 GavinJun
https://www.cnblogs.com/fuchongjundream/p/3873073.html
- MAC os x 系统java开发环境搭建教程
https://jingyan.baidu.com/article/3d69c55147a3baf0cf02d7ca.html