1、什么是SQL语句

SQL是Structed Query Language的缩写,即结构化查询语言。SQL是操作和检索数据库的标准语言,标准的SQL语句可以操作任何关系数据库。

2、标准的SQL语句有有以下几种分类(M->D->C,数据->库对象->用户)

1》查询语句:查询语句是SQL语句中最复杂、功能最丰富的的语句,关键字有select。

2》DML(Data Manipulation Language,数据操作语言)语句:关键字有insert、update、delete。

3》DDL(Data Definition Language,数据定义语言)语句:关键字有create、alter、drop、truncate。

4》DCL(Data Control Language,数据控制语言)语句:关键字有grant、revoke。

5》事务控语句:关键字有commit、rollback、savepoint。

SQL语句的关键字不区分大小写,即select和SELECT,或者selEct都是等效的,只要是那个关键字。

还有一点:truncate是一个特殊的DDL关键字,它相当于先删除指定的数据表,然后再重建该数据表该数据表。如果使用MySQL的普通存储机制,它确实是这样的。但如果使用InnoDB存储机制,则比较复杂,MySQL5.0.3之前,truncate和delete完全一样;5.0.3之后,truncate table比delete效率高,但如果该表被外键约束参照,则依然被映射成delete操作。当使用快速truncate时,该操作会重设自动增长计数器。在5.0.13之后,快速truncate总是可用(即比delete性能要好)。

3、DDL语句

1》DDL语句是数据库对象操作语句,包括create、alter、drop、truncate数据库对象。常见的数据库对象有:

对象名称 对应关键字段 描述
table 存储数据的逻辑单元,以行和列的形式存在
数据字典  

即系统表,存放数据库相关信息的表,系统表里的数据通常由数据库系统维护,程序员通常不应该

手动修改系统表及系统表数据,只可查看系统表数据

约束 constraint 执行数据校验的规则,用于保证数据完整性的规则
视图 view 一个或者多个数据表里数据的逻辑显示。视图并不存储数据
索引 index 用于提高查询性能,相当于书的目录
函数 function 用于完成一次特定的计算,具有一个返回值
存储过程 procedure 用于完成一次完整的业务处理,没有返回值,但可通过传出参数将多个值传给调用环境
触发器 trigger 相当于一个事件监听器,当数据库发生特定事件后,触发器触发,完成相应的处理

针对这些对象,DDL关键字可以直接把这些对象紧接着它们书写,如create table ...、create index ...等

2》创建数据库的语法

create database mybatis;

3》增加表的语法

1>create table语句只创建空表

create table [模式名.]表名
(--列定义columnName1 datatype [default expr],...
)

列字段类型如下:

2>create table使用子查询语句

create table [模式名.]表名 [column[,column...]]
as subquery;

4》修改表结构的语法

修改表结构使用alter table,修改表结构包括增加列定义、修改列定义、删除列、重命名列等操作。

1>增加列。如果只增加一列,圆括号可以省略。已有数据的表新增加列,则新增列不能为没有默认值且非空属性,否则添加失败。

alter table 表名 add (多个列定义);

2>删除列。删除列总是可以成功的,删除列将从每行数据删除指定列,以及回收该列的空间,故删除大表的列的时候,比较花费时间。

alter table 表名 drop column_name;

3>修改列定义。first|after col_name 指定需要将目标修改到指定位置。alter table 后可以跟多个modify,实现多字段的修改。

alter table 表名 modify column_name datatype [default expr] [first|after col_name];

修改列的默认值,只会影响以后数据的添加操作,不会影响已存在的数据。

4>MySQL特提供的:重命名表和完全修改列定义

重命名表:

alter table 表名 rename to 新表名;

修改列定义:change关键字

alter table 表名 change old_column new_column type [default expr] [first|after col_name];

5》删除表的语法

drop table 表名;

drop删除表的效果:

1>表结构被删除,表对象不再存在。

2>表中数据被删除。

3>该表所有相关的索引、约束被删除。

truncate 表名;

truncate(截断)删除的效果:

1>删除表中的所有数据,但保留表结构。

2>效率比delete高得多,但不能删除指定行记录。

3>如果使用非InnoDB存储机制,truncate比delete速度快;如果使用InnoDB存储机制,MySQL5.0.3之前,truncate和delete完全一样,5.0.3之后,truncate比delete效率高,但如果该表被外键约束所参照,truncate又变为delete操作。5.0.13后,快速truncate总是可用,即比delete性能好。

转载于:https://www.cnblogs.com/ZeroMZ/p/11366891.html

MySQL-第二篇SQL语句基础(1)语句分类及DDL语句相关推荐

  1. 第二篇:Go基础入门

    第二篇:Go基础入门 2.1.第一个Go语言程序 下面我们就要正式进入Go语言的学习了. 首先还是一个传统的仪式:用程序在屏幕上输出"hello world" 步骤: 1.新建一个 ...

  2. MySQL 第二篇:增删改查

    我把MySQL的内容整理成9篇博客,学完这9篇博客虽不能说能成为大神,但是应付一般中小企业的开发已经足够了,有疑问或建议的欢迎留言讨论. 一.新增数据 1.语法:insert [into] <表 ...

  3. mysql中ddl语句有哪些_SQL中常用DDL语句

    DDL:对数据库以及数据库内部的对象进行创建.删除.修改等操作的语言,DDL语句更多的是由数据库管理员(DBA)使用,开发人员一般很少使用. 一.数据库: 1.查看数据库列表:show databas ...

  4. MySQL查询建表语句ddl_oracle之 获取建表ddl语句

    在使用DIP工具初始化时遇到大量分区表,无法正常使用全同步功能,故先提取表结构,后同步数据. 以下内容转载自:http://www.cnblogs.com/andy6/p/8029334.html 经 ...

  5. mysql的ddl的语句有_Mysql操作之部分DDL语句

    DDL(Data Definition Languages)语句:数据定义语言,这些语句定义了不同的数据段,数据库,表,列,索引等数据库对象.常用的语句关键字主要包括create,drop,alter ...

  6. mysql获取ddl的语句,获取数据库或SHEME的DDL语句

    获取数据库或SHEME的DDL语句 1. 获取单个的建表.视图和建索引的语法 1 set pagesize 0 2 set long 90000 3 set feedback off 4 set ec ...

  7. 第二篇:python基础之核心风格

    第三篇:python基础之数据类型与变量 阅读目录 一.变量 二.数据类型 2.1 什么是数据类型及数据类型分类 2.2 标准数据类型: 2.2.1 数字 2.2.1.1 整型: 2.2.1.2 长整 ...

  8. SQL语言基础:常用的数据查询语句

    1.创建表 语法格式: creat table <表名> ( <,列名><数据类型>[列级完整性约束条件] <,列名><数据类型>[列级完整 ...

  9. ios入门攻略 07篇 C语言基础【循环结构之for语句,打印九九乘法表】

    for循环 语法: for(表达式1;表达式2;表达式3){ 循环体; } 语义:1.先执行表达式1,跳转到2 2.判断表达式2的结果是否为真,如果为真,跳转到3,否则跳转到5 3.执行循环体,执行完 ...

  10. Python开发【第二篇】:基础数据类型

    内容概要 格式化输出 运算符 编码 基本数据类型 深浅拷贝.小数据池 1.格式化输出 # %s 占位字符串. 实际上可以占位任何东西(用的最多的) # %d 占位整数. 只能占位数字 # name = ...

最新文章

  1. 网页瀑布流效果实现的几种方式
  2. 微信小程序直播自己的服务器,使用微信小程序和腾讯云实现直播功能
  3. 数据库ORA-00600 [15160]处理
  4. 你可能从未听过的 Linux 发行版
  5. Java 中的日期与时间
  6. HTML5 Canvas专题
  7. 微信小程序的提交审核流程
  8. 条目十四《使用reserve来避免不必要的重新分配》
  9. Genymotion安装apk问题,不能部署Genymotion-ARM-Translation_v1.zip
  10. AR.js专题-图片匹配
  11. java通过十字路口_如何正确通过十字路口 老司机教你怎么走
  12. HDU:1222wolfnbsp;andnbsp;habbit解题报告
  13. 稍纵即逝的烟花蓄势于纸
  14. 干货 | SQL 外部联接 Outer Join
  15. ubuntu / linuxmint 搜狗输入法安装后 fcitx configure找不到的解决办法
  16. nltk学习之统计词频和分词nltk.word_tokenize nltk.FreqDist
  17. CSDN联合安恒信息 共同发布安全开发工程师能力标准
  18. 基于STM32的智能风扇的制作
  19. 作为一名网络工程师,分享下IT从业经验!
  20. 人生所谓的成功是更好的生活!

热门文章

  1. VirtualBox虚拟机如何选中“启用嵌套 VT-x/AMD-V”
  2. error: invalid argument ‘-std=gnu++98‘ not allowed with ‘C‘
  3. 有的字体,用黑色渲染,效果是灰色
  4. unsatisfied condition: __STDC_VERSION__ = 201112L
  5. JAVA interface报错:abstract methods do not specify a body
  6. 文件的长度,跟FileReader读到的长度,不一样
  7. html5 小车动画_HTML5 实现小车动画效果(Canvas/CSS3/JQuery)
  8. 2021年高考成绩查询梧州市,2021年梧州高考状元是谁分数多少分,历年梧州高考状元名单...
  9. mysql primary重复_mysql:键'PRIMARY'和奇怪的ID行为重复条目'0'
  10. c#使用正则表达式获取TR中的多个TD_Linux之正则表达式