| 跨越彩虹's profile╰☆跨越彩虹,.-~*'¨¯¨'*·~-.¸PhotosBlogLists | Help |
|
|
3/19/2005 听课笔记(四)
今天上了第四次,也是最后一次的SQL的培训。说实话没太听懂,感觉脑袋像浆糊一样,晕晕的,好多东西也都没记下来,笔记需要在头脑清晰且思维比较敏捷的时候来整理,呵呵,不知道还能不能整理出来了~~~
3/12/2005 听课笔记(三)
今天上完了第三堂SQL的课,改天整理笔记上来。
varchar与char的差别:varchar是按链表式开辟空间。char是按内存开辟空间,无论是否存储数据都开辟空间。 delete与drop table的差别: delete from 表 where 条件 删除表中内容 drop table 表 将表从内存中删除 insert into 表(字段) value(值) 插入一条记录 批处理增加: insert 表(字段) 将表1的数据复制到表2:(两个表中的字段类型必须一样) insert 表1(字段)
多表关系查询:1.内连 2.外连 3.全连 4.合并 5.嵌套 嵌套:通过另一个表的条件显示本表的信息。 例1:查询60分以下的学生姓名 学生表:学号,姓名 成绩表:学号,课号,成绩 select 姓名 例2: 读者表:借书证号,姓名,身份证号,性别,年龄,工作单位,照片 罚款:借书证号,书号,罚款日期,罚款金额,过期天数 还书:书号,借书证号,还书日期 借阅:书号,借书证号,借阅日期 图书:书号,书名,作者,出版社,数量,单价 1)查询借阅时间为2003年1月1日以前的读者姓名、年龄和工作单位 select 姓名,年龄,工作单位 2)罚款金额小于200的书名 select 书名 3)借C++的读者姓名、年龄、工作单位 select 姓名,工作单位,年龄
内连:通过两个表共同的关系,显示两个表的信息。(内连包含嵌套) 1)select * from 表1 inner join 表2 on 关系 where 条件 例1:select * from 学生表 inner join 成绩表 on 学生表.学号=成绩表.学号 例2:select * 显示读者姓名、借阅时间 select dbo.读者.姓名,dbo.借阅.借阅时间 三个表关联: select dbo.读者.姓名,dbo.借阅.借阅日期,dbo.图书.书名
外连(最常用,包含内连) 左连:left join select * from 表1 left join 表2 on 表1.字段=表2.字段 表1的所有信息全部显示,表2只显示和表1共有的信息。如: 表a: 表b: 左连后: a b c d a b c d ※左连后显示的表为虚拟表,内存中并不存在。 新建表a,b(SQL语句) drop table a,b create table a(a.int,b.int) create table b(c.int,d.int) 显示表a,b中内容 select * from a 将a,b左连 select * from a left join b on a.a=b.c 右连:right join
全连(两表罗列): full join a,b全连后: a b c d select * from a full join b on a.a=b.c 注:a full join b与b full join a显示结果不一样。
合并:记录罗列在一起 select 字段1 from 表1 注:1)表1,表2字段个数相同且对应的类型一样
对库的操作:数据备份,导入、导出 热备份: 控制台根目录下,在库上单击右键------->所有任务------->备份数据库, SQL Server备份------->库名------->常规------->添加------->文件名,起一个备份文件名,扩展名为.bak,选择备份文件存放的文件夹,确定。 冷备份: 把“服务管理器”停了,打开文件夹“Program Files------->MS SQL Server------->MSSQL------->Data”,选择要备份的库文件(*.MDF,*.LDF),复制到别处。 还原: 新建库,在库名上点右键------->所有任务------->还原数据库------->从设备, 单击“选择设备”------->添加,找到备份的文件(*.bak),确定。 注:1)在“选项”中,应将“物理文件名”,改为备份文件名。 导入、导出: 在库文件上单击右键------->所有任务------->导入(导出)数据------->下一步。 选择数据源, 服务器:local为本地服务器, 在“数据库”中选择要导入(导出)的库,下一步。 目的:选择一个,如果选择的是Excel或文本文件,应新建一个文件。 服务器:选择要导入(导出)的服务器,下一步。 3/6/2005 听课笔记(二)
今天的课听得有点晕晕的,现在好累,改天再把笔记整理上来吧~~~
条件: 1)字段可以使用运算符 = , > , < , >= , <= , <> [条件] or [条件] not([条件]) 2.删除 3.更改 4.插入 表名后面可以列出字段,但要求省略的字段是在数据库设计时可以为空的
范式分析 原则: 1.简单字段(简单域):不允许表内包含表 2.唯一依赖 3.无传递依赖 4.无多对多 5.代码表
拆分例子: 给一个酒店做一套管理系统,假设职工只在一个酒店工作。 1.简单字段 2.唯一依赖 3.无传递依赖 4.无多对多 任职情况表:员工号,岗位号 2/27/2005 听课笔记(一)
一.熟悉SQL Sever 平台环境 1.服务管理器 启动:开始 ------->程序 ------->SQL Sever ------->服务管理器 服务器名:建议先接到自己的机器上。(我的电脑 ------->属性 ------->网络标识) 2.企业管理器 新建库(库名:school) 新建表(表名:student) 字段: 类型: 长度: 可否为空: id int 4 name varchar 8 age int 4 √ gradeint int 4 将“id”字段设置为主键(在该字段上单击右键 ------->设置主键)。 主键:不可重复的字段,并且不可为空。 录入数据:在表上单击右键 -------> 打开表------->返回所有行。
二.SQL语句 1.查询 启动“查询分析器”:在“企业管理器”窗口,“工具”------>“SQL查询分析器” 查询语句: select 字段名 from 表名 where 条件 例: select age from dbo.student where age=25 select name from dbo.student where grade=4 (库名要选择shcool,dbo指权限,dbo.student可以从左边窗口的“树”中拖拽) 字段名: 1) * 选择所有字段 例:select * from dbo.student 2) 选择某个字段,如 name。例:select name from dbo.student 3) 选择多个字段,如 id,name (逗号为英文状态下)。可包含*,可以重复。 上机实验,看看下面两条语句的输出结果有何不同: select id,name from dbo.student select name,id from dbo.student 4) 字段重命名,如 id as iidd 。支持中文。例:select id as 学号 from dbo.student 可与3)结合使用: select id as 学号,name as 姓名,age as 年龄,grade as 年级 from dbo.student 5) 运算,如 age-grade+1。例:select name as 姓名,age-grade+1 as 入学年龄 from dbo.student select 3500*12*(1-0.15) as 年薪 6) 在字段名前加 distinct ,如 distinct grade 。distinct 表示“唯一的”,如果有重复的记录,则只显示一个。 7) top n * ,显示前n条记录。 8) 表名.字段 ,多个表时使用。 9) 函数(字段) 各函数的用法,可参考帮助。(查询分析器里,帮助------>目录与索引------>索引,然后输入函数名,回车后即可看到用法。) 一些常用的函数: len( ) select len(name) from dbo.student left( ) select left(name,1) from dbo.student select distinct left(name,1) from dbo.student select left(name,1)+'先生' from dbo.student right( ) select right(name,1)+'先生' lower( ),upper( ),substring( ),cast( ),get data(),convert( ),ltrim( ),stuff( ),charindex( ),dateadd( ),dateiff( ) 10) 聚组函数 max( ) select max(age) as 最大年龄 from dbo.student min( ) select min(age) as 最小年龄 from dbo.student avg( ) select avg(age) as 平均年龄 from dbo.student sum( ) select sum(age) as 年龄总和 from dbo.student 以上四个函数的参数要求为数值型! count(*) 求记录总数, * 指可为任意型
|
|
|