博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关系数据库常用SQL语句语法大全
阅读量:6279 次
发布时间:2019-06-22

本文共 3190 字,大约阅读时间需要 10 分钟。

  hot3.png

创建表

语法

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;

修改表

语法

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

示例

-- 添加学生表`Phone`列ALERT TABLE Student ADD Phone VARCHAR(15) NULL;-- 删除学生表`Phone`列ALERT TABLE Student DROP COLUMN Phone;-- 修改学生表`Phone`列ALERT 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加1UPDATE 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_SIdDROP INDEX INDEX_SId;

创建视图

语法

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

查询子句:子查询可以是任何SELECT语句,但是常不允许含有ORDER BY子句和DISTINCT短语; WITH CHECK OPTION:表示对UPDATE、INSERT、DELETE操作时要保证更新。

示例

CREATE VIEW VIEW_Stu_ManAS 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

转载于:https://my.oschina.net/SeayXu/blog/669370

你可能感兴趣的文章
关于typedef的用法总结
查看>>
Apache用户认证、域名跳转、访问日志格式
查看>>
mwArray类说明
查看>>
CMD命令行:查看 Windows 操作系统的安装时间
查看>>
mysql explain
查看>>
golang交叉编译工具,gox使用入门
查看>>
Redis Master-Slave 读写分离测试
查看>>
git bash常用命令行以及初次接触yo以及bower
查看>>
修改MySQL默认空密码
查看>>
spring mvc访问静态文件(css/js/img)访问不到
查看>>
spring boot框架学习学前掌握之重要注解(1)-sprng的java配置方式
查看>>
plsql 书籍基础表结构
查看>>
nginx 第三方模块 modsecurity安装使用
查看>>
Kettle使用问题记录
查看>>
Android 透明(沉浸式)状态栏设计
查看>>
关于UIView的autoresizingMask属性
查看>>
sparkSQL UDF创建
查看>>
spring4中获取泛型的bean
查看>>
Ansible notes
查看>>
js实现二叉树
查看>>