SQL Server 经典入门 欢迎来到SQL世界Word格式文档下载.docx
- 文档编号:21831577
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:15
- 大小:23.39KB
SQL Server 经典入门 欢迎来到SQL世界Word格式文档下载.docx
《SQL Server 经典入门 欢迎来到SQL世界Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《SQL Server 经典入门 欢迎来到SQL世界Word格式文档下载.docx(15页珍藏版)》请在冰豆网上搜索。
……dropview删除视图
数据操作语言(DML)……用于操作关系型数据库对象内部的数据
3个基本的DML命令:
……insert插入
……update更新
……delect删除
数据查询语言(DQL)…..它的基本命令是select
数据控制语言…..SQL里的数据控制语言用于控制对象对数据的访问。
控制命令包括:
……..alterpassword
……..grant
……..revoke
……..createsynonym
数据管理命令……用于对数据库里的操作进行审计和分析,还有助于分析系统性能。
常用的两个数据管理命令如下所示:
…….startaudit
…….Stopaudit
事务控制命令……用于管理数据库事务
…….Commit保存数据库事务
…….Rollback撤销数据库事务
…….Savepoint在一组事务里创建标记点以用于回退(rollback)
…….settransaction设置事务的名称
第2章
………定义数据结构
定长字符串…..通常具有相同的长度,是使用定长数据类型保存的。
Character(n)……SQL定长字符串标准
变长字符串…….也就是长度不固定的字符串。
Charactervarying(n)…..SQL变长字符串标准
常见的变长字符串类型有:
………varchar(VARCHAR)是ANSI标准
………varinary(VARINARY)
………varchar2(VARCHAR2)
数值类型……数值被保存在定义为某种数值的字段里,一般包括:
……….Number(NUMBER)
……….Integer(INTEGER)
……….Real(REAL)
……….decimal(DECIMAL)
下面是SQL数值的标准:
……….Bin(n)
……….Bitvaryng(n)
……….Decimal(p,s)
……….Integer
……….Smallint
……….Bigint
……….Float
……….Real(s)
P表示字段的最大长度,s表示小数点后面的位数
日期和时间类型…….保存日期和时间信息的。
标准SQL支持DATETIME数据类型,包括以下类型:
………..date年代
………..time时间
……….Datetime
……….Timestamp
Datetime数据类型的元素包括:
……….Year
……….Month
……….Day
……….hour
………minute
……..second
Null…..表示没有值,
布尔值:
……..Boolean布尔值
……..true正确的
……..false错误的
……..null没有值,空值
第3章……..管理数据库对象
……..createtable创建表
基本语法如下:
Createtabletable_name
(filed1data_type[notnull],
filed2data_type[notnull],
filed3data_type[notnull]);
………primarykey主键约束
下面的范例把字段EMP_ID指定为表EMPLOYEES_TBL的主键(primarykey)
Createtableemployee_tbl
(emp_idchar(9)notnullprimarykey,
Emp_namevarchar(40)notnull,
Emp_st_addrvarchar(20)notnull,
Emp_cityvarchar(15)notnull,
Emp_stchar
(2)notnull,
Emp_zipinteger(5)notnull,
Emp_phoneinteger(10)null,
Emp_pagerinteger(10)null);
这种定义主键的方法是在创建表的过程中完成的,这时主键是个隐含约束。
我们还可以在建立表时明确指定主键做为一个约束,如下所示:
Primarykey(emp_id));
唯一性约束……..unique
外键约束……….foreignkey
研究下面范例里外键的创建:
Createtableemployee_pay_tst
(emp_idchar(9)notnull,
Positionvarchar2(15)notnull,
Date_hiredatenull,
Pay_ratenumber(4,2)notnull,
Date_last_raisedatenull,
Constraintemp_id_fkforeignkey(emp_id)referencesemployee_tbl(emp_id));
利用altertable命令可以向表里添加外键,比如下面这个范例:
Altertebleemployee_pay_tbl
Addconstraintid_fkforeignkey(emp_id)
Referencesemployee_tbl(emp_id);
去除约束…….利用altertable命令的dropconstraint选项可以去除已经定义的约束。
如果想去除表EMPLOYEES里的主键约束,可以使用下面的命令:
Altertableemployees
Dropconstraintemployees_pk;
在Mysql里可以使用下面这样的命令来去除主键约束:
Altertableemployeesdropprimarykey;
第4章……..规格化过程
第5章…......操作数据
SQL里3个基本的DML命令是:
………insert(INSERT)
………update(UPDATE)
………delete(DELETE)
从另一个表插入数据的语法如下:
Insertintotable_name[(‘column1’,‘column2’0)]
Select[*|(‘column1’,‘column2’)]
Formtable_name
[wherecondition(s)];
插入null值的语法如下:
Insertintoschema.table_name
Values(‘column1’,null,‘column3’);
更新一列数据的语法如下:
Updatetable_name
Setcolumn_name=‘value’
[wherecondition];
使用一条update语句更新多个字段,其语法如下所示:
Updatetable_name
Setcolumn1=‘value,’
[column=‘value’],
使用下面的语法从表里删除一行或多行:
Deletefromtable_name
[wherecondition]
警告:
不要省略where子句
第6章节……..管理数据库事务
控制事务的命令有3个;
…….commit
…….Rollback
…….Savepoint
Commit的语法是:
Commit[work];
删除表里所有价格低于¥14.00的产品
Deletefromproducts_tmp
Wherecost<
14;
8rowsdeleted.
使用一个commit语句把修改保存到数据库,完成这个事务。
Commit;
Rollback的语法如下所示:
Rollback[work];
选择表PRODUCTS_TMP里的全部记录,这是前一次删除cost<
14之后所剩的数据。
Select*fromproducts_tmp;
Prod_idrpod_desccost
11235witchcostume29.99
90lightedlanterns14.5
2345oakbookshelf59.99
3rowsselected.
接下来更新表,表标识为11235的产品价格修改为39.99
Updateproductssetcost=39.99whereprod=‘11235’;
现在执行rollback命令来撤销刚刚所做的修改:
Rollback;
最后,验证所做的修改并没有提交到数据库:
……..Rollback…….用于撤销还没有被保存到数据库的命令,它只能撤销上一个commit或是rollback命令之后的事务。
……..Savepoint……..保存点是事务过程中的一逻辑点,我们可以把这个点回退到这个点,而不必回退整个事务。
savepoint命令的语法如下:
savepointsavepoint_name这个命令就是在事务语句之间创建一个保存点。
在SQLserver中,使用的是savetransaction,而不是savepoint,
范例如下:
savetransactionsavepoint_name
除此之外,SQLServer与其他数据库实现完全相同。
…….rollbacktosavepoint回退到保存点的命令。
回退到保存点语法如下:
Rollbacktosavepoint_name
Releasesavepoint命令……..用于删除创建的保存点
Releasesavepoinsavepoint_name;
这是使用语法
MicrosoftSQLServer不支持releasesavepoint;
在事务完成以后,所有的保存点会被自动删除。
这个过程不必使用commit或者rollback命令
Settransaction命令…….用于初始化数据事务,可以指定特性。
我们可以指定事务是只读的或是可以读写的,如下所示:
Settransactionreadwrite;
Settransactionreadonly;
第7章节…….数据库的查询
简单的select语句语法如下:
Select[*|all|distinctcolumn1,column2]
Fromtable1[,table2];
……..distionct选项,禁止在输出结果里包含重复的行
……..from子句,告诉我们从哪些表里获取所需的数据
……..where子句,用于给查询添加条件
……..orderby子句,对输出结果进行升序排列
Orderby子句的语法是:
Select[all|*distinctcolumn1,column2,]
Fromtable1[,table2]
Where[condition1|expression2]
[and|orcondition|expression2]
Orderbycolumn1|integerasc|desc]
……..orderby1desc对第一个字段进行降序排列
……..count(*)函数统计表里的记录数量
语法如下:
Selectcolumn[(*)|column]
From[tablename|column];
使用字段别名来临时命名表的字段,其语法如下;
Selectcolumn_namealias_name
Fromtable_name;
第8章节………使用操作符对数据进行分类
比较操作符:
……相等;
(=)
……不相等;
(<
>
)
……小于;
…….大于;
(>
)
逻辑操作符;
…….Isnull用于与null进行比较wheresalaryisnull
…….between在最大值和最小值之间的值wheresalarybetween‘2000’and‘3000’
…….in用于把一个值与一个指定的值进行比较wheresalaryin(‘2000’,‘3000’)
…….like利用通配符把一个值与类似的值进行比较,通配符有,
百分号(%),下划线(_)
…….exists用于搜索指定表里是否存在满足特定条件的记录。
Whereexists(select*..);
……..unique
……..all用于把一个值与另一个集合里的全部值进行比较。
Wherecost>
all(selectcost);
……..any用于把一个值与另一表里任意值进行比较。
Whrecost>
any(selectcost);
……..some是any的别名,它们可以互换使用。
连接操作符;
……..and所有连接条件都必须为true,SQL语句才会执行。
……..or连接条件里有至少一个是true,SQL语句才会执行wherecost=10orcost=20
求反操作符
……..<
!
=(notequal)wheresalary<
‘2000’wheresalary!
=‘2000’
……..notbetweenwheresalarynotbetween‘2000’and‘3000’
……..notlikewheresalarynotlike‘200%’
……..isnotnullwheresalaryisnotnull
……..notexistswherenotexists(select);
……..notunique
……..notin操作符in的求反是notinwheresalarynotin(119,13,87,9);
算术操作符
……..+(加法)selectsalary+bonus,wheresalary+bonus>
‘40000’
……..--(减法)
…….*(乘法)
……./(除法)
第9章节……..汇总查询得到的数据
基本的汇总函数包括:
……...countselectcount(*)
………sumselectsum(distinctsalary)
………maxselectmax(salary)
………minselectmin(salary)
………avgselectavg(salary)
第10章节……..数据排序与分组
……..groupby把相同的数据划分为组
……..cube对分组列表中的所有字段进行排列组合,并根据每一种组合结果,分别进行统计汇总。
语法…….groupbycube(city,zip)
……..rollup用来进行小计,即在全部分组数据的基础上,对其中一部分进行汇总
语法……..groupbyrollup(city,zip)
……..having子句用于告诉groupby子句在输出里包含哪些分组。
作用相当于where
语法……groupbycityhavingavg(salary)>
2000
第11章节……..调整数据的外观
串接函数
……..oracleselect‘john’||‘son’把john和son连在一起显示
……..mysqlselectconcat(‘john’,‘son‘)
……..sqlserverselectjohn+‘’+son
……..translate替换函数(mysql,orale支持此函数)selectcity,translate(city,‘ind’,‘abc’)将每个i都替换成a,每个n替换成b,每个d替换成c
……..replace替换函数selectcity,replace(city,‘I’,‘b’)替换一个字符或多个字符
……..upper小写转换为大写函数,selectupper(city)
……..lower将大写转换为小写函数selectlower(city)
……..substring获取字符串子串的函数selectemp_idsubstring(emp_id,4,2)
……..instr在字符串里寻找指定的字符集,返回所在位置selectcityinstr(crty,‘a’,1,1)
……..ltrim用于从左边剪除字符串里的字符,selectposition,ltrim(position,‘sales’)
……..rtrim从右边剪除字符串里的字符,selectposition,rtrim(position,‘er’)
……..length得到字符串,数字,日期或表达式的长度selectprod_desc,length(prod_desc)
……..lenmysql与oracle支持lengthsqlserver支持lenselectprod_desc,len(prod_desc)
……..ifnull寻找null值,并且用99999999代替null值selectpager,ifnull(pager,9999999)
……..isnullsqlserver中使用isnull
……..coalesceoracle中使用coalesce
……..Lpad(左填充)用于在字符串左侧添加句字符或空格,使总长度达到30个字符,
SelectLpad(prod_desc,30,‘.’)
………rpad(右填充)用于在字符串右侧添加…..selectLpad(prod_desc,30,‘.’)
………ascII返回字符串最左侧字符的‘美国信息交换标准码(ASCII)
算术函数
………绝对值(abs)
………舍入(round)
………平方根(sqrt)
………符号(sign)
………幂(power)
………上限和下限(ceil,floor)
……….指数(exp)
第12章节…….日期和时间
………getdate()获取时间函数,selectgetdate()sqlserver中支持
………now()获取时间函数,selectnow()mysql中支持
………sysdate获取时间函数,selectsysdateoracle中支持
………dateadd增加时间函数,selectdate_hire,dateadd(mouth,1,date_hire)…sqlserver
………castANSI的cast操作符可以把一种类型,转换为另一种,cast(expressionasnew_data_type)
第十三章……..在查询里结合表
……..=等值结合wheretable1.column_name=teble2column2_name
…….使用表的别名selecte.emp_id,ep.salary,fromemployee_tble,employee_pay_tblep
…….<
>
不等值结合wheree.emp_id<
p.emp_id
……..outerjoinon外部结合
…….innerjoin自结合代替where
……..无结合笛卡尔积结合没有where的结合
第十四章…….使用子查询定义未确定数据
………子查询里不能用orderby,between
………select列表里不能引用任何blob,array,clob或nclob类型的值
第十五章………组合多个查询
组合查询操作符
…….Union操作符可以组合两个或多个select语名结果,select..union..select..where
…….unionall操作符与union一样,包括重复的结果
……..intersect组合两个select语句,但只返回第一个select语句里与第二个select语句一样的记录。
……..except组合两个select语句,返回第一个select语句里有但第二个select语句里没有的记录
第十六章…….利用索引改善性能
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SQL Server 经典入门 欢迎来到SQL世界 经典 入门 欢迎 来到 世界