已阅读5页,还剩31页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
,数据库应用开发,一、SQL server SQL语言概要 二、如何读懂数据库设计图 三、如何使用SQL Server企业管理器、查询分析器 四、.NET中对于数据库访问提供的对象(熟悉DataSet、DataTable、DataRow对象) 五、使用Sql Helper并创建DBAccess实现数据库封装 六、如何使用DBAccess提供的方法,目录,一、SQL语言概要,一、数据类型 二、SQL语句,数据类型,Char和Varchar char和varchar的长度都在1到8000之间,它们的区别在于char是定长字符数据,而varchar是变长字符数据。 所谓定长就是长度固定的,当输入的数据长度没有达到指定的长度时将自动以英文空格在其后面填充,使长度达到相应的长度;而变长字符数据则不会以空格填充。 text存储可变长度的非Unicode数据,最大长度为231-1(2,147,483,647)个字符。,数据类型,Nchar、Nvarchar nvarchar、nchar从名称上看只是多了个字母“n”,它表示存储的是Unicode数据类型的字符。 字符中,英文字符只需要一个字节存储就足够了,但汉字众多,需要两个字节存储,英文与汉字同时存在时容易造成混乱,Unicode字符集就是为了解决字符集这种不兼容的问题而产生的,它所有的字符都用两个字节表示,即英文字符也是用两个字节表示。nchar、nvarchar的长度是在1到4000之间。和char、varchar比较:nchar、nvarchar则最多存储4000个字符,不论是英文还是汉字;而char、varchar最多能存储8000个英文,4000个汉字。 可以看出使用nchar、nvarchar数据类型时不用担心输入的字符是英文还是汉字,较为方便,但在存储英文时数量上有些损失。,数据类型,DateTime datetime:从1753年1月1日到9999年12月31日的日期和时间数据,精确到百分之三秒。,数据类型,BigInt、Int、SmallInt、TinyInt bigint:从-263(-9223372036854775808)到263-1(9223372036854775807)的整型数据。 int:从-231(-2,147,483,648)到231-1(2,147,483,647)的整型数据。 smallint:从-215(-32,768)到215-1(32,767)的整数数据。 tinyint:从0到255的整数数据。 Bit bit:1或0的整数数据。,数据类型,Decimal/Numeric、Floact、Real decimal和numeric 这两种数据类型是等效的。都有两个参数:p(精度)和s(小数位数)。指定小数点左边和右边可以存储的十进制数字的最大个数,p必须是从 1到38之间的值。s指定小数点右边可以存储的十进制数字的最大个数,s必须是从0到p之间的值,默认小数位数是0。 float和real float:从-1.79308到1.79308之间的浮点数字数据。 real:从-3.4038到3.4038之间的浮点数字数据。在SQL Server中,real的同义词为float(24)。,SQL语句,Select语句 Insert语句 Update语句 Delete语句 其他常用的 SQL语句,SELECT ALL | DISTINCT FROM ,n WHERE ,Partial Syntax,1 SELECT Statement,Select List WHERE FROM,指定列,USE northwind SELECT employeeid, lastname, firstname, title FROM employees GO,WHERE 过滤行,修改列名,1)SELECT au_fname, au_lname, city, state, phone AS Telephone FROM authors -推荐使用 2)SELECT au_fname, au_lname, city, state, Telephone= phone FROM authors 3)SELECT au_fname, au_lname, city, state, phone Telephone FROM authors,更改表名,1)SELECT a.* from authors as a 2)SELECT a.* from authors a 3)select b.* from (select * from authors) as b,Insert,单行数据 INSERT VALUES 多行数据 INSERTSELECT SELECT INTO 插入部分数据 使用默认插入数据,插入单行数据,语法 INSERT INTO 表名 列名序列 VALUES (值序列) 例子,USE northwind INSERT INTO orders (ID,quantity,note) VALUES(1,10,NewOrder) GO,DELETE,语法 DELETE FROM 表名 WHERE 删除条件 例子,USE northwind DELETE from orders GO,USE northwind UPDATE products SET unitprice = (unitprice * 1.1) GO,Update,语法 UPDATE 表名 SET 列名=常量值 | 表达式 WHERE 更新条件 例子,其他有用的SQL,删除重复行 限制返回行数 IN(NOT IN) LIKE IS NULL 查询结果排序 ISNULL() 函数 联合查询,1、删除重复行 SELECT语句中使用ALL或DISTINCT选项来显示表中符合条件的所有行或删除其中重复的数据行,默认为ALL。 使用DISTINCT选项时,对于所有重复的数据行在SELECT返回的结果集合中只保留一行。 2、限制返回的行数 使用TOP n PERCENT选项限制返回的数据行数,TOP n说明返回n行,而TOP n PERCENT时,说明n是 表示一百分数,指定返回的行数等于总行数的百分之几。 例如: SELECT TOP 2 * FROM testtable SELECT TOP 20 PERCENT * FROM testtable,NOT IN (项1,项2) 模式匹配符(判断值是否与指定的字符通配格式相符):LIKE、NOT LIKE 空值判断符(判断表达式是否为空):IS NULL、NOT IS NULL 逻辑运算符(用于多条件的逻辑连接):NOT、AND、OR 1、范围运算符例:age BETWEEN 10 AND 30相当于age=10 AND age=30 2、列表运算符例:country IN (Germany,China) 3、模式匹配符例:常用于模糊查找,它判断列值是否与指定的字符串格式相匹配。可用于char、 varchar、text、ntext、datetime和smalldatetime等类型查询。 空值判断符例 WHERE age IS NULL 逻辑运算符:优先级为NOT、AND、OR,(四)查询结果排序 使用ORDER BY子句对查询返回的结果按一列或多列排序。ORDER BY子句的语法格式为: ORDER BY column_name ASC|DESC ,n 其中ASC表示升序,为默认值,DESC为降序。例如: SELECT * FROM usertable ORDER BY age desc,userid ASC 另外,可以根据表达式进行排序。,ISNULL ( check_expression , replacement_value ) 参数 check_expression 将被检查是否为 NULL的表达式。check_expression 可以是任何类型的。 replacement_value 在 check_expression 为 NULL时将返回的表达式。replacement_value 必须与 check_expresssion 具有相同的类型。 返回类型 返回与 check_expression 相同的类型。 注释 如果 check_expression 不为 NULL,那么返回该表达式的值;否则返回 replacement_value。 示例A. 将 ISNULL 与 AVG 一起使用 下面的示例查找所有书的平均价格,用值 $10.00 替换 titles 表的 price 列中的所有 NULL 条目。 USE pubsGOSELECT AVG(ISNULL(price, $10.00)FROM titlesGO 下面是结果集: - 14.24 (1 row(s) affected) B. 使用 ISNULL 下面的示例为 titles 表中的所有书选择书名、类型及价格。如果一个书名的价格是 NULL,那么在结果集中显示的价格为 0.00。 USE pubsGOSELECT SUBSTRING(title, 1, 15) AS Title, type AS Type, ISNULL(price, 0.00) AS PriceFROM titlesGO,二、联合查询 内连接 左连接 右连接 关键词inner join、left join、right join,Join 用途: 当你要从两个或者以上的表中选取结果集时,你就会用到JOIN。 例: “Employees”表中的数据如下,(其中ID为主键): ID Name 01 Hansen, Ola 02 Svendson, Tove 03 Svendson, Stephen 04 Pettersen, Kari “Orders”表中的数据如下: ID Product 01 Printer 03 Table 03 Chair 用Employees的ID和Orders的ID相关联选取数据:,SELECT Employees.Name, Orders.Product FROM Employees, Orders WHERE Employees.ID = Orders.ID 返回结果: Name Product Hansen, Ola Printer Svendson, Stephen Table Svendson, Stephen Chair 或者你也可以用JOIN关键字来完成上面的操作: SELECT Employees.Name, Orders.Product FROM Employees INNER JOIN Orders ON Employees.ID = Orders.ID INNER JOIN的语法: SELECT field1, field2, field3 FROM first_table INNER JOIN second_table ON first_table.keyfield = second_table.foreign_keyfield 解释:INNER JOIN返回的结果集是两个表中所有相匹配的数据。,LEFT JOIN的语法: SELECT field1, field2, field3 FROM first_table LEFT JOIN second_table ON first_table.keyfield = second_table.foreign_keyfield 用”Employees”表去左外联结”Orders”表去找出相关数据: SELECT Employees.Name, Orders.Product FROM Employees LEFT JOIN Orders ON Employees.ID = Orders.ID 返回结果: Name Product Hansen, Ola Printer Svendson, Tove Svendson, Stephen Table Svendson, Stephen Chair Pettersen, Kari 解释:LEFT JOIN返回”first_table”中所有的行尽管在” second_table”中没有相匹配的数据。,RIGHT JOIN的语法: SELECT field1, field2, field3 FROM first_table RIGHT JOIN second_table ON first_table.keyfield = second_table.foreign_keyfield 用”Employees”表去右外联结”Orders”表去找出相关数据: SELECT Employees.Name, Orders.Product FROM Employees RIGHT JOIN Orders ON Employees.ID = Orders.ID 返回结果: Name Product Hansen, Ola Printer Svendson, Stephen Table Svendson, Stephen Chair 解释:RIGHT JOIN返回” second_table”中所有的行尽管在”first_table”中没有相匹配的数据。,二、数据
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年加油站卸油作业中的油气逸散控制措施
- 2026年中医整脊疗法技术操作规范与注意事项
- 2026年折扣零售店商业模式创新与供应链实践
- 2026年疫苗接种点医疗废物管理要求
- 2026年初中生物线上线下混合教学
- 2026年企业成本核算流程的持续改进与优化
- 2026年行政人员申请转为业务岗申请书
- 2026年数字政府建设提升医疗应急物资保障能力
- 棋牌室合作伙伴关系合同
- 2026年幼儿常见病家庭非处方药备药清单
- 2025年四川省凉山州中考生物试卷真题(含答案解析)
- 儿童免疫性血小板减少护理
- 森林培育学试题及与答案
- 设计青年社区方案策划书3
- 中建地下通道基坑支护与土方开挖
- TCSRME 034-2023 隧道岩溶堵水注浆技术规程
- 贵州省遵义市播州区2024届六年级下学期小升初招生数学试卷含解析
- 2024年河南省普通高中学业水平合格性考试模拟(二)历史试题(解析版)
- DLT 572-2021 电力变压器运行规程
- JT-T-1367-2020水下焊接作业要求
- JBT 7248-2024 阀门用低温钢铸件技术规范(正式版)
评论
0/150
提交评论