创建表

语法

CREATE TABLE <表名>(<列名> <数据类型>[列级完整性约束条件]
[,<列名> <数据类型>[列级完整性约束条件]]…);

列级完整性约束条件有NULL[可为空]、NOT NULL[不为空]、UNIQUE[唯一],可以组合使用,但是不能重复和对立关系同时存在。

示例

-- 创建学生表
CREATE TABLE Student
(
Id INT NOT NULL UNIQUE PRIMARY KEY,
Name VARCHAR(20) NOT NULL,
Age INT NULL,
Gender VARCHAR(4) NULL
);

删除表

语法

DROP TABLE <表名>;

示例

-- 删除学生表
DROP TABLE Student;

清空表

语法

TRUNCATE TABLE <表名>;

示例

-- 删除学生表
TRUNCATE TABLE Student;

修改表

语法

-- 添加列
ALTER TABLE <表名> [ADD <新列名> <数据类型>[列级完整性约束条件]]
-- 删除列
ALTER TABLE <表名> [DROP COLUMN <列名>]
-- 修改列
ALTER TABLE <表名> [MODIFY COLUMN <列名> <数据类型> [列级完整性约束条件]]

示例

-- 添加学生表`Phone`列
ALTER TABLE Student ADD Phone VARCHAR(15) NULL;
-- 删除学生表`Phone`列
ALTER TABLE Student DROP COLUMN Phone;
-- 修改学生表`Phone`列
ALTER TABLE Student MODIFY Phone VARCHAR(13) NULL;

SQL查询语句

语法

SELECT [ALL|DISTINCT] <目标列表达式>[,<目标列表达式>]…
FROM <表名或视图名>[,<表名或视图名>]…
[WHERE <条件表达式>]
[GROUP BY <列名> [HAVING <条件表达式>]]
[ORDER BY <列名> [ASC|DESC]…]

SQL查询语句的顺序:SELECT、FROM、WHERE、GROUP BY、HAVING、ORDER BY。SELECT、FROM是必须的,HAVING子句只能与GROUP BY搭配使用。

示例

SELECT * FROM Student
WHERE Id>10
GROUP BY Age HAVING AVG(Age) > 20
ORDER BY Id DESC

SQL插入语句

语法

-- 插入不存在的数据
INSERT INTO <表名> [(字段名[,字段名]…)] VALUES (常量[,常量]…);
-- 将查询的数据插入到数据表中
INSERT INTO <表名> [(字段名[,字段名]…)] SELECT 查询语句;

示例

-- 插入不存在的数据
INSERT INTO Student (Name,Age,Gender) VALUES ('Andy',30,'女');
-- 将查询的数据插入到数据表中
INSERT INTO Student (Name,Age,Gender)
SELECT Name,Age,Gender FROM Student_T WHERE Id >10;

SQL更新语句

语法

UPDATE <表名> SET 列名=值表达式[,列名=值表达式…]
[WHERE 条件表达式]

示例

-- 将Id在(10,100)的Age加1
UPDATE Student SET Age= Age+1 WHERE Id>10 AND Id<100

SQL删除语句

语法

DELETE FROM <表名> [WHERE 条件表达式]

示例

-- 删除Id小于10的数据记录
DELETE FROM Student WHERE Id<10;

创建索引

语法

CREATE [UNIQUE] [CLUSTER] INDEX <索引名> ON <表名>(<列名>[<次序>][,<列名>[<次序>]]…);

UNIQUE:表明此索引的每一个索引值只对应唯一的数据记录

CLUSTER:表明建立的索引是聚集索引

次序:可选ASC(升序)或DESC(降序),默认ASC

示例

-- 建立学生表索引:单一字段Id索引倒序
CREATE UNIQUE INDEX INDEX_SId ON Student (Id DESC);
-- 建立学生表索引:多个字段Id、Name索引倒序
CREATE UNIQUE INDEX INDEX_SId_SName ON Student (Id DESC,Name DESC);

删除索引

语法

DROP INDEX <索引名>;

示例

-- 删除学生表索引 INDEX_SId
DROP INDEX INDEX_SId;

创建视图

语法

CREATE VIEW <视图名>
AS SELECT 查询子句
[WITH CHECK OPTION]

查询子句:子查询可以是任何SELECT语句,但是常不允许含有ORDER BY子句和DISTINCT短语;

WITH CHECK OPTION:表示对UPDATE、INSERT、DELETE操作时要保证更新。

示例

CREATE VIEW VIEW_Stu_Man
AS SELECT * FROM Student WHERE Gender = '男'
WITH CHECK OPTION

删除视图

语法

DROP VIEW <视图名>;

示例

DROP VIEW VIEW_Stu_Man;

SQL的访问控制

访问控制是控制用户的数据存储权限,由DBA来决定。

SQL标准语句包括SELECT、INSERT、UPDATE和DELETE

语法

-- 1.授权
GRANT <权限>[,<权限>]…
[ON <对象类型> <对象名>]
TO <用户>[,<用户>]…
[WITH GRANT OPTION]
-- 2.收回授权
REVOKE <权限>[,<权限>]…
[ON <对象类型> <对象名>]
FROM <用户>[,<用户>]…

WITH GRANT OPTION:若指定此子句,表示该用户可以将权限赋给其他用户

示例

-- 授权
GRANT SELECT,INSERT,UPDATE ON TABLE TO USER_Admin WITH GRANT OPTION
-- 收回授权
REVOKE SELECT,INSERT,UPDATE ON TABLE FROM USER_Admin

关系数据库常用SQL语句语法大全的更多相关文章

  1. 【知识库】-数据库_MySQL常用SQL语句语法大全示例

    简书作者:seay 文章出处: 关系数据库常用SQL语句语法大全 Learn [已经过测试校验] 一.创建数据库 二.创建表 三.删除表 四.清空表 五.修改表 六.SQL查询语句 七.SQL插入语句 ...

  2. sql语句语法大全

    一.基础 1.说明:创建数据库 CREATE DATABASE database-name 2.说明:删除数据库 drop database dbname 3.说明:备份sql server --- ...

  3. 常用SQL语句大全

    一些常用SQL语句大全   一.基础1.说明:创建数据库CREATE DATABASE database-name2.说明:删除数据库drop database dbname3.说明:备份sql se ...

  4. 经典MSSQL语句大全和常用SQL语句命令的作用

    下列语句部分是Mssql语句,不可以在access中使用. SQL分类: DDL类型包括数据库.表的创建,修改,删除,声明—数据定义语言(CREATE,ALTER,DROP,DECLARE) DML类 ...

  5. Oracle数据库常用Sql语句大全

    一,数据控制语句 (DML) 部分 1.INSERT  (往数据表里插入记录的语句) INSERT INTO 表名(字段名1, 字段名2, ……) VALUES ( 值1, 值2, ……); INSE ...

  6. HIVE常用SQL语句及语法

    HIVE建内部表语句 create table dll102.sougou (id string,pwd string,name string,count int,seqno int,address ...

  7. oracle常用SQL语句(汇总版)

    Oracle数据库常用sql语句 ORACLE 常用的SQL语法和数据对象一.数据控制语句 (DML) 部分 1.INSERT (往数据表里插入记录的语句) INSERT INTO 表名(字段名1, ...

  8. 常用SQL语句(增删查改、合并统计、模糊搜索)

    转自:http://www.cnblogs.com/ljianhui/archive/2012/08/13/2695906.html 常用SQL语句 首行当然是最基本的增删查改啦,其中最重要的是查. ...

  9. SQL语句操作大全

    SQL语句操作大全   本文分为以下六个部分: 基础部分 提升部分 技巧部分 数据开发–经典部分 SQL Server基本函数部分 常识部分 一.基础 1.说明:创建数据库CREATE DATABAS ...

随机推荐

  1. 协议分析 - DHCP协议解码详解

    协议分析 - DHCP协议解码详解 [DHCP协议简介]         DHCP,全称是 Dynamic Host Configuration Protocol﹐中文名为动态主机配置协议,它的前身是 ...

  2. Linux系统的理解及学习Linux内核的心得

    作业列表      (点击作业跳转) linux内核分析作业:以一简单C程序为例,分析汇编代码理解计算机如何工作 linux内核分析作业:操作系统是如何工作的进行:完成一个简单的时间片轮转多道程序内核 ...

  3. ENode 2.6 架构与设计简介以及全新案例分享

    前言 ENode是一个应用开发框架,为开发人员提供了一整套基于DDD+CQRS+ES+EDA架构风格的解决方案.ENode从发布1.0开始到现在的差不多两年时间,我几乎每周都在更新设计或实现代码.以至 ...

  4. cookie自动登录的实现

         cookie自动登录是指把用户登录的信息按期限(自定)保存在客户端,当用户请求登录时判断客户端用没有cookie对象,有的话填充值,否则登录界面的输入框为空,不进行填充.      登录界面 ...

  5. 每天一个linux命令(47):iostat命令

    Linux系统​中的 iostat是I/O statistics(输入/输出统计)的缩写,iostat工具将对系统的磁盘操作活动进行监视.它的特点是汇报磁盘活动统计情况,同时也会汇报出CPU使用情况. ...

  6. spark参数调优

    摘要 1.num-executors 2.executor-memory 3.executor-cores 4.driver-memory 5.spark.default.parallelism 6. ...

  7. Android开发-之认识palette

    Android开发中,Google工程师已经给我们封装好了很多的按钮,使得我们在开发中非常的方便和便捷. 那么今天就来认识一下常用的按钮,那么在之前的课程中我已经详细讲过了Button按钮,那么这里就 ...

  8. Android中activity背景色的设置

    Android应用开发——系统自带样式Android:theme •android:theme="@android:style/Theme.Dialog"   将一个Activit ...

  9. 创建外网 ext_net - 每天5分钟玩转 OpenStack(104)

    虽然外部网络是已经存在的网络,但我们还是需要在 Neutron 中定义外部网络的对象,这样 router 才知道如何将租户网络和外部网络连接起来. 上一节我们已经为创建外部网络配置了ML2,本节将通过 ...

  10. T-SQL:毕业生出门需知系列(目录)

    一.前言: 作为一个应届毕业生又要准备面试 ASP.NET 攻城狮了,以前在图书馆觉得这本书讲得挺基础,这次回家就自己买了本用来复习,顺便做下读书笔记. 第4版 二.代码下载: 官方:http://f ...