标准SQL语句大全【持续更新】(navicat12版亲测有效)

提示:用ctrl+F快速查找相关指令哦


-- 创建数据库
create database test_sql;

-- 修改数据库名称(只有 sysadmin 和 dbcreator 固定服务器角色的成员才答能执行 sp_renamedb)
sp_renamedb 'test_sql','exam_sql';

-- 删除数据库
drop database test_sql;

-- 引用数据库
use test_sql;

-- 创建表
create table student(
sid int NOT NULL PRIMARY KEY,
sname VARCHAR(20) ,
sage INT not NULL CHECK (sage BETWEEN 1 and 100),
semail VARCHAR(50) CHECK (semail LIKE '_%@._%')UNIQUE
);

-- 删除表
DROP TABLE student;

-- 增加列(列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度)
ALTER TABLE student add sphone VARCHAR(16);

-- 添加主键
ALTER TABLE student ADD PRIMARY KEY(sid);

-- 删除主键
ALTER TABLE student DROP primary key(sid);

-- 创建索引(索引允许数据库高效找到关系中那些索引数组属性上取给定值的元组,不用扫描所有元组)
create UNIQUE INDEX emailIndex on student (semail);

-- 删除索引 (索引是不可更改的,想更改必须删除重新建)
drop INDEX emailIndex on student;

-- 创建视图 (存储数据库视图关系,视图中的字段就是来自一个或多个数据库中的真实的表中的字段。我们可以向视图添加 SQL 函数、WHERE 以及 JOIN 语句,我们也可以提交数据,就像这些来自于某个单一的表)
CREATE VIEW studentView as SELECT sid from student;

-- 删除视图
DROP VIEW studentView;

-- 添加数据(需要注意主外键重复、check等约束)
insert into student(sid,sname,sage,semail,sphone) VALUES (3,'test',17,'3@.com','15239958942');

--更新数据
update student     SET sphone ='15239958914' where sage BETWEEN 10 and 20;

-- 查找数据
select * from student;--全部查找
select * from student where sid = 2;--条件查找
select * from student where semail like '%@%';--like查找
select * from student ORDER BY sid DESC;--降序查找
select COUNT(DISTINCT sage) as sagecount from student ;--总数查找,DISTINCT age查找不同年龄,没有disinct表示找所有sage值不空的个数,*、1代表查所有
select SUM(sage) as sagesum from student;--查找年龄总和
select AVG(sage) as sageavg from student;--查找平均年龄
select MAX(sage) as sagemax from student;--查找最大
select MIN(sage) as sagemin from student;--查找最小

-- 删除数据
DELETE FROM student where sid = 2;

-- UNION 运算符通过组合其他两个结果表(例如 TABLE1 和 TABLE2)并消去表中任何重复行而派生出一个结果表。当 ALL 随 UNION 一起使用时(即 UNION ALL),不消除重复行
select semail from student UNION select semail from users;

-- EXCEPT 运算符通过包括所有在 TABLE1 中但不在 TABLE2 中的行并消除所有重复行而派生出一个结果表。当 ALL 随 EXCEPT 一起使用时 (EXCEPT ALL),不消除重复行。
select semail from student EXCEPT select semail from users;

-- INTERSECT 运算符通过只包括 TABLE1 和 TABLE2 中都有的行并消除所有重复行而派生出一个结果表。当 ALL 随 INTERSECT 一起使用时 (INTERSECT ALL),不消除重复行。
select semail from student INTERSECT select semail from users;

-- 左外连接(左连接):结果集几包括连接表的匹配行,也包括左连接表的所有行。
select student.semail from student LEFT JOIN users ON student.semail = users.semail;

-- 右外连接(右连接):结果集既包括连接表的匹配连接行,也包括右连接表的所有行。
select student.semail from student RIGHT JOIN users ON student.semail = users.semail;

-- 全外连接:不仅包括符号连接表的匹配行,还包括两个连接表中的所有记录
select student.semail from student FULL JOIN users ON student.semail = users.semail;

-- 一张表,一旦分组 完成后,查询后只能得到组相关的信息;分组需要包含信息:(统计信息) count,sum,max,min,avg  分组的标准);在SQLServer中分组时:不能以text,ntext,image类型的字段作为分组依据;在select统计函数中的字段,不能和普通的字段放在一起。
select sage,sum(sage) as '年龄和' from student GROUP BY sage;
全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
正在热议
更多
# 一张图晒出你司的标语 #
4378次浏览 77人参与
# AI面会问哪些问题? #
28219次浏览 565人参与
# 开放七大实习专项,百度暑期实习值得冲吗 #
15381次浏览 223人参与
# 你的实习产出是真实的还是包装的? #
20395次浏览 343人参与
# 找AI工作可以去哪些公司? #
9351次浏览 247人参与
# 春招至今,你的战绩如何? #
66175次浏览 584人参与
# 米连集团26产品管培生项目 #
13397次浏览 285人参与
# 从事AI岗需要掌握哪些技术栈? #
9172次浏览 321人参与
# 中国电信笔试 #
32068次浏览 295人参与
# 你做过最难的笔试是哪家公司 #
34279次浏览 245人参与
# 投递几十家公司,到现在0offer,大家都一样吗 #
340960次浏览 2175人参与
# 哪些公司真双非友好? #
69694次浏览 289人参与
# 阿里笔试 #
179001次浏览 1318人参与
# 机械人避雷的岗位/公司 #
62708次浏览 393人参与
# 小马智行求职进展汇总 #
25139次浏览 80人参与
# 第一份工作一定要去大厂吗 #
14875次浏览 122人参与
# 金三银四,你的春招进行到哪个阶段了? #
22226次浏览 284人参与
# 担心入职之后被发现很菜怎么办 #
291382次浏览 1210人参与
# 为了减少AI幻觉,你注入过哪些设定? #
26274次浏览 310人参与
# 应届生第一份工资要多少合适 #
20694次浏览 86人参与
# HR最不可信的一句话是__ #
6346次浏览 114人参与
# 沪漂/北漂你觉得哪个更苦? #
10029次浏览 194人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务