SQL 语句主要可以划分为以下 3 个类别。
 DDL(Data Definition Languages)语句:数据定义语言,这些语句定义了不同的数据段、
数据库、表、列、索引等数据库对象的定义。常用的语句关键字主要包括 create、drop、alter
等。
 DML(Data Manipulation Language)语句:数据操纵语句,用于添加、删除、更新和查
询数据库记录,并检查数据完整性,常用的语句关键字主要包括 insert、delete、udpate 和
select 等。
 DCL(Data Control Language)语句:数据控制语句,用于控制不同数据段直接的许可和
访问级别的语句。这些语句定义了数据库、表、字段、用户的访问权限和安全级别。主要的
语句关键字包括 grant、revoke 等

DDL 语句
DDL 是数据定义语言的缩写,简单来说,就是对数据库内部的对象进行创建、删除、修改的
操作语言。它和 DML 语言的最大区别是 DML 只是对表内部数据的操作,而不涉及到表的定
义、结构的修改,更不会涉及到其他对象。DDL 语句更多的被数据库管理员(DBA)所使用,
一般的开发人员很少使用。
下面通过一些例子来介绍 MySQL 中常用 DDL 语句的使用方法。

-- 创建表
-- create table emp(ename varchar(10),hiredate date,sal decimal(10,2),deptno int(2));
-- 查看表的定义
-- DESC tablename

DESC emp;
-- 查看创建表的 SQL 语句
show create table emp \G;
-- 删除表
DROP TABLE tablename

-- 修改表 ALTER TABLE tablename MODIFY [COLUMN] column_definition [FIRST | AFTER col_name]
alter table emp modify ename varchar(30);
-- 增加表字段 ALTER TABLE tablename ADD [COLUMN] column_definition [FIRST | AFTER col_name]
alter table emp add column age int(3);

-- 删除表字段,语法如下:
-- ALTER TABLE tablename DROP [COLUMN] col_name
alter table emp drop age;

-- 字段改名,语法如下:
-- ALTER TABLE tablename CHANGE [COLUMN] old_col_name column_definition[FIRST|AFTER col_name]
alter table emp change sal salary decimal(10,2);
-- 注意:change 和 modify 都可以修改表的定义,不同的是 change 后面需要写两次列名,不方便。
-- 但是 change 的优点是可以修改列名称,modify 则不能。

-- 表改名 ALTER TABLE tablename RENAME [TO] new_tablename
alter table emp RENAME employee;

-- 插入
INSERT INTO t_user (NAME,PASSWORD,cost) VALUES ('dd','Zhang123',1200),('ahah','Lisi123',1200);

-- 更新记录 UPDATE tablename SET field1=value1,field2.=value2,……fieldn=valuen [WHERE CONDITION]
update t_user set name='Lisi',password='Lisi123',cost=1200.00 where id = 4;

-- 删除记录 DELETE FROM tablename [WHERE CONDITION]
DELETE from t_user WHERE id=1;

-- 注意:不管是单表还是多表,不加 where 条件将会把表的所有记录删除,所以操作时一定要小心。

SELECT * from t_user;

-- 去重distinct
-- 其中,DESC 和 ASC 是排序顺序关键字,DESC 表示按照字段进行降序排列,ASC 则表示升序
-- 排列,如果不写此关键字默认是升序排列。

-- 对于排序后的记录,如果希望只显示一部分,而不是全部,这时,就可以使用 LIMIT 关键字来实现,LIMIT 的语法如下:
SELECT ……[LIMIT offset_start起始偏移量,row_count显示的行数]
在默认情况下,起始偏移量为 0,只需要写记录行数就可以,这时候,显示的实际就是前 n条记录,
select * from t_user order by id limit 6,2;

基本sql语法的更多相关文章

  1. 值得注意的ibatis动态sql语法格式

    一.Ibatis常用动态sql语法,简单粗暴用一例子 <select id="iBatisSelectList" parameterClass="java.util ...

  2. Linq to SQL 语法查询(链接查询,子查询 & in操作 & join,分组统计等)

    Linq to SQL 语法查询(链接查询,子查询 & in操作 & join,分组统计等) 子查询 描述:查询订单数超过5的顾客信息 查询句法: var 子查询 = from c i ...

  3. SQL 语法总结

    学了一个月的java,开始有入门的感觉.这段时间接触到了java的JDBC, 发现学习这部分的内容还是要有SQL的基础,于是花费了几天时间学习了一下SQL语法,并将其总结于下. 选择数据 SELECT ...

  4. SQL语法和运算符(一)

    一个数据库通常包含一个或多个表.每个表由一个名字标识,表包含带有数据的记录(行). 一些最重要的SQL命令(SQL对大小写不敏感): 一.SQL语法 select:从数据库中提取数据 update:更 ...

  5. [转]MySQL 最基本的SQL语法/语句

    MySQL 最基本的SQL语法/语句,使用mysql的朋友可以参考下.   DDL-数据定义语言(Create,Alter,Drop,DECLARE) DML-数据操纵语言(Select,Delete ...

  6. SQL语法整理

    SQL是Structured Query Language的缩写,中文全名为结构化查询语言,是一种用于数据存储,查询,更新和管理的关系数据库系统. SQL语法 创建表 create table tab ...

  7. ORACLE分页查询SQL语法——最高效的分页

    --1:无ORDER BY排序的写法.(效率最高)--(经过测试,此方法成本最低,只嵌套一层,速度最快!即使查询的数据量再大,也几乎不受影响,速度依然!) SELECT * FROM (SELECT  ...

  8. [Android新手区] SQLite 操作详解--SQL语法

    该文章完全摘自转自:北大青鸟[Android新手区] SQLite 操作详解--SQL语法  :http://home.bdqn.cn/thread-49363-1-1.html SQLite库可以解 ...

  9. 有没有好用的开源sql语法分析器? - 匿名用户的回答 - 知乎

    有没有好用的开源sql语法分析器? - 匿名用户的回答 - 知乎 presto,hive,drill,calcite,sparksq

  10. editplus的配置文件来支持sql语法高亮【转】

      editplus默认是没有sql语法高亮的,原因是它的内部没有sql.stx的这样一个语法文件 我们自己在 EditPlus 的安装目录下面新建一个文件名为sql.stx,然后打开editplus ...

随机推荐

  1. 浅谈 Objective-C Associated Objects

    简介 Associated Objects 是 Objective-C 2.0 中 Runtime 的特性之一. 在 <objc/runtime.h> 中定义的三个方法, void obj ...

  2. Clickhosue 强大的函数,argMin() 和argMax()函数

    说实话,我喜欢Clickhouse 的函数,简单操作,功能强大.今天需要给大家介绍两个函数,argMin(),argMax() 1.argMax():计算 ‘arg’ 最大值 ‘val’ 价值. 如果 ...

  3. INTERVIEW #1

    一.数据对齐存储 在32位系统中:int占4Bytes,short占2Bytes,char占1Byte,加起来应该是7Bytes,但是下面这段代码输出却是8. #define _CRT_SECURE_ ...

  4. python selenium(常用关键字)

    1.文本按钮操作相关: send_keys()输入文本 from selenium import webdriver import time dr = webdriver.Chrome() dr.ge ...

  5. 使用C++STL的map容器实现一种命令映射

    因为最近在练习写一个ftp的服务器,其中的命令有很多种,每个命令对应一个执行函数,能够想到的最简单的实现方式便是使用if--else匹配命令和执行对应的函数,如下所示: if(strcmp(" ...

  6. 题目分享E 二代目

    题意:一棵点数为n的树,每个节点有点权,要求在树中中找到一个最小的x,使得存在一个点满足max(该点点权,该点相邻的点的点权+1,其他点的点权+2)=x 分析:首先要能把题目转化为上述题意 首先题目让 ...

  7. Java笔记(day20-22)

    IO流: 输入流.输出流 字节流.字符流:为了处理文字数据方便而出现的对象. (其实这些对象的内部使用的还是字节流(因为文字最终也是字节数据,只不过,通过字节流读取了相对应的字节数,没有对这些字节直接 ...

  8. 用Navicat建MySQL数据库表,动态改变创建时间和更新时间戳

    1.create_time 记录创建的时间,设默认值为:CURRENT_TIMESATMP 注意:不勾选那个[根据当前时间戳更新] 2.operator_time 更新记录的时间,勾选那个[根据当前时 ...

  9. 大富翁 线段树+二分 +dfs

    https://csustacm.fun/problem/2033 这个题目还是比较简单的,但是比赛的时候没有像清楚,用了一个不太熟悉的数据结构主席树, 所以出现了bug,主席树的bug是真的难找. ...

  10. 向Redis里存入数据

    实现思路:1.    从Redis缓存获取URL统计网址清单2.    逐条拼凑SQL统计语句,暂时不能支持批量计算,因为按单个网址统计.3.    发送到HIVE JDBC执行SQL并等待返回结果4 ...