DQL:Data QueryLanguage 数据查询语言

作用:   查询表中的字段

命令:   select         查询

⑦select 查询列表
①from 表1 别名
②连接类型 join 表2
③on 连接条件
④where 筛选
⑤group by 分组列表
⑥having 筛选
⑧order by排序列表
⑨limit 起始条目索引,条目数;


 DML:Data Manipulation Language数据操纵语言

作用:对数据库的数据进行相关操作(对表中的记录进行操作)

命令: delete       删除表中一条或多条记录

update     更改表中记录

insert       向表中添加记录.

truncate     清空表

  • delete 语法:

DELETE    FROM    表名      WHERE       列名 = 值

  • update 语法:

UPDATE    表名     SET     列名 = 新值       WHERE       列名称 = 某值

  • insert 语法:

INSERT      INTO      表名(列1,列2,...)     VALUES    (值1,值1,...)

可以省略列名,但是值要和列名的顺序和个数一一对应

  • truncate 语法:

TRUNCATE  table  表名;

  TRUNCATE table  user;

DDL:Data Definition Language数据定义语言

作用:创建表,删除表,定义或改变表的结构、数据类型、表之间的链接、约束

命令:      create        创建表,创建库,复制表

alter           修改表中字段(增加列,更改列,删除列)

drop           删除表

  • create 语法:

创建库

create database 库名

更改库的字符集 CHARACTER字符集
  ALTER DATABASE 库名 CHARACTER SET 字符集;

    ALTER DATABASE books CHARACTER SET gbk;

修改库名 

需要修改:
1.停止MySQL服务
2.修改文件夹名
3.启动MySQL服务

创建表

create table 表名(
列名 列的类型【长度 约束】,
列名 列的类型【长度 约束】,
列名 列的类型【长度 约束】,
...
列名 列的类型【长度 约束】
)

复制表

①仅仅复制表的结构
create table 表名 like 旧表

  CREATE TABLE copy LIKE author;

②复制表的结构+数据
create table 表名 select 查询列表 from 旧表【where筛选】

全部复制

  CREATE TABLE copy2
  SELECT * FROM author;

复制一小部分

CREATE TABLE copy3
SELECT id,au_name
FROM author
WHERE nation='中国';

可以跨库复制表的结构 库名.表名

CREATE TABLE dept2
SELECT department_id,department_name
FROM myemployees.departments;

  • alter 语法:

ALTER TABLE 表名

add|drop|modify|change COLUMN 列名 新的列名 类型【约束】

①修改列名
after table 表名 change column 旧列名 新列名 类型;

  ALTER TABLE user CHANGE COLUMN annual2 pubDate datetime;  

②修改列的类型或约束
after table 表名 modify column 列名 新类型【新约束】

  ALTER TABLE `user` MODIFY COLUMN pubDate TIMESTAMP not null;

③添加新列
after table 表名 add column 列名 类型【(first|after 字段名)控制添加的位置】默认就是在最后

  ALTER TABLE `user` ADD COLUMN annual DOUBLE FIRST;

  ALTER TABLE `user` ADD COLUMN annual2 DOUBLE AFTER id;

  ALTER TABLE test2 ADD COLUMN ddd3 INT last;不支持,默认就是在最后

④删除列
ALTER TABLE 表名 DROP COLUMN 列名;

  ALTER TABLE user DROP COLUMN annual;

⑤修改表名
after table 表名 rename 【to】 新表名;

  ALTER TABLE user RENAME TO book_author;

  • drop 语法:

DROP      table         表名;

IF EXISTS 做判断,仅仅在表的删除和表的创建时使用
exists : 强调的是是否返回结果集,不要求知道返回什么
exists (sql 返回结果集为真) 有
not exists (sql 不返回结果集为真)没有

DROP DATABASE IF EXISTS 旧的库名

CREATE DATABASE 新的库名

DROP TABLE IF EXISTS 旧的表名

CREATE TABLE 新的表名

DCL:Data Control Language 数据控制语言DCL
作用: 数据控制语言DCL用来设置或更改数据库用户或角色权限

命令: grant       授权

revoke    收回已经授予的权限

TCL:Transaction Control Language 事务控制语言TCL
命令:COMMIT                        提交

ROLLBACK                   回滚

SAVEPOINT                  在事务中设置保存点,可以回滚到此处

SET TRANSACTION     改变事务选项

#显示自动提交的状态

  SHOW VARIABLES LIKE 'autocommit';
    autocommit   自动提交
    value on   表示开启

#步骤1:开启事物
set autocommit=0;#禁用自动提交,写了这个就默认开启事物
start transaction;#可选的

#步骤2:编写事物中的SQL语句
(只支持 insert update delete,增删改查才有用。select可以使用但是没什么意义)ddl语言没有事物之说
语句1;
语句2;
...

#步骤3:结束事物
commit;提交事物,没有意外,语句可以全部执行

rollback;回滚事物,有意外回滚,语句不能全部执行(jdbc使用)

SQL语句分类和语法的更多相关文章

  1. 五、mysql中sql语句分类及常用操作

    1.sql语句分类: DQL语句 数据查询语言 select DML语句 数据操作语言 insert delete update DDL语句 数据定义语言 create drop alter TCL语 ...

  2. MySQL(三)之SQL语句分类、基本操作、三大范式

    一.SQL语句的分类     DML(Data Manipulation Langauge,数据操纵/管理语言) (insert,delete,update,select)     DDL(Data ...

  3. MariaDB——SQL语句分类汇总

    常用SQL语句汇总 SQL语句在所有的关系型数据库中都是通用的,算起来sql语句也是一门语言,只不过这门语言的主要操作对象是关系型的数据库,其中最常用的还是查询相关的语句. sql语句主要分为: DQ ...

  4. Oracle中SQL语句分类

    Oracle中SQL语句分类如下:1.DML语句 insert/delete/update/select/merge/explan plan/lock table2.DDL语句 create/atlt ...

  5. SQL语句分类

    SQL Structured Query Language SQL是结构化查询语言,是一种用来操作RDBMS的数据库语言,当前关系型数据库都支持使用SQL语言进行操作,也就是说可以通过 SQL 操作 ...

  6. oracle Sql语句分类

    dml语句:数据操作语句[insert,update,delete] ddl语句:数据定义语言[create table,drop table] dql语句:数据查询语句[select] dtl语句: ...

  7. oracle中sql语句的to_date语法

    完整日期:TO_DATE('2009-4-28 00:00:00', 'yyyy-mm-dd hh24:mi:ss'); to_date('2008/09/20','yyyy/mm/dd') 创建视图 ...

  8. 1 Oracle概述&与MySQL的差别&SQL语句分类复习

    一. 知识点目录 Oracle的概念和安装 基本查询 条件查询 Oracle中的函数 多表查询 子查询 表空间的状态 用户 视图 索引 序列 同义词 PLSQL编程 游标 存储过程 存储函数 触发器 ...

  9. 常用的sql语句(存储过程语法)

    1.存储过程语法 ①package create or replace package PKG_RPT_WAREHOUSE is -- Author : -- Created : 2018/9/28 ...

随机推荐

  1. Centos安装步骤

    下面是安装的详细步骤 1.选择自定义高级 2.下一步 3.选择稍后安装操作系统 4.选在Lunix和CentOS64位 5.修改安装的路径,自己选择 6.下面一直默认就可以了,点击下一步 7.注意注意 ...

  2. 用友UAP NC 单据节点_打开参照字段的问题_从打不开参照放大镜_到成功打开了但是取不到值_到修复成功

    项目的这个功能是17年开发的,但是当时没有测试通过,今年拿出来测试(通过后会上线). 有两个表数据一开始只打算用来计算时查询,没打算放到目标单据中做表体参照字段.后来改细节问题后放到目标单据中做参照字 ...

  3. 【Thread】java线程之对象锁、类锁、线程安全

    说明: 1.个人技术也不咋滴.也没在项目中写过线程,以下全是根据自己的理解写的.所以,仅供参考及希望指出不同的观点. 2.其实想把代码的github贴出来,但还是推荐在初学的您多亲自写一下,就没贴出来 ...

  4. Linux学习笔记:磁盘分区

    本文更新于2019-12-30.操作系统为Debian 8.9 (jessie). 以下假设新磁盘为/dev/sdb,要创建一个分区/dev/sdb1,文件系统类型为xfs.请根据实际情况,自行选择. ...

  5. [PAT] A1021 Deepest Root

    [题目大意] 给出n个结点和n-1条边,问它们能否形成一棵n个结点的树,如果能,从中选出结点作为树根,使整棵树的高度最大.输出所有满足要求的可以作为树根的结点. [思路] 方法一:模拟. 1 连通.边 ...

  6. PAT (Advanced Level) Practice 1055 The World's Richest (25 分) (结构体排序)

    Forbes magazine publishes every year its list of billionaires based on the annual ranking of the wor ...

  7. 【你不知道的javaScript 中卷 笔记1】javaScript中的类型与值

    一.类型与值 1.0 javaScript 七种内置类型: 空值(null) 未定义(undefined) 布尔值( boolean) 数字(number) 字符串(string) 对象(object ...

  8. 为什么要使用Redis? —— Redis实战经验

    (序言,从一张思维导图开始,慢慢介绍我自己关于Redis的实战经验) 现在很多互联网应用的服务端都使用到了Redis,到底大家为什么要用Redis呢?Redis有很多特性,比如高性能.高可用.数据类型 ...

  9. php 时间 日期

    获取月初与月末 /** * 获取当前月初与月末时间 * * */ $month =8; $year = 2019; $startDay = $year . '-' . $month . '-1'; $ ...

  10. python开发第一篇:初识python

    一. Python介绍 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为AB ...