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. webpack4+express+mongodb+vue 实现增删改查

    在讲解之前,我们先来看看效果如下所示: 1)整个页面的效果如下: 2) 新增数据效果如下: 3) 新增成功如下: 4) 编辑数据效果如下: 5) 编辑成功效果如下: 6) 删除数据效果如下: 7) 删 ...

  2. Java并发(三)线程池原理

    Java中的线程池是运用场景最多的并发框架,几乎所有需要异步或并发执行任务的程序都可以使用线程池.在开发过程中,合理地使用线程池能够带来3个好处. 1. 降低资源消耗.通过重复利用已创建的线程降低线程 ...

  3. AI 深度生成模型

    深度生成模型 1.玻尔兹曼机

  4. 分布式RPC框架性能大比拼 dubbo、motan、rpcx、gRPC、thrift的性能比较

    Dubbo 是阿里巴巴公司开源的一个Java高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和 Spring框架无缝集成.不过,略有遗憾的是,据说在淘宝内部,dub ...

  5. Luogu3162 CQOI2012 组装 贪心

    传送门 如果提供每一种零件的生产车间固定了,那么总时间\(t\)与组装车间的位置\(x\)的关系就是 \(t = \sum (x-a_i)^2 = nx^2-2\sum a_ix + \sum a_i ...

  6. Adobe PhotoshopCC2017 安装与破解(Mac)

    简单说明下Adobe Photoshop CC 2017的破解方法: 1.打开dmg镜像,双击“Install”进行安装,登陆Adobe ID(没有注册一个)完成安装: 2.解压缩“Adobe Zii ...

  7. 简单的策略模式Strategy演示

    策略模式,即规则在变化之中,结果终归为一. 公司给员工计算工资,如有加班费,差旅费,每个月的生活补帖等等其它费用需要计算.这个费的规则是不尽相同. 不管策略的规则怎样,终归需要计算出一个结果 工资: ...

  8. asp.net网站,在没有项目源码情况下的扩展

    如果在没有源码的情况下,要扩展asp.net网站,可以自己新增一个类库项目,在里面添加需要扩展的类,代码如下: using System; using System.Collections.Gener ...

  9. SpringCloud Eureka参数配置项详解(转)

    Eureka涉及到的参数配置项数量众多,它的很多功能都是通过参数配置来实现的,了解这些参数的含义有助于我们更好的应用Eureka的各种功能,下面对Eureka的配置项做具体介绍,供大家参考. Eure ...

  10. (6)学习笔记 ) ASP.NET CORE微服务 Micro-Service ---- AOP框架

    AOP 框架基础 要求懂的知识:AOP.Filter.反射(Attribute). 如果直接使用 Polly,那么就会造成业务代码中混杂大量的业务无关代码.我们使用 AOP (如果不了解 AOP,请自 ...