首先,数据库系统原理是你初学的必经之路。然后可以转向学习SQL Server、Oracle、MySQL的其中一种,并且购买相关书籍,跟相关有经验的老师或者是那些数据库工程师学习,当你觉得差不多的时候去考个相关的数据库认证证书,不过价格很贵哦,你出去找工作也就容易得多了。数据库行业的话,首先要精通起码一门数据库,然后要有多年的开发和维护经验,一般都是5年以上的。其次,你在数据库学习的过程中,不好忘记好好学学其中的一门编程语言,比如Java、C#、C++等。因为有时候你这个数据库工程师难免要给这些程序提供接口来使用的,对这些语言有相关的认识你也就更加得心应手了的。
SQL是StructuredQuevyLanguage(结构化查询语言)的缩写。SQL是专为数据库而建立的 *** 作命令集,是一种功能齐全的数据库语言。在使用它时,只需要发出“做什么”的命令,“怎么做”是不用使用者考虑的。SQL功能强大、简单易学、使用方便,已经成为了数据库 *** 作的基础,并且现在几乎所有的数据库均支持SQL。
##1二、SQL数据库数据体系结构
SQL数据库的数据体系结构基本上是三级结构,但使用术语与传统关系模型术语不同。在SQL中,关系模式(模式)称为“基本表”(basetable);存储模式(内模式)称为“存储文件”(storedfile);子模式(外模式)称为“视图”(view);元组称为“行”(row);属性称为“列”(column)。名称对称如^00100009a^:
##1三、SQL语言的组成
在正式学习SQL语言之前,首先让我们对SQL语言有一个基本认识,介绍一下SQL语言的组成:
1一个SQL数据库是表(Table)的集合,它由一个或多个SQL模式定义。
2一个SQL表由行集构成,一行是列的序列(集合),每列与行对应一个数据项。
3一个表或者是一个基本表或者是一个视图。基本表是实际存储在数据库的表,而视图是由若干基本表或其他视图构成的表的定义。
4一个基本表可以跨一个或多个存储文件,一个存储文件也可存放一个或多个基本表。每个存储文件与外部存储上一个物理文件对应。
5用户可以用SQL语句对视图和基本表进行查询等 *** 作。在用户角度来看,视图和基本表是一样的,没有区别,都是关系(表格)。
6SQL用户可以是应用程序,也可以是终端用户。SQL语句可嵌入在宿主语言的程序中使用,宿主语言有FORTRAN,COBOL,PASCAL,PL/I,C和Ada语言等。SQL用户也能作为独立的用户接口,供交互环境下的终端用户使用。
##1四、对数据库进行 *** 作
SQL包括了所有对数据库的 *** 作,主要是由4个部分组成:
1数据定义:这一部分又称为“SQLDDL”,定义数据库的逻辑结构,包括定义数据库、基本表、视图和索引4部分。
2数据 *** 纵:这一部分又称为“SQLDML”,其中包括数据查询和数据更新两大类 *** 作,其中数据更新又包括插入、删除和更新三种 *** 作。
3数据控制:对用户访问数据的控制有基本表和视图的授权、完整性规则的描述,事务控制语句等。
4嵌入式SQL语言的使用规定:规定SQL语句在宿主语言的程序中使用的规则。
下面我们将分别介绍:
##2(一)数据定义
SQL数据定义功能包括定义数据库、基本表、索引和视图。
首先,让我们了解一下SQL所提供的基本数据类型:(如^00100009b^)
1数据库的建立与删除
(1)建立数据库:数据库是一个包括了多个基本表的数据集,其语句格式为:
CREATEDATABASE
其中,
例:要建立项目管理数据库(xmmanage),其语句应为:
CREATEDATABASExmmanage
(2)数据库的删除:将数据库及其全部内容从系统中删除。
其语句格式为:DROPDATABASE
例:删除项目管理数据库(xmmanage),其语句应为:
DROPDATABASExmmanage
2基本表的定义及变更
本身独立存在的表称为基本表,在SQL语言中一个关系唯一对应一个基本表。基本表的定义指建立基本关系模式,而变更则是指对数据库中已存在的基本表进行删除与修改。
不同的shoppingid 表示不同商品吗?如果是的话,查询可以这样写:
-- 每种商品的销量SELECT SUM(num) As 总销量 FROM 表名 GROUP BY shoppingId
-- 某种(shoppingid=5)商品的销量
SELECT SUM(sum) As 总销量 FROM 表名 WHERE shoppingid = 5 GROUP BY shoppingid
--或者
SELECT SUM(sum) As 总销量 FROM 表名 WHERE shoppingid = 5
另外,您的疑问:“……执行select sum(num) from 表名 where shoppingid=5时是不是就出错了……”并不存在!如果表中没有指定的记录,查询能够正常执行,只是返回的结果为空值(null)
基本的就是INSERT
DELETE
SELECT
UPDATE的使用,难点的就是触发器以及存储过程的使用,不过都离不开那4大语句~
我给你说说触发器和存储过程吧~~
使用create
trigger命令创建触发器
语法如下
create
trigger
trigger_name
on{table|view}
[with
encryption]
{
{{for|after|insted
of}{[delete][,][insert][,][update]}
[not
for
replication]
as
[{if
update
(column)
[{and|or}
update
(column)]
[n]
|if
(columns_updated(){bitwise_operator}updated_bitmask)
{comparison_operator}column_bitmask[n]
}]
sql_statement
[n]
}
}
至于存储过程是使用create
procedure创建存储过程的
语法如下
create
procedure
procedure_name[;version
number]
[{@parament
date_type}
[VARYING]
[=default
value][OUTPUT]
][,n]
[with
{recompite|encryption|recompile,encryption}]
[for
replication]
as
sql_statement
[n]
1 select firstname from actor where birthplace=‘Japan’ and birthplace=‘Sweden’ order by lastname asc--升序 或者 desc----降序
select firstname from actor where birthplace=‘Japan’ and birthplace=‘Sweden’ order by birthplace 后面同上
2 select count(mvid) from ranking
3 select studio from movieinfo where mvid in (select count(mvid) from cast where actorID in (select actorID from actor where birthplace='UK' ) group by mvid having count(mvid>2))
后面的等等 哈哈
4select username,email from member where username in (select username from ranking where score<4 or score is null)-----如果你数据库中score字段有空格数据 在null后面 加上 空格score=' ' 就行了
5 select username,email from member where EXISTS (select username from ranking where score<4 or score is null)-----如果你数据库中score字段有空格数据 在null后面 加上 空格score=' ' 就行了
以上就是关于如果想成为数据库工程师 SQL方面的 需要掌握哪些知识与技能 详细点全部的内容,包括:如果想成为数据库工程师 SQL方面的 需要掌握哪些知识与技能 详细点、SQL的简单介绍(基本的sql语句)、数据库 *** 作的SQL语句问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)