SQL总结
1、 数据定义(create table
Alter table)
请先新建并打开某个数据库,再做如下操作
例1:create table student(学号 c(8) not null primary key,; &&将学号设置成主索引,非空
姓名 c(6) ,;
性别 c(2) check 性别$”男女” error “性别必须是男或女”),;
&&设置性别的有效性规则
是否团员 L default .t. ,; &&将“是否团员”字段的缺省值设置为.t.
简历 m,照片 g ;
出生日期 d)
Create table score(学号 c(8), 语文 n(5,1),数学 n(5,1),外语 n(5,1),总分 n(4,1);
Foreign key 学号 tag 学号 references student)
为score表建立一个普通索引”学号”,并与student的主索引建立联系。
例2:修改score表的“总分”字段为n(5,1)
Alter table score alter 总分 n(5,1)
为score表增加一个字段”政治 n(5,1)”
Alter table score add政治 n(5,1)
删除score表的字段”政治 n(5,1)”
Alter table score drop政治 n(5,1)
设置score表的语文字段有效性规则为“成绩在0到100之间”,出错提示信息为 “语文成绩不符合要求,须在0到100之间”
Alter table score alter 语文 set check 语文>0 and 语文<100 error “语文成绩不符合要求,须在0到100之间”
2、 数据修改:delete ,insert,update
Delete from student where 性别=’男’ &&做逻辑删除标记,不参与统计
Pack &&物理删除
Insert into student values(“”,””,,.t. ,”abc” ,{^1989/12/03},) &&一一对应
Insert into student(学号,姓名) values(“”,””)
Insert into student(姓名,是否团员) values() &&必须有主码
Update score set 总分=总分+10
Update score set 总分=总分+10 where 性别=”男”
非sql语句实现该功能
Use score
Replace 总分 with 总分+10 for性别=”男”
Replace all 总分 with 总分+10
3、 查询
简单:select * from student
嵌套:查询“平时成绩”比所有001课程都高分的记录
Any :满足任意一个即可(以最小的为参照),与some
All:所有,取决于前面的运算符(>时取最大值,<取最小值)
In:
Exists:
连接:所得结果来源于几个表,或者表达式计算的结果
select student.学号,姓名,avg(考试成绩) as 平均成绩;
from student,score;
where student.学号=score.学号;
group by student.学号
select student.学号,姓名,avg(考试成绩) as 平均成绩;
from student inner join score;
on student.学号=score.学号;
group by student.学号
理解“内连接,全连接,左连接,右连接”
内连接:两个表同时有的,且相同才连接
全连接:左表和右表的总和,即先左连接,再右连接
左连接:以左表为准,左表中有的记录都与右表连接,若右表无,则假想成右表有空记录
4、 视图
Open database 学生数据库名
Create view 视图名 as select ……
注:必须在数据库中建立视图。即先打开数据库,才能建立视图。
是一个虚表,只是查询结果,关闭数据库后,相应视图也关闭。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36 alter table 表名 [add 子句] [drop 子句] 创建表: create table 表名( 列名 数据类型 [default 缺省值] [not null] [,列名 数据类型 [default 缺省值] [not null]] . . . . . . [,primary key(列名 [,列名] …)]主键(多个值作为联合主键) [,foreign key (列名 [,列名] …) 外键 references 表名 (列名 [,列名] …)]外间关联表 [,unique(列名 [,列名] …)]不允许重复列 [,check(条件)])约束条件 如: create domain person_name char(20)(定义域) create table PROF ( PNO char(10),--职工编号 PNAME person_name not null, --职工姓名 SAL int, --工资 AGE int, --年龄 DNO char(10), --主任职工编号 primary key (PNO), --主键 foreign key (DNO) references DEPT(DNO),外键关联 简单定义表: create table CIA ( NAME varchar(50) primary key, ) REGION varchar(50) not null default ‘region not formalized yet', AREA int null, POPULATION long null, GDP long not null 修改表: 增加新列 删除列 [modify 子句] 修改列定义 Add列不为空是需加默认值(缺省值) 修改列定义时先建一修改后的新列,复制要修改的原列,删除修改的原列 37
38 索引的定义 create [unique|distinct] [cluster] index 索引名
40
41
42
43
44
45
46
47
48
49
50
51
52 unique(distinct):唯一性索引,不允许表中不同的行在索引列上取相同值。若已有相同值存在,则系统给出相关信息,不建此索引。系统并拒绝违背唯一性的插入、更新。 cluster:聚簇索引,表中元组按索引项的值排序并物理地聚集在一起。一个基本表上只能建一个聚集索引。 asc|desc:索引表中索引值的排序次序,缺省为asc。 ? 示例: create cluster index g-index on CIA(REGION) 删除索引: drop index 索引名 sql查询 1、 sum 总和 avg平均 distinct/unique 去重 asc 升序| desc降序 2、 select name case when age>60 then 1 when age<60 then 2 end age from table1. 3、 SELECT last_name +' is a ‘+ job_id AS "Employee Details" FROM employees; 53 54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72 4、 escape 转义字符的使用:db2,oracle均可用 例:select * from rpt_plain_define where rpt_id like '%\_%' escape '\'; 5、 order by 排序: order by age asc 升序 order by desc 降序 order by 2 按select查询第三个字段排序 6、集合 集合并:union ? 求选修了001或002号课程的学生号。 (select SNO from SC where CNO = 001) union all (select SNO from SC where CNO = 002) 默认去重 集合交:intersect 集合差: except Table1 except table2 得到table1中有,而table2中没有的记录 求选修了001和002号而没有选003号课程的学生号。 (select SNO from SC where CNO = 001 or CNO = 002 ) except (select SNO from SC
74
75
76
77
78
79
80
81 § 聚集函数 ? 平均值:avg ? 最小值:min ? 最大值:max ? 总和:sum ? 记数:count 聚集函数后跟group by …having… (单个字段查询不需要:SELECT MAX(SALARY) FROM EMPLOYEES) 82
83
84
85
5S管理活动工作总结自20xx年x月我厂开展5S管理活动以来,各单位精心组织,积极行动,各阶段工作进展有序并顺利完成,获得了全体员…
5S管理指的是企业中的每名工作人员都需要养成自觉遵守以及合理维护标准程序的生产习惯。5S管理维持的目的是通过企业员工自觉的遵守企业…
5S成果发表会致辞尊敬的吴老师,健峰嘉宾以及各位同事:下午好。今天是我们公司5S的成果发表会,公司从去年x月份引进健峰公司5S现场…
5S现场管理总结20xx年x月份,我司在高管的正确领导下,根据5S现场管理工作要求,以“巩固劳动成果、提高管理水平”为方针,加强5…
有效实施“5S”管理活动大力提升基层管理水平现有正式职工22人,其中党员1人,预备党员1人,团员7人,具有专科以上学历16人。下设…
SQL总结数据库1查询数据Select列名From表名where查询条件2增加数据Insertinto表名(列名)values(值…
总结一个星期前老师给了一个任务,要求用GUI做成一个simulink仿真界面,通过matlab与SQL的连接,然后把仿真结果存到s…
123456789101112131415161718192021222324252627282930313233343536al…
SQL学习总结:一.创建表:1.创建表一般格式为:CREATETABLE表名(列名数据类型[DEFAULT缺省值][NOTNULL…
第一章数据的检索第一节SELECT基本用法1、简单的数据检索?“取出一张表中所有的数据”是最简单的数据检索任务,完成这个最简单任务…