mysql DDL&DML 语言
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 [ TEMPORARY ] TABLE [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 | | + --------+----------------------+------+-----+---------+----------------+ 4 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 | + -------------------+ 8 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 语言的更多相关文章
- MySQL的DML语言(增删改)
MySQL的DML语言(增删改) 补充说明,外键:不要使用外键,一切外键概念都在应用层解决. 补充说明,数据库的列,也就是字段名,尽量带上飘符号` 数据库存在的意义:数据存储和数据管理. 数据库:行( ...
- MySQL的sql语言分类DML、DQL、DDL、DCL、
MySQL的sql语言分类DML.DQL.DDL.DCL. SQL语言一共分为4大类:数据定义语言DDL,数据操纵语言DML,数据查询语言DQL,数据控制语言DCL 1.数据定义语言DDL(Data ...
- MySQL中的DDL,DML
MySQL中的DDL,DMLDDL:数据定义语言: CREATE,ALTER,DROP DB组件:数据库.表.索引.视图.用户.存储过程.存储函数.触发器.事件调度器等 CR ...
- SQL语言:DDL,DML,DCL,DQL,TCL
DDL(Data Definition Language)数据库定义语言 statements are used to define the database structure or schema. ...
- MySQL笔记总结-DML语言
DML语言 插入 一.方式一 语法: insert into 表名(字段名,...) values(值,...); 特点: 1.要求值的类型和字段的类型要一致或兼容 2.字段的个数和顺序不一定与原始表 ...
- 数据库01创建表和DML语言
楼主用的数据库时mysql,用的时navacat for mysql. 数据库层面: 1.显示所有数据库 show databases; 2.创建数据库,名字叫lyh,编码为utf-8 create ...
- MySQL DDL执行方式-Online DDL介绍
1 引言 大家好,今天与大家一起分享一下 mysql DDL执行方式. 一般来说MySQL分为DDL(定义)和DML(操作). DDL:Data Definition Language,即数据定义语言 ...
- DDL DML DCL SQL
https://dev.mysql.com/doc/refman/5.7/en/glossary.html#glos_ddl SQL The Structured Query Language tha ...
- Wamp Mysql错误消息 语言设置
Wamp Mysql错误消息 语言设置 http://my.oschina.net/wandershi/blog/264347 打开my.ini 找到 [wampmysqld] port = 33 ...
随机推荐
- Visual studio 附加进程调试
建一个WebApplication项目,并新增Default.aspx页面 新增一个IIS网站 打开页面,任务管理器启动了进程:w3wp.exe 附加进程,方式:VS-调试-附加进程 浏览器打开页面D ...
- spring 和spring cloud 组成
spring 顶级项目:Spring IO platform:用于系统部署,是可集成的,构建现代化应用的版本平台,具体来说当你使用maven dependency引入spring jar包时它就在工作 ...
- ArrayList源码中的两个值得注意的问题
1.“拖泥带水”的删除 测试代码: package com.demo; import java.util.ArrayList; public class TestArrayList { public ...
- jdk1.8安装后查看Java -version出错。
最近在电脑行安装了多个jdk的版本 分别是jdk1.6,jdk1.7,jdk1.8三个版本,在配置环境变量的时候,选择的是jdk1.7; 但是奇怪的是,当我在cmd中输入java -version后, ...
- Spring Boot Admin 日志查看功能
按照官方配置POM和配置文件后,能够结合Eureka查看各微服务状态,但是日志始终查看不了,出现406等错误. 最后偶然发现,是在在从官方网站拷贝配置的时候,出现的问题. logging.file=* ...
- excel的宏与VBA入门——代码调试
直接介绍重点: 常用的操作是导航栏的逐句与断点: 添加断点:调试->切换断点 单步运行:调试->逐句 查看变量的窗口:视图->本地窗口
- Scala学习(八)---Scala继承
Scala继承 摘要: 在本篇中,你将了解到Scala的继承与Java和C++最显著的不同.要点包括: 1. extends.final关键字和Java中相同 2. 重写方法时必须用override ...
- hibernate 解决 java.lang.NoClassDefFoundError: Could not initialize class org.hibernate.validator.internal.engine.xxx 这类的问题
<!-- 解决 java.lang.NoClassDefFoundError: Could not initialize class org.hibernate.validator.intern ...
- R绘图 第十二篇:散点图(高级)
散点图用于描述两个连续性变量间的关系,三个变量之间的关系可以通过3D图形或气泡来展示,多个变量之间的两两关系可以通过散点图矩阵来展示. 一,添加了最佳拟合曲线的散点图 使用基础函数plot(x,y)来 ...
- OpenTK教程-1绘制一个三角形
OpenTK的官方文档是真心的少,他们把怎么去安装OpenTK说的很清楚,但是也就仅限于此,这有一篇learn opentk in 15的教程(链接已经失效,译者注),但是并不完美.你可以在15分钟内 ...