DDL:数据定义语言

  CREATE, ALTER, DROP

CREATE相关的常用命令:

CREATE DATABASE
CREATE EVENT
CREATE FUNCTION
CREATE FUNCTION UDF
CREATE INDEX
CREATE PROCEDURE
CREATE SERVER
CREATE TABLE
CREATE TABLESPACE
CREATE TRIGGER
CREATE USER
CREATE VIEW

创建表:CREATE TABLE
(1) 直接创建;

1
CREATE TABLE tablename(id INT(11) NOT NULL,name VARCHAR(256) NOT NULL); 

(2) 通过查询现存的表创建;新表会被直接插入查询而来的数据;

1
2
3
4
5
6
7
CREATE [TEMPORARYTABLE [IF NOT EXISTS] tbl_name
[(create_definition,...)]
[table_options]
[partition_options]
select_statement
eg:
CREATE TABLE MYTAB2 select a.StuID,a.Name from hellodb.students as a;

(3) 通过复制现存的表的表结构创建;不复制数据;

CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name
{ LIKE old_tbl_name | (LIKE old_tbl_name) }

1
mysql> CREATE TABLE lala123 like hellodb.teachers;

(4) 查看表结构:
DESCRIBE tbl_name;

1
2
3
4
5
6
7
8
9
10
mysql> desc teachers;
+--------+----------------------+------+-----+---------+----------------+
| Field  | Type                 | Null Key Default | Extra          |
+--------+----------------------+------+-----+---------+----------------+
| TID    | smallint(5) unsigned | NO   | PRI | NULL    | auto_increment |
Name   varchar(100)         | NO   |     | NULL    |                |
| Age    | tinyint(3) unsigned  | NO   |     | NULL    |                |
| Gender | enum('F','M')        | YES  |     | NULL    |                |
+--------+----------------------+------+-----+---------+----------------+
rows in set (0.00 sec)

mysql> show create table teachers\G
*************************** 1. row ***************************
Table: teachers
Create Table: CREATE TABLE `teachers` (
`TID` smallint(5) unsigned NOT NULL AUTO_INCREMENT,
`Name` varchar(100) NOT NULL,
`Age` tinyint(3) unsigned NOT NULL,
`Gender` enum('F','M') DEFAULT NULL,
PRIMARY KEY (`TID`)
) ENGINE=MyISAM AUTO_INCREMENT=5 DEFAULT CHARSET=utf8
1 row in set (0.00 sec)

(5) 查看表状态信息:
SHOW [FULL] TABLES [{FROM | IN} db_name] [LIKE 'pattern' | WHERE expr]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
mysql> show tables;
+-------------------+
| Tables_in_hellodb |
+-------------------+
| classes           |
| coc               |
| courses           |
| lala123           |
| scores            |
| students          |
| teachers          |
| toc               |
+-------------------+
rows in set (0.00 sec)

修改表:ALTER TABLE

ALTER TABLE tablename MODIFY [COLUMN] column_definition [FIRST | AFTER col_name]

(1)增加表字段:

1
2
3
ALTER TABLE tablename ADD [COLUMN] column_definition [FIRST AFTER col_name]; 
如给上表添加age字段: 
ALTER TABLE tablename ADD age INT(11) NOT NULL;   

(2)删除表字段:

1
2
3
ALTER TABLE tablename DROP [COLUMN] col_name; 
如删除上表age字段: 
ALTER TABLE tablename DROP age; 

(3)修改字段:

1
2
3
ALTER TABLE tablename CHANGE [COLUMN] old_col_name new_col_definition [FIRST AFTER col_name]; 
如修改上表字段name名为uname: 
ALTER TABLE tablename CHANGE name uname CHAR(128); 

CHANGE和MODIFY都可以修改表字段定义,不同的是CHANGE写两次字段名,但是CHANGE可以修改列名,而MODIFY则不能。 

(4)修改字段顺序:

1
2
3
4
在上表中添加birth字段,并放到列id后面: 
ALTER TABLE tablename ADD birth DATETIME AFTER id; 
再次修改,把它放到uname表后面: 
ALTER TABLE tablename MODIFY birth DATETIME NOT NULL AFTER uname; 

(5)修改表明:

1
2
3
ALTER TABLE tablename RENAME [TO] new_tablename; 
如把上面表名tablename改成test: 
ALTER TABLE tablename RENAME test;

 

删除表:DROP TABLE

+----------------+
| Tables_in_mydb |
+----------------+
| mytb1 |
| mytb2 |
| mytb3 |
| mytb4 |
+----------------+
4 rows in set (0.00 sec) mysql> drop table mytb4;
Query OK, 0 rows affected (0.02 sec) mysql> show tables;
+----------------+
| Tables_in_mydb |
+----------------+
| mytb1 |
| mytb2 |
| mytb3 |
+----------------+
3 rows in set (0.00 sec)

删除表信息 DELETE  注:一定要添加条件,否则整表信息被删除。

delete from tableName where ......
eg:
mysql> SELECT * FROM mydb.mytb4;
+-----+---------------+-----+--------+
| TID | Name | Age | Gender |
+-----+---------------+-----+--------+
| 1 | Song Jiang | 45 | M |
| 2 | Zhang Sanfeng | 94 | M |
| 3 | Miejue Shitai | 77 | F |
| 4 | Lin Chaoying | 93 | F |
+-----+---------------+-----+--------+
4 rows in set (0.00 sec) mysql> DELETE FROM mytb4 WHERE TID = 3;
Query OK, 1 row affected (0.01 sec) mysql> SELECT * FROM mydb.mytb4;
+-----+---------------+-----+--------+
| TID | Name | Age | Gender |
+-----+---------------+-----+--------+
| 1 | Song Jiang | 45 | M |
| 2 | Zhang Sanfeng | 94 | M |
| 4 | Lin Chaoying | 93 | F |
+-----+---------------+-----+--------+
3 rows in set (0.00 sec)

sql语句在mysql客户端中可以使用help名称查看语句语法。

mysql DDL&DML 语言的更多相关文章

  1. MySQL的DML语言(增删改)

    MySQL的DML语言(增删改) 补充说明,外键:不要使用外键,一切外键概念都在应用层解决. 补充说明,数据库的列,也就是字段名,尽量带上飘符号` 数据库存在的意义:数据存储和数据管理. 数据库:行( ...

  2. MySQL的sql语言分类DML、DQL、DDL、DCL、

    MySQL的sql语言分类DML.DQL.DDL.DCL. SQL语言一共分为4大类:数据定义语言DDL,数据操纵语言DML,数据查询语言DQL,数据控制语言DCL 1.数据定义语言DDL(Data ...

  3. MySQL中的DDL,DML

    MySQL中的DDL,DMLDDL:数据定义语言:    CREATE,ALTER,DROP        DB组件:数据库.表.索引.视图.用户.存储过程.存储函数.触发器.事件调度器等    CR ...

  4. SQL语言:DDL,DML,DCL,DQL,TCL

    DDL(Data Definition Language)数据库定义语言 statements are used to define the database structure or schema. ...

  5. MySQL笔记总结-DML语言

    DML语言 插入 一.方式一 语法: insert into 表名(字段名,...) values(值,...); 特点: 1.要求值的类型和字段的类型要一致或兼容 2.字段的个数和顺序不一定与原始表 ...

  6. 数据库01创建表和DML语言

    楼主用的数据库时mysql,用的时navacat for mysql. 数据库层面: 1.显示所有数据库 show databases; 2.创建数据库,名字叫lyh,编码为utf-8 create ...

  7. MySQL DDL执行方式-Online DDL介绍

    1 引言 大家好,今天与大家一起分享一下 mysql DDL执行方式. 一般来说MySQL分为DDL(定义)和DML(操作). DDL:Data Definition Language,即数据定义语言 ...

  8. DDL DML DCL SQL

    https://dev.mysql.com/doc/refman/5.7/en/glossary.html#glos_ddl SQL The Structured Query Language tha ...

  9. Wamp Mysql错误消息 语言设置

    Wamp Mysql错误消息 语言设置 http://my.oschina.net/wandershi/blog/264347 打开my.ini   找到 [wampmysqld] port = 33 ...

随机推荐

  1. 滚动歌词制作 之 ncm格式转mp3

    导读 BesLyric 可以将 ncm格式转MP3 了! 前几天有网友到我的博客下评论说现在会员才能下载下来的音乐发现后缀是 ncm, 没法使用 Beslyric 来制作歌词,昨天升级了一下软件,将 ...

  2. 源代码管理工具(下)-SVN目录结构

    内容中包含 base64string 图片造成字符过多,拒绝显示

  3. uboot-jiuding 下主Makefile详解

    主Makefile位于uboot源码的根目录下,其内容主要结构为: 1. 确定版本号及主机信息(23至48行)2. 实现静默编译功能(48至55行)3. 设置各种路径(56至123行)4. 设置编译工 ...

  4. CF1028G Guess the Numbers 构造、记忆化搜索

    传送门 考虑如果我们当前可以询问\(x\)个数,还剩下\(q\)次询问机会,我们要怎么构造询问方式? 肯定会这么考虑: 找到一个尽可能大的\(P\)满足\([x,P]\)能在每一次能询问\(x\)个数 ...

  5. LNMP 1.x升级到LNMP 1.4教程及注意事项和多PHP版本使用教程

    LNMP 1.x版本基本都可以正常升级到1.4使用1.4的管理脚本和新的功能. 升级管理脚本:wget -c http://soft.vpser.net/lnmp/lnmp1.4.tar.gz &am ...

  6. [清华集训2017]榕树之心[树dp]

    题意 题目链接 分析 首先解决 \(subtask3\) ,我们的策略就是进入子树,然后用其它子树来抵消,注意在子树内还可以抵消. 可以转化为此模型:有一个数列 \(a\) ,每次我们可以选定两个值 ...

  7. 该如何以正确的姿势插入SVG Sprites?

    大家好,我是苏南,今天要给大家分享的是SVG sprite(也叫雪碧图),所谓雪碧图,当然就不是我们常喝的雪碧饮料(Sprites)哦,哈哈- 当下流程的移动端,手机型号太多太多,今天工作项目中突然发 ...

  8. 利用 John the Ripper 破解用户登录密码

    一.什么是 John the Ripper ? 看到这个标题,想必大家都很好奇,John the Ripper 是个什么东西呢?如果直译其名字的话就是: John 的撕裂者(工具). 相比大家都会觉得 ...

  9. 分布式监控系统Zabbix3.4-钉钉告警配置记录

    群机器人是钉钉群的高级扩展功能,群机器人可以将第三方服务的信息聚合到群聊中,实现自动化的信息同步.例如:通过聚合GitHub,GitLab等源码管理服务,实现源码更新同步:通过聚合Trello,JIR ...

  10. C_数据结构_循环实现求阶乘

    # include <stdio.h> int main(void) { int val; printf("请输入一个数字:"); printf("val = ...