sql查询代码

sql查询代码
sql查询代码

一、创建数据库和表

1 创建数据库

create database Student

2 创建表student,course和student_course

use Student;

go

create table students(

Student_id varchar(32)primary key,

Student_name varchar(32),

Student_sex char(2),

Student_nation char(5),

Student_birthday datetime,

Student_time datetime,

Student_classid varchar(32),

Student_home varchar(32),

Student_else varchar(32)

);

go

create table course(

Course_id varchar(32)primary key,

Course_name varchar(32),

Course_period int,

Course_credit int,

Course_kind int,

Course_describe varchar(32)

);

go

create table student_course(

ID bigint primary key,

Student_id varchar(32),

Course_id varchar(32),

Student_grade int,

Course_year tinyint

);

3 在表student中插入数据

insert into students values

('011001','叶海平','男','汉','1989-01-23','2010-09-01','011','山西',null), ('011002','景风','男','汉','1989-06-25','2010-09-01','011','重庆',null), ('012001','华丽佳','女','汉','1988-05-20','2010-09-01','012','大连',null), ('012002','范治华','男','汉','1989-05-20','2010-09-01','012','山东',null), ('013001','李佳佳','女','汉','1990-03-01','2010-09-01','013','湖南',null),

('013002','史慧敏','女','汉','1988-10-11','2010-09-01','013','湖北',null), ('014001','安静','女','汉','1991-03-23','2010-09-01','014','山西',null), ('014002','尹强','男','汉','1987-06-02','2010-09-01','014','重庆',null), ('015001','曹洪','男','汉','1989-05-16','2010-09-01','015','大连',null), ('015002','杨世英','女','汉','1989-12-03','2010-09-01','015','天津',null)

4 在表course中插入数据

insert into course values

('1001','电子商务基础',72,2,1,null),

('2001','英语',72,3,0,null),

('2002','英语',72,3,0,null),

('3001','网页设计与制作',72,2,1,null),

('4001','网络数据库',72,3,1,null),

('5001','电子商务安全与管理',72,2,1,null)

5 在表student_course中插入数据

insert into student_course values

(1,'011001','1001',82,1),

(2,'011002','1001',86,1),

(3,'011001','2001',78,1),

(4,'011002','2001',80,1),

(5,'011001','2002',77,2),

(6,'011002','2002',88,2),

(7,'012001','1001',90,1),

(8,'012002','1001',75,1),

(9,'012001','2001',68,1),

(10,'012002','2001',73,1),

(11,'012001','2002',80,2),

(12,'012002','2002',78,2),

(13,'012001','4001',85,2),

(14,'012002','4001',66,2),

(15,'013001','1001',76,1),

(16,'013002','1001',81,1),

(17,'013001','2001',69,1),

(18,'013002','2001',90,1),

(19,'013001','2002',70,2),

(20,'013002','2002',89,2),

(21,'013001','4001',88,2),

(22,'013002','4001',86,2),

(23,'014001','4001',76,2),

(24,'014002','4001',80,2),

(25,'015001','4001',88,2),

(26,'015002','4001',66,2)

7.2选择select查询结果集输出的列

7.2.2 不能指定任何列

--用select语句显示常量、函数和表达式的值

select'今天是',getdate(),'我的版本是',@@version,1+2

7.2.3 使用通配符(*)

--查询表student中的所有学生的全部信息

use Student

select*from students

7.2.4 指定输出列

--查询表studes中的所有学生的学号和姓名

select student_id,student_name from students

7.2.5 使用列表达式

--在表student_course中查询学生的学号、课程号、成绩和新成绩(在原始成绩分数的基础上加分)

select Student_id,Course_id,Student_grade,Student_grade+5

from student_course

7.2.6 为查询结果指定列名

--为结果集中的列分别指定中文列名:学号、课程号、原始成绩、新成绩

select'学号'=Student_id,

Course_id as'课程号',

Student_grade'原始成绩',

Student_grade+5 as'新成绩'

from student_course

7.3 控制select查询结果集输出的行

7.3.1 ALL和Distinct关键字

1.使用ALL参数

--在表students中不带all参数查询所有学生的性别

select Student_sex from students

--在表students中查询所有学生的性别

select all Student_sex from students

2.使用Distinct参数

--在表students中查询所有学生的性别,要求消除重复数据

select distinct Student_sex from students

7.3.2 使用ORDER BY 子句对结果集排序

--在表studens中查询所有学生的学生记录,并使显示的结果根据姓名字段(Student_name)按照

不同的方式排序

--对结果集不使用任何其他排序查询

select*from students

--使结果集按照姓名字段的默认的升序方式排序

select*from students order by Student_name

--使结果集按照姓名字段的升序方式排序

select*from students order by Student_name asc

--使结果集按照姓名字段的降序方式排序

select*from students order by Student_name desc

--在表students中查询所有的学生记录,要求首先按照性别字段(Student_sex)的降序排序,性别相同的按照姓名(Student_name)的升序排序

select*from students order by Student_sex desc,Student_name asc

7.3.3使用TOP关键字输出部分记录

--在表Student中查询所有的学生记录,但是只显示前面的3条记录

select top 3 *from students

--在表Student中查询所有的学生记录,但是只显示结果集记录总数33%的记录

select top 33 percent*from students

--在表Student中查询所有的学生记录,结果集按性别的升序排序,但是只是显示前3条记录select top 3 *from students order by Student_sex

--在表Student中查询所有学生的记录,结果集按性别字段的升序排序,除了要显示3前条记录外,还要显示出与第3条记录的性别一样的所有其他记录

select top 3 with ties*from students order by Student_sex--没有ORDER BY不能使用WITH TIES 7.4使用WHERE子句查询

7.4.2 使用单一查询条件

--在成绩表中查询所有学生的课程号为1001的课程的成绩

select Student_id,Course_id,Student_grade

from student_course

where Course_id='1001'

7.4.3 逻辑运算符

1.AND逻辑运算符

--查询课程号为1001的课程且成绩在分80以上的所有学生的成绩

select Student_id,Course_id,Student_grade

from student_course

where Course_id='1001'and Student_grade>=80

2.OR逻辑运算符

--在成绩表中查询成绩在90分以上(含90)或成绩在70分以下(不含70)的所有学生的成绩select Student_id,Course_id,Student_grade

from student_course

where Student_grade>=90 or Student_grade<70

3.NOT逻辑运算符

--在成绩表中查询成绩在90分以上(含90)和成绩在70分以下(不含70),也就是不在70~90分之间

select Student_id,Course_id,Student_grade

from student_course

where not(Student_grade>=70 and Student_grade<90)

4.BETWEEN和NOT BETWEEN逻辑运算符

--查询成绩在70~75分之间的成绩,则就是起始值,就是终止值

select Student_id,Course_id,Student_grade

from student_course

where Student_grade between 70 and 75

--查询成绩在70分以下(不含0)和90分以上(含90)的所有学生的成绩

select Student_id,Course_id,Student_grade

from student_course

where Student_grade not between 70 and 89.9

5.IN和NOT IN逻辑运算符

--用IN查询学号为011001、013001、014001的三个学生的信息

select*from students

where Student_id in('011001','013001','014001')

--用OR查询学号为011001、013001、014001的三个学生的信息

select*from students

where Student_id='011001'or Student_id='013001'or Student_id='014001'

--查询除了学号为011001、013001、014001的三个学生以外的其他所有学生信息

select*from students

where Student_id not in('011001','013001','014001')

7.4.4 使用LIKE和通配符经行迷糊查询

1.百分号(%)通配符

--查询所有姓“叶”的同学

select*from students

where Student_name like'叶%'

2.下划线(_)通配符

--查询所有姓“叶”的同学,且名字只有三个字

select*from students

where Student_name like'叶__'

3.方括号([])通配符

--查询所有“叶”姓和“安”姓的同学信息

select*from students

where Student_name like'[叶安]%'--'[叶安]%' 与'[叶,安]%' 作用相同

--查询所有“华”姓和“杨”姓之间的所有学生的信息

select*from students

where Student_name like'[华-杨]%'

4.[^]通配符

--查询除了“华”姓和“杨”姓之外的所有学生信息

select*from students

where Student_name like'[^华,杨]%'

7.5 FROM子句

7.5.2 多表连接查询

1.内连接

--查询学生的学号、姓名、课程号和成绩

select students.Student_id,students.Student_name,

student_course.Course_id,student_course.Student_grade

from students inner join student_course

on students.Student_id=student_course.Student_id

2.外连接

(1).左链接

--查询所有课程的课程名和相关学生的成绩,包括没有登记过成绩的课程,左连接select course.Course_name,student_course.Student_id,student_course.Student_grade from course left join student_course

on student_course.Course_id=course.Course_id

order by Student_grade

(2).右连接

--查询所有课程的课程名和相关学生的成绩,包括没有登记过成绩的课程,右连接select course.Course_name,student_course.Student_id,student_course.Student_grade from student_course right join course

on student_course.Course_id=course.Course_id

order by Student_grade

(3).完全连接

--查询所有课程的课程名和相关学生的成绩,包括没有登记过成绩的课程,完全连接select course.Course_name,student_course.Student_id,student_course.Student_grade from student_course full join course--“学生成绩表”为主表,而“课程表”为从表

on student_course.Course_id=course.Course_id

order by Student_grade--返回结果按照“学生课程表”中的数据经行匹配

4.自连接

--查询有相同名字的学生信息

select*from students a

where a.Student_name in

(select b.student_name from students b

group by b.Student_name

having COUNT(*)>1)

order by a.Student_name

4.交叉连接

--交叉连接

select*from students,course

7.5.3 为查询数据源指定别名

--查询学生的姓名、课程名和成绩

select ST.Student_name,CS.Course_name,SC.Student_grade

from students as ST inner join student_course as SC

on ST.Student_id=SC.Student_id

inner join course CS

on CS.Course_id=SC.Course_id

7.6聚合函数

7.6.1 使用SUM函数计算列的累加和

--查看成绩表中的所有学生成绩并排序

select Student_grade from student_course order by Student_grade

--求所有成绩的总和

select SUM(all Student_grade)as总成绩from student_course

--排除成绩中的所有重复值以后求和

select SUM(distinct Student_grade)as总成绩from student_course

--查询并计算出学号为的学生的各科成绩的总成绩

select SUM(Student_grade)as总成绩from student_course

where Student_id='011001'

7.6.2 使用AVG函数计算列的平均值

--查询并计算出学号为的学生的各科平均成绩

select A VG(Student_grade)as平均成绩from student_course

where Student_id='011001'

7.6.3 使用COUNT函数统计行的数目

--统计所有学生人数

select COUNT(Student_id)as学生总数from students

7.6.4 使用MAX函数计算列的最大值

--查询课程代码为的课程的最高分

select MAX(Student_grade)as最高分from student_course

where Course_id='1001'

7.6.5 使用MIN函数计算列的最小值

--查询课程代码为的课程的最低分

select MIN(Student_grade)as最高分from student_course

where Course_id='1001'

7.7 分组查询

7.7.1 简单分组查询

--查询每个同学的所有课程的总分,并按总成绩的升序排序

select Student_id,SUM(Student_grade)as总分

from student_course

group by Student_id

order by SUM(Student_grade)

7.7.2 对分组进行汇总计算

1.WITH CUBE运算符

--求每个同学的平均成绩,一般查询

select St.Student_id as学号,Student_classid as班级,A VG(Student_grade)as平均分from students as St inner join student_course as SC

on St.Student_id=SC.Student_id

group by St.Student_id,Student_classid

--求每个同学的平均成绩,使用WITH CUBE

select St.Student_id as学号,Student_classid as班级,A VG(Student_grade)as平均分from students as St inner join student_course as SC

on St.Student_id=SC.Student_id

group by St.Student_id,Student_classid with cube

2.WITH ROLLUP运算符

--查询每个学生的平均分、每个班级的平均分、所有学生的平均分

select Student_classid as班级,St.Student_id as学号,A VG(Student_grade)as平均分from students as St inner join student_course as SC

on St.Student_id=SC.Student_id

group by Student_classid,St.Student_id with rollup

--查询每个学生的平均分、每个班级的平均分、所有学生的平均分,分组表达式中的列的顺序交换select Student_classid as班级,St.Student_id as学号,A VG(Student_grade)as平均分

from students as St inner join student_course as SC

on St.Student_id=SC.Student_id

group by St.Student_id,Student_classid with rollup

7.7.3 分组条件查询(HAVING子句)

--求平均分高于分的所有学生

select St.Student_id as学号,Student_classid as班级,A VG(Student_grade)as平均分

from students as St inner join student_course as SC

on St.Student_id=SC.Student_id

group by St.Student_id,Student_classid

having A VG(Student_grade)>80

7.8 汇总数据

7.8.1 使用COMPUTE子句汇总数据

--查询所有成绩,并求其平均分、最高分、最低分

select Student_id as学号,Student_grade as成绩

from student_course

order by Student_id

compute A VG(Student_grade),MAX(Student_grade),MIN(Student_grade)

7.8.2 使用COMPUTE BY子句汇总数据

--求每个同学的成绩,并求其平均分,最高分,最低分

select Student_id,Student_grade

from student_course

order by Student_id

compute A VG(Student_grade),MAX(Student_grade),MIN(Student_grade)

by Student_id

7.9 查询

7.9.1 新增列列值

--求每个同学的平均分

select distinct Student_id,平均分=

(select A VG(Student_grade)from student_course as b

where a.Student_id=b.Student_id)

from student_course as a

7.9.2IN子查询

--查询班全班同学的成绩单

select*from student_course

where Student_id in

(select Student_id from students

where Student_classid='011')

7.9.3 比较子查询

--查询所有平均成绩超过全体学生平均成绩的清单

select Student_id,A VG(Student_grade)from student_course

group by Student_id

having A VG(Student_grade)>=all

(select A VG(Student_grade)from student_course)

7.9.4 EXISTS子查询

--查询还没有在成绩表中登记成绩的所有课程信息

select*from course

where not exists(select*from student_course

where course.Course_id=student_course.Course_id)

7.10 将查询结果保存到表中

7.10.1 将查询结果保存到临时表中(表teachers和表teacher_course未建立)--查询所有班级的课程及其授课教师,将结果集存到本地临时表#ABC中并查看select teacher_course.class_id as班级号,course.Course_name as课程号,

teachers.Teacher_name as授课教师

into#ABC

from teacher_course inner join teachers

on taacher_course.Teacher_id=teachers.Teacher_id

inner join course on teacher_course.Courde_id=course.Course_id

--查询临时表#ABC

select*from#ABC

7.10.2 将查询结果保存到永久表中(表teachers和表teacher_course未建立)

--查询所有班级的课程及其授课教师,将结果集存到本地永久表ABC中并查看select teacher_course.class_id as班级号,course.Course_name as课程号, teachers.Teacher_name as授课教师

into ABC

from teacher_course inner join teachers

on taacher_course.Teacher_id=teachers.Teacher_id

inner join course on teacher_course.Courde_id=course.Course_id

--查询永久表ABC

select*from ABC

SQL查询语句大全集锦(超经典)

SQL查询语句大全集锦 MYSQL查询语句大全集锦 一、简单查询 简单的Transact-SQL查询只包括选择列表、FROM子句和WHERE子句。它们分别说明所查询列、查询的 表或视图、以及搜索条件等。 例如,下面的语句查询testtable表中姓名为“张三”的nickname字段和email字段。 复制内容到剪贴板 代码:SELECT `nickname`,`email`FROM `testtable`WHERE `name`='张三' (一) 选择列表 选择列表(select_list)指出所查询列,它可以是一组列名列表、星号、表达式、变量(包括局部变量和全局变量)等构成。 1、选择所有列 例如,下面语句显示testtable表中所有列的数据: 复制内容到剪贴板 代码:SELECT * FROM testtable 2、选择部分列并指定它们的显示次序 查询结果集合中数据的排列顺序与选择列表中所指定的列名排列顺序相同。 例如: 复制内容到剪贴板 代码:SELECT nickname,email FROM testtable 3、更改列标题 在选择列表中,可重新指定列标题。定义格式为: 列标题=列名 列名列标题 如果指定的列标题不是标准的标识符格式时,应使用引号定界符,例如,下列语句使用汉字显示列 标题:

复制内容到剪贴板 代码:SELECT 昵称=nickname,电子邮件=email FROM testtable 4、删除重复行 SELECT语句中使用ALL或DISTINCT选项来显示表中符合条件的所有行或删除其中重复的数据行,默认 为ALL。使用DISTINCT选项时,对于所有重复的数据行在SELECT返回的结果集合中只保留一行。 5、限制返回的行数 使用TOP n [PERCENT]选项限制返回的数据行数,TOP n说明返回n行,而TOP n PERCENT时,说明n是 表示一百分数,指定返回的行数等于总行数的百分之几。 例如: 复制内容到剪贴板 代码:SELECT TOP 2 * FROM `testtable` 复制内容到剪贴板 代码:SELECT TOP 20 PERCENT * FROM `testtable` (二) FROM子句 FROM子句指定SELECT语句查询及与查询相关的表或视图。在FROM子句中最多可指定256个表或视图, 它们之间用逗号分隔。 在FROM子句同时指定多个表或视图时,如果选择列表中存在同名列,这时应使用对象名限定这些列 所属的表或视图。例如在usertable和citytable表中同时存在cityid列,在查询两个表中的cityid时应使用下面语句格式加以限定: 复制内容到剪贴板 代码:SELECT `username`,citytable.cityid FROM `usertable`,`citytable` WHERE usertable.cityid=citytable.cityid在FROM子句中可用以下两种格式为表或视图指定别名: 复制内容到剪贴板 代码:表名 as 别名 表名别名例如上面语句可用表的别名格式表示为: 复制内容到剪贴板

数据库SQL查询语句大全

经典SQL查询语句大全 一、基础 1、说明:创建数据库 CREATE DATABASE database-name 2、说明:删除数据库 drop database dbname 3、说明:备份sql server --- 创建备份数据的 device USE master EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1. dat' --- 开始备份 BACKUP DATABASE pubs TO testBack 4、说明:创建新表 create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..) 根据已有的表创建新表: A:create table tab_new like tab_old (使用旧表创建新表) B:create table tab_new as select col1,col2… from tab_old definition only 5、说明:删除新表 drop table tabname 6、说明:增加一个列 Alter table tabname add column col type 注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。 7、说明:添加主键:Alter table tabname add primary key(col) 说明:删除主键: Alter table tabname drop primary key(col) 8、说明:创建索引:create [unique] index idxname on tab name(col….) 删除索引:drop index idxname 注:索引是不可更改的,想更改必须删除重新建。 9、说明:创建视图:create view viewname as select statement 删除视图:drop view viewname 10、说明:几个简单的基本的sql语句 选择:select * from table1 where 范围 插入:insert into table1(field1,field2) values(value1,value2) 删除:delete from table1 where 范围 更新:update table1 set field1=value1 where 范围 查找:select * from table1 where field1 like ’%value1%’ ---like的语法很精妙,查资料!

数据库SQL查询语句大全修订稿

数据库S Q L查询语句 大全 公司标准化编码 [QQX96QT-XQQB89Q8-NQQJ6Q8-MQM9N]

经典SQL查询语句大全 一、基础 1、说明:创建数据库 CREATE DATABASE database-name 2、说明:删除数据库 drop database dbname 3、说明:备份sql server --- 创建备份数据的 device USE master EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\' --- 开始备份 BACKUP DATABASE pubs TO testBack 4、说明:创建新表 create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..) 根据已有的表创建新表: A:create table tab_new like tab_old (使用旧表创建新表) B:create table tab_new as select col1,col2… from tab_old definitio n only 5、说明:删除新表 drop table tabname 6、说明:增加一个列 Alter table tabname add column col type

注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。 7、说明:添加主键:Alter table tabname add primary key(col) 说明:删除主键: Alter table tabname drop primary key(col) 8、说明:创建索引:create [unique] index idxname on tabname(col….) 删除索引:drop index idxname 注:索引是不可更改的,想更改必须删除重新建。 9、说明:创建视图:create view viewname as select statement 删除视图:drop view viewname 10、说明:几个简单的基本的sql语句 选择:select * from table1 where 范围 插入:insert into table1(field1,field2) values(value1,value2) 删除:delete from table1 where 范围 更新:update table1 set field1=value1 where 范围 查找:select * from table1 where field1 like ’%value1%’ ---like的语法很精妙,查资料! 排序:select * from table1 order by field1,field2 [desc] 总数:select count as totalcount from table1 求和:select sum(field1) as sumvalue from table1 平均:select avg(field1) as avgvalue from table1 最大:select max(field1) as maxvalue from table1 最小:select min(field1) as minvalue from table1 11、说明:几个高级查询运算词 A:UNION 运算符

SQL搜索语句

SQL查询语句大全集锦 一、简单查询 简单的Transact-SQL查询只包括选择列表、FROM子句和WHERE子句。它们分别说明所查询列、查询的表或视图、以及搜索条件等。 例如,下面的语句查询testtable表中姓名为“张三”的nickname字段和email字段。 代码:SELECT `nickname`,`email`FROM `testtable`WHERE `name`='张三' (一) 选择列表 选择列表(select_list)指出所查询列,它可以是一组列名列表、星号、表达式、变量(包括局部变量和全局变量)等构成。 1、选择所有列 例如,下面语句显示testtable表中所有列的数据: 代码:SELECT * FROM testtable 2、选择部分列并指定它们的显示次序 查询结果集合中数据的排列顺序与选择列表中所指定的列名排列顺序相同。 例如: 代码:SELECT nickname,email FROM testtable 3、更改列标题 在选择列表中,可重新指定列标题。定义格式为: 列标题=列名 列名列标题 如果指定的列标题不是标准的标识符格式时,应使用引号定界符,例如,下列语句使用汉字显示列 标题: 代码:SELECT 昵称=nickname,电子邮件=email FROM testtable 4、删除重复行 SELECT语句中使用ALL或DISTINCT选项来显示表中符合条件的所有行或删除其中重复的数据行,默认为ALL。使用DISTINCT选项时,对于所有重复的数据行在SELECT返回的结果集合中只保留一行。 5、限制返回的行数 使用TOP n [PERCENT]选项限制返回的数据行数,TOP n说明返回n行,而TOP n PERCENT时,说明n 是 表示一百分数,指定返回的行数等于总行数的百分之几。 例如: 代码:SELECT TOP 2 * FROM `testtable` 代码:SELECT TOP 20 PERCENT * FROM `testtable` (二) FROM子句 FROM子句指定SELECT语句查询及与查询相关的表或视图。在FROM子句中最多可指定256个表或视图,它们之间用逗号分隔。 在FROM子句同时指定多个表或视图时,如果选择列表中存在同名列,这时应使用对象名限定这些列 所属的表或视图。例如在usertable和citytable表中同时存在cityid列,在查询两个表中的cityid时应

数据库经典SQL语句大全

数据库经典SQL语句大全 篇一:经典SQL语句大全 下列语句部分是Mssql语句,不可以在access中使用。 SQL分类: DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE) DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT) DCL—数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK) 首先,简要介绍基础语句: 1、说明:创建数据库 CREATE DATABASE database-name 2、说明:删除数据库 drop database dbname 3、说明:备份sql server --- 创建备份数据的 device USE master EXEC sp_addumpdevice 'disk','testBack', 'c:mssql7backupMyNwind_1.dat' --- 开始备份 BACKUP DATABASE pubs TO testBack 4、说明:创建新表

create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..) 根据已有的表创建新表: A:create table tab_new like tab_old (使用旧表创建新表) B:create table tab_new as select col1,col2? from tab_old definition only 5、说明: 删除新表: tabname 6、说明: 增加一个列:Alter table tabname add column col type 注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。 7、说明: 添加主键:Alter table tabname add primary key(col) 说明: 删除主键:Alter table tabname drop primary key(col) 8、说明: 创建索引:create [unique] index idxname on tabname(col?.) 删除索引:drop index idxname 注:索引是不可更改的,想更改必须删除重新建。

sql查询语句大全

SQL查询语句大全 《SQL语句的基本语法》 一.Select语句的完整语法为: Select[ALL|DISTINCT|DISTINCTROW|TOP] {*|talbe.*|[table.]field1[AS alias1][,[table.]field2[AS alias2][,…]]} FROM tableexpression[,…][IN externaldatabase] [Where…] [GROUP BY…] [HAVING…] [ORDER BY…] [WITH OWNERACCESS OPTION] 说明: 用中括号([])括起来的部分表示是可选的,用大括号({})括起来的部分是表示必须从中选择其中的一个。 1 FROM子句 FROM子句指定了Select语句中字段的来源。FROM子句后面是包含一个或多个的表达式(由逗号分开),其中的表达式可为单一表名称、已保存的查询或 由 INNER JOIN、LEFT JOIN 或 RIGHT JOIN 得到的复合结果。如果表或查询存储在外部数据库,在IN 子句之后指明其完整路径。 例:下列SQL语句返回所有有定单的客户: Select orderID,Customer.customerID FROM orders Customers Where orders.CustomerID=Customers.CustomeersID 2 ALL、DISTINCT、DISTINCTROW、TOP谓词 (1) ALL 返回满足SQL语句条件的所有记录。如果没有指明这个谓词,默认为ALL。 例:Select ALL FirstName,LastName FROM Employees (2) DISTINCT 如果有多个记录的选择字段的数据相同,只返回一个。 (3) DISTINCTROW 如果有重复的记录,只返回一个 (4) TOP显示查询头尾若干记录。也可返回记录的百分比,这是要用 TOP N PERCENT子句(其中N 表示百分比) 例:返回5%定货额最大的定单 Select TOP 5 PERCENT* FROM [ order Details] orDER BY UnitPrice*Quantity*(1-Discount) DESC 3 用 AS 子句为字段取别名 如果想为返回的列取一个新的标题,或者,经过对字段的计算或总结之后,产生了一个新的值,希望把它放到一个新的列里显示,则用AS保留。 例:返回FirstName字段取别名为NickName Select FirstName AS NickName ,LastName ,City

SQL语句大全实例

SQL语句实例 表操作 例 1 对于表的教学管理数据库中的表STUDENTS ,可以定义如下:CREATE TABLE STUDENTS (SNO NUMERIC (6, 0) NOT NULL SNAME CHAR (8) NOT NULL AGE NUMERIC(3,0) SEX CHAR(2) BPLACE CHAR(20) PRIMARY KEY(SNO)) 例 2 对于表的教学管理数据库中的表ENROLLS ,可以定义如下: CREATE TABLE ENROLLS (SNO NUMERIC(6,0) NOT NULL CNO CHAR(4) NOT NULL GRADE INT PRIMARY KEY(SNO,CNO) FOREIGN KEY(SNO) REFERENCES STUDENTS(SNO) FOREIGN KEY(CNO) REFERENCES COURSES(CNO) CHECK ((GRADE IS NULL) OR (GRADE BETWEEN 0 AND 100))) 例 3 根据表的STUDENTS 表,建立一个只包含学号、姓名、年龄的女学生表。 CREATE TABLE GIRL

AS SELECT SNO, SNAME, AGE FROM STUDENTS WHERE SEX=' 女'; 例 4 删除教师表TEACHER 。 DROP TABLE TEACHER 例 5 在教师表中增加住址列。 ALTER TABLE TEACHERS ADD (ADDR CHAR(50)) 例 6 把STUDENTS 表中的BPLACE 列删除,并且把引用BPLACE 列的所有视图和约束也一起删除。 ALTER TABLE STUDENTS DROP BPLACE CASCADE 例7 补充定义ENROLLS 表的主关键字。 ALTER TABLE ENROLLS ADD PRIMARY KEY (SNO,CNO) ; 视图操作(虚表) 例9 建立一个只包括教师号、姓名和年龄的视图FACULTY 。( 在视图定义中不能包含ORDER BY 子句) CREATE VIEW FACULTY AS SELECT TNO, TNAME, AGE FROM TEACHERS 例10 从学生表、课程表和选课表中产生一个视图GRADE_TABLE ,它包括学生姓名、课程名和成绩。 CREATE VIEW GRADE_TABLE AS SELECT SNAME,CNAME,GRADE FROM STUDENTS,COURSES,ENROLLS WHERE STUDENTS.SNO =ENROLLS.SNO AND https://www.360docs.net/doc/356445881.html,O=https://www.360docs.net/doc/356445881.html,O 例11 删除视图GRADE_TABLE DROP VIEW GRADE_TABLE RESTRICT 索引操作 例12 在学生表中按学号建立索引。 CREATE UNIQUE INDEX ST ON STUDENTS (SNO,ASC) 例13 删除按学号所建立的索引。 DROP INDEX ST 数据库模式操作

SQL数据库查询语句范例

推荐一、简单查询 简单的Transact-SQL查询只包括选择列表、FROM子句和Where子句。它们分别说明所查询列、查询的表或视图、以及搜索条件等。例如,下面的语句查询testtable表中姓名为“张三”的nickname字段和email字段。Select nickname,email FROM testtable Where n ame=’张三’ (一) 选择列表 选择列表(select_list)指出所查询列,它可以是一组列名列表、星号、表达式、变量(包括局部变量和全局变量)等构成。 1、选择所有列例如,下面语句显示testtable表中所有列的数据:Select * FROM testtable 2、选择部分列并指定它们的显示次序 查询结果集合中数据的排列顺序与选择列表中所指定的列名排列顺序相同。 例如:Select nickname,email FROM testtable 3、更改列标题 在选择列表中,可重新指定列标题。定义格式为: 列标题=列名列名列标题 如果指定的列标题不是标准的标识符格式时,应使用引号定界符,例如,下列语句使用汉字显示列标题: Select 昵称=nickname,电子邮件=email FROM testtable 4、删除重复行 Select语句中使用ALL或DISTINCT选项来显示表中符合条件的所有行或删除其中重复的数据行,默认为ALL。使用DISTINC T选项时,对于所有重复的数据行在Select返回的结果集合中只保留一行。 5、限制返回的行数 使用TOP n [PERCENT]选项限制返回的数据行数,TOP n说明返回n行,而TOP n PERCENT时,说明n是表示一百分数,指定返回的行数等于总行数的百分之几。例如: Select TOP 2 *FROM testtable Select TOP 20 PERCENT * FROM testtable (二) FROM子句 FROM子句指定Select语句查询及与查询相关的表或视图。在FROM子句中最多可指定256个表或视图,它们之间用逗号分隔。 在FROM子句同时指定多个表或视图时,如果选择列表中存在同名列,这时应使用对象名限定这些列所属的表或视图。例如在usertable和cityta ble表中同时存在cityid列,在查询两个表中的cityid时应使用下面语句格式加以限定: Select username,citytable.cityid FROM usertable,citytable Where usertable.cityid=citytable.cityid 在FROM子句中可用以下两种格式为表或视图指定别名: 表名 as 别名表名别名

oracle 经典SQL语句大全

一、基础 1、说明:创建数据库 CREATE DATABASE database-name 2、说明:删除数据库 drop database dbname 3、说明:备份sql server --- 创建备份数据的 device USE master EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1. dat' --- 开始备份 BACKUP DATABASE pubs TO testBack 4、说明:创建新表 create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..) 根据已有的表创建新表: A:create table tab_new like tab_old (使用旧表创建新表) B:create table tab_new as select col1,col2… from tab_old definition only 5、说明:删除新表 drop table tabname 6、说明:增加一个列 Alter table tabname add column col type 注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。 7、说明:添加主键:Alter table tabname add primary key(col) 说明:删除主键: Alter table tabname drop primary key(col) 8、说明:创建索引:create [unique] index idxname on tabname(col….) 删除索引:drop index idxname 注:索引是不可更改的,想更改必须删除重新建。 9、说明:创建视图:create view viewname as select statement 删除视图:drop view viewname 10、说明:几个简单的基本的sql语句 选择:select * from table1 where 范围 插入:insert into table1(field1,field2) values(value1,value2) 删除:delete from table1 where 范围 更新:update table1 set field1=value1 where 范围 查找:select * from table1 where field1 like ’%value1%’ ---like的语法很精妙,查资料! 排序:select * from table1 order by field1,field2 [desc] 总数:select count as totalcount from table1

SQL数据库语句大全大全(完全整理版)

SQL语句大全--语句功能 --数据操作 SELECT --从数据库表中检索数据行和列 INSERT --向数据库表添加新数据行 DELETE --从数据库表中删除数据行 UPDATE --更新数据库表中的数据 -数据定义 CREATE TABLE --创建一个数据库表 DROP TABLE --从数据库中删除表 ALTER TABLE --修改数据库表结构 CREATE VIEW --创建一个视图 DROP VIEW --从数据库中删除视图 CREATE INDEX --为数据库表创建一个索引 DROP INDEX --从数据库中删除索引 CREATE PROCEDURE --创建一个存储过程 DROP PROCEDURE --从数据库中删除存储过程CREATE TRIGGER --创建一个触发器 DROP TRIGGER --从数据库中删除触发器 CREATE SCHEMA --向数据库添加一个新模式DROP SCHEMA --从数据库中删除一个模式CREATE DOMAIN --创建一个数据值域 ALTER DOMAIN --改变域定义 DROP DOMAIN --从数据库中删除一个域 --数据控制 GRANT --授予用户访问权限 DENY --拒绝用户访问 REVOKE --解除用户访问权限 --事务控制 COMMIT --结束当前事务 ROLLBACK --中止当前事务 SET TRANSACTION --定义当前事务数据访问特征 --程序化SQL DECLARE --为查询设定游标 EXPLAN --为查询描述数据访问计划 OPEN --检索查询结果打开一个游标

50个经典SQL查询语句

--一个题目涉及到的50个Sql语句 --(下面表的结构以给出,自己在数据库中建立表.并且添加相应的数据,数据要全面些. 其中Student表中,SId为学生的ID) ------------------------------------表结构-------------------------------------- --学生表tblStudent(编号StuId、姓名StuName、年龄StuAge、性别StuSex) --课程表tblCourse(课程编号CourseId、课程名称CourseName、教师编号TeaId) --成绩表tblScore(学生编号StuId、课程编号CourseId、成绩Score) --教师表tblTeacher(教师编号TeaId、姓名TeaName) --------------------------------------------------------------------------------- --1、查询“001”课程比“002”课程成绩高的所有学生的学号; Select StuId From tblStudent s1 Where (Select Score From tblScore t1 Where t1.StuId=s1.stuId And t1.CourseId='001')> (Select Score From tblScore t2 Where t2.StuId=s1.stuId And t2.CourseId='002') --2、查询平均成绩大于60分的同学的学号和平均成绩; Select StuId,Avg(Score) as AvgScore From tblScore Group By StuId Having Avg(Score)>60 --3、查询所有同学的学号、姓名、选课数、总成绩; Select StuId,StuName, SelCourses=(Select Count(CourseId) From tblScore t1 Where t1.StuId=s1.StuId), SumScore=(Select Sum(Score) From tblScore t2 Where t2.StuId=s1.StuId) From tblStudent s1 --4、查询姓“李”的老师的个数; Select Count(*) From tblTeacher Where TeaName like '李%' --5、查询没学过“叶平”老师课的同学的学号、姓名; Select StuId,StuName From tblStudent Where StuId Not In ( Select StuID From tblScore sc Inner Join tblCourse cu ON sc.CourseId=cu.CourseId Inner Join tblTeacher tc ON cu.TeaId=tc.TeaId Where tc.TeaName='叶平' ) --6、查询学过“001”并且也学过编号“002”课程的同学的学号、姓名; Select StuId,StuName From tblStudent st Where (Select Count(*) From tblScore s1 Where s1.StuId=st.StuId And

语句大全SQL语句大全

语句大全-SQL语句大全 SQL语句大全。SQL即结构化查询语言。 是一种特殊目的的编程语言。是一种数据库查询和程序设计语言。用于存取数据以及查询。更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。SQL语句无论是种类还是数量都是繁多的。很多语句也是经常要用到的。SQL查询语句就是一个典型的例子。无论是高级查询还是低级查询。SQL查询语句的需求是最频繁的。 中文名,SQL语句大全。作用于,数据库。具体,编程语言。相关学科,数据库原理。设计教程。 基础。创建之前判断该数据库是否存在if exists drop database databaseNamegoCreate DATABASE databasenameon primary-- 默认就属于primary文件组,可省略log ondrop

database databasename--- 创建备份数据的deviceUSE masterEXEC sp_addumpdevice ‘disk’, ‘testBack’, ‘c:\mssql7backup\MyNwind_’--- 开始备份BACKUP DATABASE pubs TO testBackcreate table tabname,col2 type2 ,..)--primary key为主键identity表示递增数量根据已有的表创建新表:A:gouse 原数据库名goselect * into 目的数据库名.dbo.目的表名from 原表名B:create table tab_new as select col1,col2… from tab_old definition onlycreate sequence SIMON_SEQUENCEminvalue 1 -- 最小值maxvalue 999 -- 最大值start with 1 -- 开始值increment by 1 -- 每次加几cache 20;drop table tabname--这是将表连同表中信息一起删除但是日志文件中会有记录delete from table_name-这是将表中信息删除但是会保留这个表Alter table table_name add column_name column_type --在表中增加一列。 内的内容为可选项Alter table

SQL查询语句例子

数据表的查询(select) select 字段列表[as 别名], * from 数据表名 [where 条件语句] [group by 分组字段] [order by 排序字段列表desc] [LIMIT startrow,rownumber] 1、Select 字段列表From 数据表 例:①、select id,gsmc,add,tel from haf (* 表示数据表中所有字段) ②、select 单价,数量,单价*数量as 合计金额from haf (As 设置字段的别名) 2、Select …from …Where 筛选条件式 筛选条件式:①、字符串数据:select * from 成绩单Where 姓名='李明' ②、万用字符:select * from 成绩单Where 姓名like '李%' select * from 成绩单Where 姓名like '%李%' select * from 成绩单Where 姓名like '%李_' ③、特殊的条件式: ⑴= / > / < / <> / >= / <= ⑵AND(逻辑与) OR(逻辑或) NOT(逻辑非) ⑶Where 字段名称in(值一,值二) ⑷Where 字段名称Is Null / Where 字段名称Is Not Null 3、Select …from …group by 字段 SQL函数: SELECT sex,count(id) as women from `user` group by 'sex'; 函数名描述函数名描述 AVG平均值Count计数 MAX最大值MIN最小值 Sum求和

SQL语句大全实例

选课系统SQL语句实例 1. 表操作 (1) 2. 视图操作(虚表)—— (2) 3. 索引操作 (3) 4. 数据库模式操作 (3) 5. 单表操作 (3) 6. 多表操作 (4) 7. 表达式与函数的使用 (6) 8. 相关子查询 (7) 9. 关系代数运算 (8) 10. SQL 的数据操纵 (9) 11. SQL 的数据控制 (10) 1.表操作 例1 对于表的教学管理数据库中的表STUDENTS ,可以定义如下: CREATE TABLE STUDENTS

(SNO NUMERIC (6, 0) NOT NULL SNAME CHAR (8) NOT NULL AGE NUMERIC(3,0) SEX CHAR(2) BPLACE CHAR(20) PRIMARY KEY(SNO)) 例2 对于表的教学管理数据库中的表ENROLLS ,可以定义如下: CREATE TABLE ENROLLS (SNO NUMERIC(6,0) NOT NULL CNO CHAR(4) NOT NULL GRADE INT PRIMARY KEY(SNO,CNO) FOREIGN KEY(SNO) REFERENCES STUDENTS(SNO) FOREIGN KEY(CNO) REFERENCES COURSES(CNO) CHECK ((GRADE IS NULL) OR (GRADE BETWEEN 0 AND 100))) 例3 根据表的STUDENTS 表,建立一个只包含学号、姓名、年龄的女学生表。 CREATE TABLE GIRL AS SELECT SNO, SNAME, AGE FROM STUDENTS WHERE SEX=' 女'; 例4 删除教师表TEACHER 。 DROP TABLE TEACHER 例5 在教师表中增加住址列。 ALTER TABLE TEACHERS ADD (ADDR CHAR(50)) 例6 把STUDENTS 表中的BPLACE 列删除,并且把引用BPLACE 列的所有视图和约束也一起删除。 ALTER TABLE STUDENTS DROP BPLACE CASCADE 例7 补充定义ENROLLS 表的主关键字。 ALTER TABLE ENROLLS ADD PRIMARY KEY (SNO,CNO) ; 2.视图操作(虚表) 例9 建立一个只包括教师号、姓名和年龄的视图FACULTY 。( 在视图定义中不能包含ORDER BY 子句) CREATE VIEW FACULTY AS SELECT TNO, TNAME, AGE FROM TEACHERS

常用经典SQL语句大全完整版-权威人士总结出的-详解+实例

下列语句部分是Mssql语句,不可以在access中使用。 SQL分类: DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE) DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT) DCL—数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK) 首先,简要介绍基础语句: 1、说明:创建数据库 CREATE DATABASE database-name 2、说明:删除数据库 drop database dbname 3、说明:备份sql server --- 创建备份数据的device USE master EXEC sp_addumpdevice ?disk?, ?testBack?, ?c:\mssql7backup\MyNwind_1.dat? --- 开始备份 BACKUP DATABASE pubs TO testBack 4、说明:创建新表 create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..) 根据已有的表创建新表: A:create table tab_new like tab_old (使用旧表创建新表) B:create table tab_new as select col1,col2… from tab_old definition only 5、说明: 删除新表:drop table tabname 6、说明: 增加一个列:Alter table tabname add column col type 注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。 7、说明: 添加主键:Alter table tabname add primary key(col) 说明: 删除主键:Alter table tabname drop primary key(col) 8、说明: 创建索引:create [unique] index idxname on tabname(col….) 删除索引:drop index idxname 注:索引是不可更改的,想更改必须删除重新建。 9、说明: 创建视图:create view viewname as select statement 删除视图:drop view viewname 10、说明:几个简单的基本的sql语句 选择:select * from table1 where 范围 插入:insert into table1(field1,field2) values(value1,value2) 删除:delete from table1 where 范围 更新:update table1 set field1=value1 where 范围 查找:select * from table1 where field1 like ?%value1%? ---like的语法很精妙,查资料! 排序:select * from table1 order by field1,field2 [desc]

sql搜索语句大全

SQL语句大全 --语句功能 --数据操作 SELECT --从数据库表中检索数据行和列 INSERT --向数据库表添加新数据行 DELETE --从数据库表中删除数据行 UPDATE --更新数据库表中的数据 --数据定义 CREATE TABLE --创建一个数据库表 DROP TABLE --从数据库中删除表 ALTER TABLE --修改数据库表结构 CREATE VIEW --创建一个视图 DROP VIEW --从数据库中删除视图 CREATE INDEX --为数据库表创建一个索引 DROP INDEX --从数据库中删除索引 CREATE PROCEDURE --创建一个存储过程 DROP PROCEDURE --从数据库中删除存储过程 CREATE TRIGGER --创建一个触发器 DROP TRIGGER --从数据库中删除触发器 CREATE SCHEMA --向数据库添加一个新模式 DROP SCHEMA --从数据库中删除一个模式 CREATE DOMAIN --创建一个数据值域 ALTER DOMAIN --改变域定义 DROP DOMAIN --从数据库中删除一个域 ***SELECT*** select *(列名) from table_name(表名) where column_name operator value example: select * from stock_information where stockid = str(nid) select distinct column_name form table_name --------- distinct指定检索独有的列值,不重复 select stocknumber ,"stocknumber + 10" = stocknumber + 10 from table_name select stockname , "stocknumber" = count(*) from table_name group by stockname --------- group by 将表按行分组,指定列中有相同的值 having count(*) = 2 --------- having选定指定的组 select *

相关文档
最新文档