[转帖]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 创建数

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

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

[转帖]SQL标准

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

[转帖]数据库命令行工具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 聚集索引和 非聚集索引 说明

https://www.cndba.cn/dave/article/4506 索引是与表或视图关联的磁盘上结构,可以加快从表或视图中检索行的速度。 索引包含由表或视图中的一列或多列生成的键。 这些键存储在一个结构(B 树)中,使 SQL Server 可以快速有效地查找与键值关联的行。 1 聚集索引

[转帖]SQL Server 不同版本之间的 区别说明

2021-05-12 23:5062070原创SQLServer 本文链接:https://www.cndba.cn/dave/article/4527 SQL Server 数据库版本也是在不断的进行迭代。目前主流存在的版本有:SQL Server 2008、2012、2014、2016、2017

[转帖]SQL Server 体系结构中的2个主要引擎 说明

2020-03-18 16:2321450原创SQLServer 本文链接:https://www.cndba.cn/dave/article/4498 SQL Server 由两个主要引擎组成∶关系引擎(relational engine)和存储引擎(storage engine)。 1 关系引擎

[转帖]SQL Server 内部数据库版本 及兼容表

2022-04-20 09:043100转载SQLServer Microsoft SQL Server 的较新版本创建的数据库无法附加或还原到较早的版本。之所以存在此限制,是因为较旧的版本不知道新版本中引入的文件格式有哪些变更。 如果你尝试将数据库附加到早期版本、或者还原到早期版本,将会收到 SQ

[转帖]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 2016不能全部用到CPU的逻辑核心数的问题

https://blog.csdn.net/u011966339/article/details/122969685 最近在工作中遇到了,sql server 2016 不能把CPU 的核心全部用到的问题.通过分析工具看到 总共CPU核心有72核,但sql 只能用到40核心,想信也有很多人遇到这问题