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性能好。

MySQL-第二篇SQL语句基础(1)语句分类及DDL语句的更多相关文章

  1. (6)MySQL进阶篇SQL优化(MyISAM表锁)

    1.MySQL锁概述 锁是计算机协调多个进程或线程并发访问某一资源的机制.在数据库中,除传统的计算资源 (如 CPU.RAM.I/O 等)的抢占以外,数据也是一种供许多用户共享的资源.如何保证数 据并 ...

  2. (4)MySQL进阶篇SQL优化(常用SQL的优化)

    1.概述 前面我们介绍了MySQL中怎么样通过索引来优化查询.日常开发中,除了使用查询外,我们还会使用一些其他的常用SQL,比如 INSERT.GROUP BY等.对于这些SQL语句,我们该怎么样进行 ...

  3. 第二篇 SQL Server安全验证

    本篇文章是SQL Server安全系列的第二篇,详细内容请参考原文. 验证是检验主体的过程.主体需要唯一标识,那样SQL Server可以确定主体有哪些权限.正确的验证是提供安全访问数据库对象的必要的 ...

  4. 第二篇 SQL Server代理作业步骤和子系统

    本篇文章是SQL Server代理系列的第二篇,详细内容请参考原文. SQL Server代理作业由一系列的一个或多个作业步骤组成.一个作业步骤分配给一个特定的作业子系统(确定作业步骤去完成的工作). ...

  5. 【译】第二篇 SQL Server安全验证

    本篇文章是SQL Server安全系列的第二篇,详细内容请参考原文. 验证是检验主体的过程.主体需要唯一标识,那样SQL Server可以确定主体有哪些权限.正确的验证是提供安全访问数据库对象的必要的 ...

  6. 【译】第二篇 SQL Server代理作业步骤和子系统

    本篇文章是SQL Server代理系列的第二篇,详细内容请参考原文. SQL Server代理作业由一系列的一个或多个作业步骤组成.一个作业步骤分配给一个特定的作业子系统(确定作业步骤去完成的工作). ...

  7. (2)MySQL进阶篇SQL优化(show status、explain分析)

    1.概述 在应用系统开发过程中,由于初期数据量小,开发人员写SQL语句时更重视功能上的实现,但是当应用系统正式上线后,随着生产数据量的急剧增长,很多SQL语句开始逐渐显露出性能问题,对生产环境的影响也 ...

  8. (3)MySQL进阶篇SQL优化(索引)

    1.索引问题 索引是数据库优化中最常用也是最重要的手段之一,通过索引通常可以帮助用户解决大多数 的SQL性能问题.本章节将对MySQL中的索引的分类.存储.使用方法做详细的介绍. 2.索引的存储分类 ...

  9. Java并发包下锁学习第二篇Java并发基础框架-队列同步器介绍

    Java并发包下锁学习第二篇队列同步器 还记得在第一篇文章中,讲到的locks包下的类结果图吗?如下图: ​ 从图中,我们可以看到AbstractQueuedSynchronizer这个类很重要(在本 ...

随机推荐

  1. Python之路-Python常用模块-time模块

    一.time模块 常用的一种获取当前时间以及时间格式化的模块,模块名称:time time模块在Python原生安装中就存在所以不需要进行任何安装操作,直接使用即可. 导入方式: import tim ...

  2. Raven2

     Raven2实验 0x01 寻找IP 本机IP:56.130 1. 使用 nmap -sn "ip6"#主机发现(不进行端口扫描) https://cloud.tencent.c ...

  3. paste - 合并文件各行

    总览 (SYNOPSIS) ../src/paste [OPTION]... [FILE]... 描述 (DESCRIPTION) 连续 依次 从 各个 文件 FILE 中 读取 一行 然后 合并成 ...

  4. Jupyter Notebook 安装与使用

    Ref: https://jupyter.org/install Installing Jupyter Notebook with pip python -m pip install --upgrad ...

  5. Centos7搭建日志服务器rsyslog+loganalyzer

    一.系统环境 Rsyslog Server OS:CentOS 7 Rsyslog Server IP:172.28.194.118 Rsyslog Version: rsyslog-7.4.7-12 ...

  6. mysql数据同步到Elasticsearch

    1.版本介绍 Elasticsearch: https://www.elastic.co/products/elasticsearch 版本:2.4.0   Logstash: https://www ...

  7. AOP技术介绍--(.Net中关于AOP的实现)

    一.AOP实现初步       AOP将软件系统分为两个部分:核心关注点和横切关注点.核心关注点更多的是业务逻辑,关注的是系统核心的业务:而横切关注点虽与核心的业务实现无关,但它却是一种更通用的业务, ...

  8. Android SDK说明(图)

  9. hdu 6152 : Friend-Graph (2017 CCPC网络赛 1003)

    题目链接 裸的结论题.百度 Ramsey定理.刚学过之后以为在哪也不会用到23333333333,没想到今天网络赛居然出了.顺利在题面更改前A掉~~~(我觉得要不是我开机慢+编译慢+中间暂时死机,我还 ...

  10. IT 技术人需要思考的 15 个问题

    行内的人自嘲是程序猿.屌丝和码农,行外的人也经常拿IT人调侃,那么究竟是IT人没有价值,还是没有仔细思考过自身的价值? 1.搞 IT 的是屌丝.码农.程序猿? 人们提到IT人的时候,总会想到他们呆板. ...