2023年新手学习SQL必看SQL基础知识.pdf

上传人:H****o 文档编号:91165489 上传时间:2023-05-22 格式:PDF 页数:9 大小:312.24KB
返回 下载 相关 举报
2023年新手学习SQL必看SQL基础知识.pdf_第1页
第1页 / 共9页
2023年新手学习SQL必看SQL基础知识.pdf_第2页
第2页 / 共9页
点击查看更多>>
资源描述

《2023年新手学习SQL必看SQL基础知识.pdf》由会员分享,可在线阅读,更多相关《2023年新手学习SQL必看SQL基础知识.pdf(9页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、 新手学习 SQL必看,SQL 基础知识 SQL 定义:SQL 是一种面向数据库的通用数据处理语言标准,能完成以下几类功能:提取查询数据,插入修改删除数据,生成修改和删除数据库对象,数据库安全控制,数据库完整性及数据保护控制。SQL 分类:DDL数据定义语言CREATE,ALTER,DROP,DECLARE DML数据操纵语言SELECT,DELETE,UPDATE,INSERT DCL数据控制语言GRANT,REVOKE,COMMIT,ROLLBACK db2 数据类型 CHAR():定长字符串 最大长度为 254 VARCHAR():变长字符 最大长度为 4000 SMALLINT:短整型

2、数字 长度为 2 字节 INTEGER:整型数字 长度为 4 字节 REAL:单精度浮点 32 位近似值 DOUBLE:双精度浮点 64 位近似值 DECIMAL(m,n):数字 精度为 m 小数位为 n DATE:日期时间 TIME:日期时间 TIMESTAMP:日期时间 DDL数据库定义语言:直接提交的。CREATE:用于创建数据库对象。DECLARE:除了是创建只在过程中使用的临时表外,DECLARE 语句和 CREATE 语句非常相似。唯一可以被声明的对象是表。并且必须放入用户临时表空间。DROP:可以删除任何用 CREATE 数据库对象和 DECLARE 表创建的对象。ALTER:允

3、许修改某些数据库对象的信息。不能修改索引。下面主要基于对象介绍基本的语法:1、数据库:创建数据库:CREATE DATABASE database-name USING CODESET codeset TERRITORY territory 注:代码页的问题。删除数据库:drop database dbname 2、表:创建新表:create table tabname(col1 type1 not null primary key,col2 type2 not null,.)根据已有的表创建新表:A:create table tab_new like tab_old B:create tab

4、le tab_new as select col1,col2 from tab_old definition only 修改表:增加一个列:Alter table tabname add column col type 注:列增加后将不能删除。DB2 中列加上后数据类型也不能改变,唯一能改变的是增加 varchar 类型的长度。添加主键:Alter table tabname add primary key(col)删除主键:Alter table tabname drop primary key(col)删除表:drop table tabname 3、表空间:创建表空间:create ta

5、blespace tbsname pagesize 4k managed by database using(file file size)表空间加入容器:alter tablespace tablespace_name add(file filename size)注:该操作是不可逆的,加入容器后将不能将其删除,因此在加入的时候注意。删除表空间:drop tablespace tbsname 4、索引:创建索引:create unique index idxname on tabname(col.)删除索引:drop index idxname 注:索引是不可更改的,想更改必须删除重新建。5

6、、视图:创建视图:create view viewname as select statement 删除视图:drop view viewname 注:视图唯一能修改的是引用类型列,改变列的范围。其他定义好了都不能修改。当视图基于的基表 drop 后,视图变为无效。DML数据库操纵语言,它不隐式地提交当前事务,是否提交视环境设定而定。SELECT:从表中查询符合数据 注:条件中连接的问题,防止出现笛卡儿乘积 DELETE:删除已有表的数据 UPDATE:更新已有表的数据 INSERT:向已有表中插入数据 注:DELETE,UPDATE 和 INSERT 是否直接提交取决与执行语句所在的环境。在

7、执行时注意事务日志满的情况。1、select 时,注意索引谓词和非索引谓词,尽量在有索引的列上使用索引谓词。谓词类型 可索引注 释 Colcon Y 代表;,;=,=,=,但是;不是可索引的。Col between con1 and con2 Y 在匹配系列中必须是最后的。Col in list Y 仅对一个匹配列 Col is null Y Col like xyz%Y 模糊匹配%在后面。Col like%xyz N 模糊匹配%在前面。Col1 Col2 N Col1 和 col2 来自同一个表 ColExpression N 例如:c1c1+1/2 Pred1 and Pred2 Y Pr

8、ed1 和 Pred2 都是可索引的,指相同索引的列 Pred1 or Pred2 N 除了c1=a or c1=b 外,他可以被认为是 c1 ina,b Not Pred1 N 或者任何的等价形式:Not between,Not in,Not like等等。使用索引的例子介绍:;、单个表上索引查询的介绍:A:select*from t1 where c1=10;在 c1 列上无索引,如何检索 在 c1 列上有索引,如何检索 B:select*from t1 where c1=10 and c2 between 5 and 10 and c3 like A%仅在 c1 列上有索引 在 c1,c

9、2 和 c3 列上有单独的索引 在 c1,c2 和 c3 列上有联合索引 此处可以填加索引匹配规则和高级规则,比较难理解!;、两个或多个表上索引查询的介绍:(1)、使用循环嵌套法执行查询 A:select t1.c1,t1.c2,t2.c3,t2.c4 from t1,t2 where t1.c1=10 and t1.c2=t2.c3 介绍查询的方法,看看哪列上最需要索引。B:select t1.c1,t1.c2,t2.c3,t2.c4 from t1,t2 where t1.c1=10 and t2.c4=10 and t1.c2=t2.c3(2)、使用归并连接执行连接查询 例:select

10、 t1.c1,t1.c2,t2.c3,t2.c4 from t1,t2 where t1.c1=10 and t2.c4=10 and t1.c2=t2.c3(3)、三个以上的表进行连接查询采取的规则或者方法 2、GROUP BY:实现简单分组的功能,当用 group by 时,查询选择列中除了在 group by 中出现的和常量外,其他的列上要用分组函数。可以使用一些分组函数实现一些列不在 group by 中出现,min,max 等。3、HAVING 的使用,对一些分组列进行条件判断。4、ORDER BY 子句使得 SQL 在显示查询结果时将各返回行按顺序排列,返回行的排列顺序由 ORDE

11、R BY 子句指定的表达式的值确定。2、DELETE:从表中删除记录 语法格式:DELETE FROM tablename WHERE(conditions)3、INSERT:向表中插入记录 语法格式:INSERT INTO tablename(col1,col2,)VALUES(value1,value2,);INSERT INTO tablename(col1,col2,)VALUES(value1,value2,),(value1,value2,),Insert 不会等待任何程序,不会导致锁定。4、UPDATE:语法格式:UPDATE tabname SET(col1=values1,c

12、ol2=values2,)WHERE(conditions);注:update 的速度比较慢,要在相应列上建立索引。DCL数据控制语言 GRANT 授予用户权限 REVOKE 撤消用户权限 COMMIT 提交事务,可以使数据库的修改永久化 ROLLBACK 回滚事务,消除上一个 COMMIT 命令后的所做的全部修改,使得数据库的内容恢复到上一个 COMMIT 执行后的状态.。1、GRANT:所有着或者管理员把访问权限赋给其他用户 语法格式:grant all privileges|privileges,.on tabname|viewname to public|user,.2、REVOKE:

13、取消某一用户的某中访问权限 语法格式:Revoke all privileges|privileges,.on tabname|viewname from public|user,.注:不能取消实例级别的用户的任何权限,他们不是通过 grant 授权的,是通过组实现的权限。3、COMMIT:把事务中所做的修改永久化记录到数据库。语法格式:commit work 4、ROLLBACK:将上次提交以来所做的更改全部撤消。语法格式:Rollback work 高级 sql 简单介绍 一、查询间使用运算词 A:UNION 运算符 UNION 运算符通过组合其他两个结果表例如 TABLE1 和 TABL

14、E2 并消去表中任何重复行而派生出一个结果表。当 ALL 随 UNION 一起使用时即 UNION ALL,不消除重复行。两种情况下,派生表的每一行不是来自 TABLE1 就是来自 TABLE2。B:EXCEPT 运算符 EXCEPT 运算符通过包括所有在 TABLE1 中但不在 TABLE2 中的行并消除所有重复行而派生出一个结果表。当 ALL 随 EXCEPT 一起使用时(EXCEPT ALL),不消除重复行。C:INTERSECT 运算符 INTERSECT 运算符通过只包括 TABLE1 和 TABLE2 中都有的行并消除所有重复行而派生出一个结果表。当 ALL 随 INTERSECT

15、 一起使用时(INTERSECT ALL),不消除重复行。注:使用运算词的几个查询结果行必须是一致的。二、外连接 A、left outer join:左外连接左连接:结果集几包括连接表的匹配行,也包括左连接表的所有行。B:right outer join:右外连接(右连接):结果集既包括连接表的匹配连接行,也包括右连接表的所有行。C:full outer join:全外连接:不仅包括符号连接表的匹配行,还包括两个连接表中的所有记录。注:复合外连接按照从左到右的顺序执行连接,左边连接的结果集和右边连接 三、超级分组和移动函数 A:grouping sets:用来在单个 sql 中形成多级分组。例

16、:select company_id,node_id,count(customer_id)from customer group by grouping sets(company_id,node_id)B:rollup:可以在单个数据库操作中形成多个分组。例:select company_id,node_id,count(customer_id)from customer group by rollup(company_id,node_id)注:rollup 操作不是可交换的操作,指定用户组的顺序是很重要的。C:cube:生成分组表中分组的所有组合。例:select company_id,no

17、de_id,count(customer_id)from customer group by cube(company_id,node_id)D:over:移动函数可以帮助实现移动的数据分析 Select date,avg(qty)over(order by date rows between 1 preceding and 1 following)as values from sale 附录:常用函数介绍 1、类型转化函数:转化为数字类型的:decimal,double,Integer,smallint,real Hex(arg):转化为参数的 16 进制表示。转化为字符串类型的:char,

18、varchar Digits(arg):返回 arg 的字符串表示法,arg 必须为 decimal。转化为日期时间的:date,time,timestamp 2、时间日期:year,quarter,month,week,day,hour,minute,second dayofyear(arg):返回 arg 在年内的天值 Dayofweek(arg):返回 arg 在周内的天值 days(arg):返回日期的整数表示法,从 0001-01-01 来的天数。midnight_seconds(arg):午夜和 arg 之间的秒数。Monthname(arg):返回 arg 的月份名。Daynam

19、e(arg):返回 arg 的星期。3、字符串函数:length,lcase,ucase,ltrim,rtrim Coalesce(arg1,arg2.):返回参数集中第一个非 null 参数。Concat(arg1,arg2):连接两个字符串 arg1 和 arg2。insert(arg1,pos,size,arg2):返回一个,将 arg1 从 pos 处删除 size 个字符,将 arg2 插入该位置。left(arg,length):返回 arg 最左边的 length 个字符串。locate(arg1,arg2,;):在 arg2 中查找 arg1 第一次出现的位置,指定 pos,则

20、从 arg2 的pos 处开始找 arg1 第一次出现的位置。posstr(arg1,arg2):返回 arg2 第一次在 arg1 中出现的位置。repeat(arg1,num_times):返回 arg1 被重复 num_times次的字符串。replace(arg1,arg2,arg3):将在 arg1 中的所有 arg2 替换成 arg3。right(arg,length):返回一个有 arg 左边 length 个字节组成的字符串。space(arg):返回一个包含 arg 个空格的字符串。substr(arg1,pos,;):返回 arg1 中 pos 位置开始的 length 个

21、字符,如果没指定 length,则返回剩余的字符。4、数学函数:Abs,count,max,min,sum Ceil(arg):返回大于或等于 arg 的最小整数。Floor(arg):返回小于或等于参数的最小整数。Mod(arg1,arg2):返回 arg1 除以 arg2 的余数,符号与 arg1 相同。Rand():返回 1 到 1 之间的随机数。Power(arg1,arg2):返回 arg1 的 arg2 次方。Round(arg1,arg2):四舍五入截断处理,arg2 是位数,如果 arg2 为负,则对小数点前的数做四舍五入处理。Sigh(arg):返回 arg 的符号指示符。-

22、1,0,1 表示。truncate(arg1,arg2):截断 arg1,arg2 是位数,如果 arg2 是负数,则保留 arg1 小数点前的arg2 位。5、其他:nullif(arg1,arg2):如果 2 个参数相等,则返回 null,否则,返回参数 1 1.数据库查询:Select 用法 Select Top(数值)字段列表 From 数据表 Where 条件 Order by 字段 asc 或 desc 2.添加数据:Insert Into 用法 Insert Into 数据表(字段1,字段2,字段3,)Values(字段1 的值,字段2 的值,字段3 的值,)3.删除数据:Del

23、ete 用法 Delete From 数据表 Where 条件 4.更新数据:Update 用法 Update 数据表 Set 字段 1=字段值 1,字段 2=字段值 2,Where 条件 5.建数据表:Create Table 用法 Create Table 数据表名(字段 1 名称,字段 1 类型,字段 2 名称 字段 2 类型,)Access 数据表常用数据类型:Text,Char(Number),Memo,Number,Int,Date/Time,Logical,OLEObject 自动编号字段添加例子:create table aaa(id int identity(1,1)not null,abc varchar(25)null)6.改数据表:Alter Table 用法 添加字段:Alter Table 数据表名 Add Column 字段名 字段类型 删除字段:Alter Table 数据表名 Drop Column 字段名 7.删数据表:Drop Table 用法 Drop Table 数据表名

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁