[转帖]SQL语言的分类总结

sql,语言,分类,总结 · 浏览次数 : 0

小编点评

**常用的SQL命令数据定义语言DDL(Data Definition Language)** **创建数据库** ```sql create database < 数据库名 > ``` **创建表** ```sql Create table <表名> (&<列名> <数据类型> [列级完整性约束条件] , ……) ``` **创建视图** ```sql Create view <视图名> [(列名),(列名)…] as <子查询> [with check option] ``` **创建索引** ```sql Create [unique] [cluster] index <索引名> on <表名>[次序] (&<列名>……..)Unique选项表示此索引的每一个索引值不能重复,对应唯一的数据记录。Cluster 选项表示要建立的索引是聚簇索引。 ``` **删除数据库** ```sql drop database < 数据库名 > ``` **删除表** ```sql drop table <表名> ``` **删除视图** ```sql drop view <视图名> ``` **删除索引** ```sql drop index <索引名> on <表名> ``` **添加列** ```sql Alter table <表名> [Add <新列名><数据类型>[完整性约束]]修改列的类型: ``` **修改列名** ```sql Alter table <表名> modify 列名 想改的类型修改表的名字: ``` **删除某列** ```sql Alter table <表名> drop 列名; ``` **数据查询语言DQL** ```sql SELECT用于数据库中数据的检索查询 ``` **数据操纵语言DML** ```sql INSERT, UPDATE,DELETE用于改变数据库中的数据,包括插入,删除,修改 ``` **插入数据** ```sql insert into <表名> (col1, col2, ...) values (<数据值>) ``` **更新语句** ```sql update table_name set column_name = value where condition ``` **删除语句** ```sql delete from table_name where condition ``` **数据控制语言DCL** ```sql GRANT,REVOKE主要为数据库访问权限控制,给用户授予访问权限:GRANT语句,取消授权:REVOKE授权 (GRANT) 向用户授予操作权限grant 权限 on 数据库对象 to 用户#授权grant select ,insert,update on db1.t1 to \"ycw\"@'%';撤销授权 (REVOKE)#撤销ycw用户对数据库db1的所有表的所有权限revoke all on db1.* from 'ycw'@\"%\"; ```

正文

https://zhuanlan.zhihu.com/p/555596861

 

常用的SQL命令

数据定义语言DDL(Data Definition Language)

create 、drop 、alter

主要为创建、修改、删除数据库的逻辑结构,其中包括表结构,视图和索引等。

create

  • 创建数据库: create database < 数据库名 >;
例:
mysql> create database company;
  • 创建表: Create table <表名> (<列名字> <数据类型> [列级完整性约束条件] , ………….);
例:
mysql> create table if not exists company.customers (
    -> id int unsigned auto_increment primary key,
    -> first_name varchar(20),
    -> last_name varchar(20),
    -> country varchar(20)
    -> ) engine=InnoDB;
  • 创建视图: Create view <视图名> [(列名),(列名)…] as <子查询> [with check option]
  • 创建索引: Create [unique] [cluster] index <索引名> on <表名>[次序] (<列名>……..)
    • Unique选项表示此索引的每一个索引值不能重复,对应唯一的数据记录。
    • Cluster 选项表示要建立的索引是聚簇索引。

 

drop

  • 删除数据库: drop database < 数据库名 >;
  • 删除表: drop table <表名>;
  • 删除视图: drop view <视图名>;
  • 删除索引: drop index <索引名> on <表名>;

alter

  • 增加列: Alter table <表名> [Add <新列名><数据类型>[完整性约束]]
  • 修改列的类型: Alter table <表名> modify 列名 想改的类型
  • 修改表的名字: alter table 表名 rename 新表名;
  • 删除某列: Alter table <表名> drop 列名;

数据查询语言DQL(Data Query Language)

SELECT

用于数据库中数据的检索查询。各种简单查询,连接查询等都属于DQL

  • 查询特定列的信息:
mysql> select emp_no,dept_no from dept_manager;
  • 从数据库的表中查询所有的数据:
mysql> select * from departments;
  • 从employees表中查找员工的数量:
mysql> select count(*) from employees;
  • 去除重复行:
SELECT distinct deptno_id from emp; #在select 语句中使用distinct 筛选重复
  • 找出名字以Christ开头的所有员工的人数:
mysql> select count(*) from employees where first_name like 'Christ%';
  • 找出名字以Christ开头并以ed结尾的所有员工的人数:
mysql> select count(*) from employees where first_name like 'Christ%ed';

数据操纵语言DML( Data Manipulation Language)

INSERT,UPDATE,DELETE

用于改变数据库中的数据,包括插入,删除,修改。

  • 插入数据(insert)
mysql> insert into company.customers (first_name,
-> last_name,country)
-> values
-> ('mike','christensen','USA'),
-> ('andy','Hollands','Australia'),
-> ('ravi','vedantam','India'),
-> ('rajiv','perera','Sri lanka');
  • 更新语句(update) 用于修改表中现有数据
mysql> update customers set first_name='rajiv',country='UK' where id=4;
#where字句是强制性的。如果没有给出它,update会更新整个表。
  • 删除语句(delete)
mysql> delete from customers where id=4 and first_name='rajiv';
#where字句是强制性的。如果没有给出它,delete将删除表中的所有行。

数据控制语言DCL( Data Control Language)

GRANT,REVOKE

主要为数据库访问权限控制,给用户授予访问权限:GRANT语句,取消授权:REVOKE

  • 授权 (GRANT) 向用户授予操作权限
    • grant 权限 on 数据库对象 to 用户
#授权
grant select ,insert,update on db1.t1 to "ycw"@'%';
  • 撤销授权 (REVOKE)
#撤销ycw用户对数据库db1的所有表的所有权限
revoke all on db1.* from 'ycw'@"%";  
#撤销ycw用户所有数据库的所有的表的权限
revoke all privileges on '*' from 'ycw'@'%';

与[转帖]SQL语言的分类总结相似的内容:

[转帖]SQL语言的分类总结

https://zhuanlan.zhihu.com/p/555596861 常用的SQL命令 数据定义语言DDL(Data Definition Language) create 、drop 、alter 主要为创建、修改、删除数据库的逻辑结构,其中包括表结构,视图和索引等。 create 创建数

[转帖]MYSQL--表分区、查看分区

https://www.cnblogs.com/pejsidney/p/10074980.html 一、 mysql分区简介 数据库分区 数据库分区是一种物理数据库设计技术。虽然分区技术可以实现很多效果,但其主要目的是为了在特定的SQL操作中减少数据读写的总量以缩减sql语句的响应时间,同时对于应用

[转帖]MySQL索引优化分析之性能分析(Explain执行计划)

一、MySQL常见瓶颈 二、性能分析工具Explain(执行计划 ) 使用EXPLAIN关键字可以模拟优化器执行SQL查询语句,从而知道MySQL是如何处理你的SQL语句的。分析你的查询语句或是表结构的性能瓶颈。查看官网说明: 使用: Explain + SQL语句 作用: 三、各字段解释 3.1、

[转帖]TiDB调优小结

https://www.jianshu.com/p/d5ee4dca66d8 TiDB概览 先来一段官网的描述 TiDB server:无状态SQL解析层,支持二级索引,在线ddl,兼容MySQL协议,数据转储SQL输入->解析语法树(AST)->逻辑计划分析->执行计划优化->cost-base

[转帖]SQL标准

SQL 的标准 1986 年 10 月,美国国家标准协会 ANSI 采用 SQL 作为关系数据库管理系统的标准语言,并命名为 ANSI X3. 135-1986,后来国际标准化组织(ISO)也采纳 SQL 作为国际标准。 1989 年,ANSI 采纳并使用了在 ANSI X3.135-1989 报告

[转帖]USQL:支持SQL/NoSQL数据库的通用命令行工具

https://ywnz.com/linuxysjk/2342.html USQL 是一款使用 Go 语言开发的支持 SQL/NoSQL 数据库的通用命令行工具,它支持多种主流的数据库软件,目前最新版本是usql 0.7.0。比如 PostgreSQL、MySQL、Oracle Database、S

[转帖]数据库命令行工具USQL、mycli、litecli、pgcli

https://www.cnblogs.com/-wenli/p/11239042.html USQL USQL 是一款使用 Go 语言开发的支持 SQL/NoSQL 数据库的通用命令行工具,它支持多种主流的数据库软件,目前最新版本是usql 0.7.0。比如 PostgreSQL、MySQL、Or

[转帖]Sql Server中通过sql命令获取cpu占用及产生锁的sql

https://www.jb51.net/article/266255.htm 这篇文章主要介绍了Sql Server中通过sql命令获取cpu占用及产生锁的sql,需要的朋友可以参考下 获取SQLSERVER中产生锁的SQL语句 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1

[转帖]SQL Server超过了每行的最大字节数(8060)的原因和解决办法

一、现象 出现这种错误都发生在SQL语句建表时,错误提示: "警告: 已创建表 'XXXX,但其最大行大小(10438)超过了每行的最大字节数(8060)。如果结果行长度超过 8060 字节,则此表中行的 INSERT 或 UPDATE 将失败。" 二、原因 为什么说每行的最大长度是8096字节?

[转帖]5.2. 使用HINT

¶ 本章节包含以下内容: 概述 HINT的功能 HINT的使用 配置参数 示例 注意 5.2.1. 概述 ¶ KingbaseES使用的是基于成本的优化器。优化器会估计SQL语句的每个可能的执行计划的成本,然后选择成本最低的执行计划来执行。因为优化器不计算数据的某些属性,比如列之间的相关性,优化器有