简单数据库查询语句
![简单数据库查询语句](https://img.360docs.net/img00/09be4yjq1uc7n8tmjs-01.webp)
![简单数据库查询语句](https://img.360docs.net/img00/09be4yjq1uc7n8tmjs-32.webp)
数据查询语言(SELECT语句)
数据操纵语言(INSERT, UPDATE, DELETE语句)
数据定义语言(如CREATE, DROP等语句)
数据控制语言(如COMMIT, ROLLBACK等语句
超详细的SQL语句语法2008-07-11 14:25简单的Transact-SQL查询只包括选择列表、FROM 子句和WHERE子句
一、简单查询
简单的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
9、说明:in 的使用方法
select * from table1 where a [not] in (‘值1’,’值2’,’值4’,
’值6’)
10、说明:两张关联表,删除主表中已经在副表中没有的信息
delete from table1 where not exists ( select * from table2
where table1.field1=table2.field1 )
11、说明:四表联查问题:
select * from a left inner join b on a.a=b.b right inner join
c on a.a=c.c inner join
d on a.a=d.d wher
e .....
12、说明:日程安排提前五分钟提醒
SQL: select * from 日程安排where datediff('minute',f开始时
间,getdate())>5
13、说明:一条sql 语句搞定数据库分页
select top 10 b.* from (select top 20 主键字段,排序字段from 表
名order by 排序字段desc) a,表名b where b.主键字段= a.主键字
段order by a.排序字段
14、说明:前10条记录
select top 10 * from table1 where 范围
15、说明:选择在每一组b值相同的数据中对应的a最大的记录的所有信息( 类似这样的用法可以用于论坛每月排行榜,每月热销产品分析,按科目成绩排
名,等等.)
select a,b,c from tablename ta where a=(select max(a) from
tablename tb where tb.b=ta.b)
16、说明:包括所有在TableA 中但不在TableB和TableC 中的行并消除
所有重复行而派生出一个结果表
(select a from tableA ) except (select a from tableB) except
(select a from tableC)
17、说明:随机取出10条数据
select top 10 * from tablename order by newid()
18、说明:随机选择记录
select newid()
19、说明:删除重复记录
Delete from tablename where id not in (select max(id) from
tablename group by col1,col2,...)
20、说明:列出数据库里所有的表名
select name from sysobjects where type='U'
21、说明:列出表里的所有的
select name from syscolumns where id=object_id('TableName')
22、说明:列示type、vender、pcs字段,以type字段排列,case可以方便
地实现多重选择,类似select 中的case。
select type,sum(case vender when 'A' then pcs else 0
end),sum(case vender when 'C' then pcs else 0 end),sum(case
vender when 'B' then pcs else 0 end) FROM tablename group by
type
显示结果:
type vender pcs
电脑A 1
电脑A 1
光盘B 2
光盘A 2
手机B 3
手机C 3
23、说明:初始化表table1
TRUNCATE TABLE table1
24、说明:选择从10到15的记录
select top 5 * from (select top 15 * from table order by id
asc) table_别名order by id desc
随机选择数据库记录的方法(使用Randomize函数,通过SQL语句实现)
对存储在数据库中的数据来说,随机数特性能给出上面的效果,但它们
可能太慢了些。你不能要求ASP“找个随机数”然后打印出来。实际上常见
的解决方案是建立如下所示的循环:
Randomize
RNumber = Int(Rnd*499) +1
While Not objRec.EOF
If objRec("ID") = RNumber THEN
... 这里是执行脚本...
end if
objRec.MoveNext
Wend
这很容易理解。首先,你取出1到500范围之内的一个随机数(假设500 就是数据库内记录的总数)。然后,你遍历每一记录来测试ID 的值、检查
其是否匹配RNumber。满足条件的话就执行由THEN 关键字开始的那一块代码。假如你的RNumber 等于495,那么要循环一遍数据库花的时间可就长了。
虽然500这个数字看起来大了些,但相比更为稳固的企业解决方案这还是个
小型数据库了,后者通常在一个数据库内就包含了成千上万条记录。这时候
不就死定了?
采用SQL,你就可以很快地找出准确的记录并且打开一个只包含该记录
的recordset,如下所示:
Randomize
RNumber = Int(Rnd*499) + 1
SQL = "SELECT * FROM Customers WHERE ID = " & RNumber
set objRec = ObjConn.Execute(SQL)
Response.WriteRNumber & " = " & objRec("ID") & " " &
objRec("c_email")
不必写出RNumber 和ID,你只需要检查匹配情况即可。只要你对以上代码的工作满意,你自可按需操作“随机”记录。Recordset没有包含其他内
容,因此你很快就能找到你需要的记录这样就大大降低了处理时间。
再谈随机数
现在你下定决心要榨干Random 函数的最后一滴油,那么你可能会一次
取出多条随机记录或者想采用一定随机范围内的记录。把上面的标准Random
示例扩展一下就可以用SQL应对上面两种情况了。
为了取出几条随机选择的记录并存放在同一recordset内,你可以存储
三个随机数,然后查询数据库获得匹配这些数字的记录:
SQL = "SELECT * FROM Customers WHERE ID = " & RNumber & " OR
ID = " & RNumber2 & " OR ID = " & RNumber3
假如你想选出10条记录(也许是每次页面装载时的10条链接的列表),你可以用BETWEEN 或者数学等式选出第一条记录和适当数量的递增记录。这一操作可以通过好几种方式来完成,但是SELECT 语句只显示一种可能(这
里的ID 是自动生成的号码):
SQL = "SELECT * FROM Customers WHERE ID BETWEEN " & RNumber & " AND " & RNumber & "+ 9"
注意:以上代码的执行目的不是检查数据库内是否有9条并发记录。
随机读取若干条记录,测试过
Access语法:SELECT top 10 * From 表名ORDER BY Rnd(id)
Sql server:select top n * from 表名order by newid()
mysqlelect * From 表名Order By rand() Limit n
Access左连接语法(最近开发要用左连接,Access帮助什么都没有,网上没有
Access的SQL说明,只有自己测试, 现在记下以备后查)
语法elect table1.fd1,table1,fd2,table2.fd2 From table1 left
join table2 on table1.fd1,table2.fd1 where ...
使用SQL语句用...代替过长的字符串显示
语法:
SQL数据库:select case when len(field)>10 then left(field,10)
+'...' else field end as news_name,news_id from tablename
Access数据库:SELECT iif(len(field)>2,left(field,2)
+'...',field) FROM tablename;
Conn.Execute说明
Execute方法
该方法用于执行SQL语句。根据SQL语句执行后是否返回记录集,该方法
的使用格式分为以下两种:
1.执行SQL查询语句时,将返回查询得到的记录集。用法为:
Set 对象变量名=连接对象.Execute("SQL 查询语言")
Execute方法调用后,会自动创建记录集对象,并将查询结果存储在
该记录对象中,通过Set方法,将记录集赋给指定的对象保存,以后对象变
量就代表了该记录集对象。
2.执行SQL的操作性语言时,没有记录集的返回。此时用法为:
连接对象.Execute "SQL 操作性语句" [, RecordAffected][,
Option]
·RecordAffected 为可选项,此出可放置一个变量,SQL语
句执行后,所生效的记录数会自动保存到该变量中。通过访问该变量,就可
知道SQL语句队多少条记录进行了操作。
·Option 可选项,该参数的取值通常为adCMDText,它用于
告诉ADO,应该将Execute方法之后的第一个字符解释为命令文本。通过指定该参数,可使执行更高效。
·BeginTrans、RollbackTrans、CommitTrans方法
这三个方法是连接对象提供的用于事务处理的方法。BeginTrans用于开
始一个事物;RollbackTrans用于回滚事务;CommitTrans用于提交所有的
事务处理结果,即确认事务的处理。
事务处理可以将一组操作视为一个整体,只有全部语句都成功执行后,
事务处理才算成功;若其中有一个语句执行失败,则整个处理就算失败,并
恢复到处里前的状态。
BeginTrans和CommitTrans用于标记事务的开始和结束,在这两个之间
的语句,就是作为事务处理的语句。判断事务处理是否成功,可通过连接对
象的Error集合来实现,若Error集合的成员个数不为0,则说明有错误发生
,事务处理失败。Error集合中的每一个Error对象,代表一个错误信息。
以下是MS SQL
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、说明:删除新表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 运算符
UNION 运算符通过组合其他两个结果表(例如TABLE1 和TABLE2)并消去表中任何重复行而派生出一个结果表。当ALL 随UNION 一起使用时(即UNION ALL),不消除重复行。两种情况下,派生表的每一行不是来自
TABLE1 就是来自TABLE2。
B:EXCEPT 运算符
EXCEPT 运算符通过包括所有在TABLE1 中但不在TABLE2 中的行并消除所有重复行而派生出一个结果表。当ALL 随EXCEPT 一起使用时(EXCEPT
ALL),不消除重复行。
C:INTERSECT 运算符
INTERSECT 运算符通过只包括TABLE1 和TABLE2 中都有的行并消除所有重复行而派生出一个结果表。当ALL 随INTERSECT 一起使用时
(INTERSECT ALL),不消除重复行。
注:使用运算词的几个查询结果行必须是一致的。
12、说明:使用外连接
A、left outer join:
左外连接(左连接):结果集几包括连接表的匹配行,也包括左连接表的所
有行。
SQL: select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN
b ON a.a = b.c
B:right outer join:
右外连接(右连接):结果集既包括连接表的匹配连接行,也包括右连接表的
所有行。
C:full outer join:
全外连接:不仅包括符号连接表的匹配行,还包括两个连接表中的所有记录。
其次,大家来看一些不错的sql语句
1、说明:复制表(只复制结构,源表名:a 新表名:b) (Access可用)
法一:select * into b from a where 1<>1
法二:select top 0 * into b from a
2、说明:拷贝表(拷贝数据,源表名:a 目标表名:b) (Access可用)
insert into b(a, b, c) select d,e,f from a;
3、说明:跨数据库之间表的拷贝(具体数据使用绝对路径) (Access可用) insert into b(a, b, c) select d,e,f from a in ‘具体数据库’
where 条件
例子:..from b in '"&Server.MapPath(".")&"data.mdb" &"'
where..
4、说明:子查询(表名1:a 表名2:b)
select a,b,c from a where a IN (select d from b ) 或者:
select a,b,c from a where a IN (1,2,3)
5、说明:显示文章、提交人和最后回复时间
select a.title,https://www.360docs.net/doc/02322185.html,ername,b.adddate from table a,(select
max(adddate) adddate from table where table.title=a.title) b
6、说明:外连接查询(表名1:a 表名2:b)
select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON
a.a =
b.c
7、说明:在线视图查询(表名1:a )
select * from (SELECT a,b,c FROM a) T where t.a > 1;
8、说明:between的用法,between限制查询数据范围时包括了边界值,not
between不包括
select * from table1 where time between time1 and time2
select a,b,c, from table1 where a not between 数值1 and 数值2
9、说明:in 的使用方法
select * from table1 where a [not] in (‘值1’,’值2’,’值4’,
’值6’)
10、说明:两张关联表,删除主表中已经在副表中没有的信息
delete from table1 where not exists ( select * from table2
where table1.field1=table2.field1 )
11、说明:四表联查问题:
select * from a left inner join b on a.a=b.b right inner join
c on a.a=c.c inner join
d on a.a=d.d wher
e .....
12、说明:日程安排提前五分钟提醒
SQL: select * from 日程安排where datediff('minute',f开始时
间,getdate())>5
13、说明:一条sql 语句搞定数据库分页
select top 10 b.* from (select top 20 主键字段,排序字段from 表
名order by 排序字段desc) a,表名b where b.主键字段= a.主键字
段order by a.排序字段
14、说明:前10条记录
select top 10 * form table1 where 范围
15、说明:选择在每一组b值相同的数据中对应的a最大的记录的所有信息( 类似这样的用法可以用于论坛每月排行榜,每月热销产品分析,按科目成绩排
名,等等.)
select a,b,c from tablename ta where a=(select max(a) from
tablename tb where tb.b=ta.b)
16、说明:包括所有在TableA 中但不在TableB和TableC 中的行并消除
所有重复行而派生出一个结果表
(select a from tableA ) except (select a from tableB) except
(select a from tableC)
17、说明:随机取出10条数据
select top 10 * from tablename order by newid()
18、说明:随机选择记录
select newid()
19、说明:删除重复记录
Delete from tablename where id not in (select max(id) from
tablename group by col1,col2,...)
20、说明:列出数据库里所有的表名
select name from sysobjects where type='U'
21、说明:列出表里的所有的
select name from syscolumns where id=object_id('TableName')
22、说明:列示type、vender、pcs字段,以type字段排列,case可以方便
地实现多重选择,类似select 中的case。
select type,sum(case vender when 'A' then pcs else 0
end),sum(case vender when 'C' then pcs else 0 end),sum(case
vender when 'B' then pcs else 0 end) FROM tablename group by
type
显示结果:
type vender pcs
电脑A 1
电脑A 1
光盘B 2
光盘A 2
手机B 3
手机C 3
23、说明:初始化表table1
TRUNCATE TABLE table1
24、说明:选择从10到15的记录
select top 5 * from (select top 15 * from table order by id
asc) table_别名order by id desc
随机选择数据库记录的方法(使用Randomize函数,通过SQL语句实现)对存储在数据库中的数据来说,随机数特性能给出上面的效果,但它们
可能太慢了些。你不能要求ASP“找个随机数”然后打印出来。实际上常见
的解决方案是建立如下所示的循环:
Randomize
RNumber = Int(Rnd*499) +1
While Not objRec.EOF
If objRec("ID") = RNumber THEN
... 这里是执行脚本...
end if
objRec.MoveNext
Wend
这很容易理解。首先,你取出1到500范围之内的一个随机数(假设500
就是数据库内记录的总数)。然后,你遍历每一记录来测试ID 的值、检查
其是否匹配RNumber。满足条件的话就执行由THEN 关键字开始的那一块代码
。假如你的RNumber 等于495,那么要循环一遍数据库花的时间可就长了。
虽然500这个数字看起来大了些,但相比更为稳固的企业解决方案这还是个
小型数据库了,后者通常在一个数据库内就包含了成千上万条记录。这时候
不就死定了?
采用SQL,你就可以很快地找出准确的记录并且打开一个只包含该记录
的recordset,如下所示:
Randomize
RNumber = Int(Rnd*499) + 1
SQL = "SELECT * FROM Customers WHERE ID = " & RNumber
set objRec = ObjConn.Execute(SQL)
Response.WriteRNumber & " = " & objRec("ID") & " " &
objRec("c_email")
不必写出RNumber 和ID,你只需要检查匹配情况即可。只要你对以上代码的工作满意,你自可按需操作“随机”记录。Recordset没有包含其他内
容,因此你很快就能找到你需要的记录这样就大大降低了处理时间。
再谈随机数
现在你下定决心要榨干Random 函数的最后一滴油,那么你可能会一次
取出多条随机记录或者想采用一定随机范围内的记录。把上面的标准Random
示例扩展一下就可以用SQL应对上面两种情况了。
为了取出几条随机选择的记录并存放在同一recordset内,你可以存储
三个随机数,然后查询数据库获得匹配这些数字的记录:
SQL = "SELECT * FROM Customers WHERE ID = " & RNumber & " OR
ID = " & RNumber2 & " OR ID = " & RNumber3
假如你想选出10条记录(也许是每次页面装载时的10条链接的列表),你可以用BETWEEN 或者数学等式选出第一条记录和适当数量的递增记录。这一操作可以通过好几种方式来完成,但是SELECT 语句只显示一种可能(这
里的ID 是自动生成的号码):
SQL = "SELECT * FROM Customers WHERE ID BETWEEN " & RNumber & " AND " & RNumber & "+ 9"
注意:以上代码的执行目的不是检查数据库内是否有9条并发记录。
随机读取若干条记录,测试过
Access语法:SELECT top 10 * From 表名ORDER BY Rnd(id)
Sql server:select top n * from 表名order by newid()
mysqlelect * From 表名Order By rand() Limit n
Access左连接语法(最近开发要用左连接,Access帮助什么都没有,网上没有
Access的SQL说明,只有自己测试, 现在记下以备后查)
语法elect table1.fd1,table1,fd2,table2.fd2 From table1 left
join table2 on table1.fd1,table2.fd1 where ...
使用SQL语句用...代替过长的字符串显示
语法:
SQL数据库:select case when len(field)>10 then left(field,10)
+'...' else field end as news_name,news_id from tablename
Access数据库:SELECT iif(len(field)>2,left(field,2)
+'...',field) FROM tablename;
Conn.Execute说明
Execute方法
该方法用于执行SQL语句。根据SQL语句执行后是否返回记录集,该方法
的使用格式分为以下两种:
1.执行SQL查询语句时,将返回查询得到的记录集。用法为:
Set 对象变量名=连接对象.Execute("SQL 查询语言")
Execute方法调用后,会自动创建记录集对象,并将查询结果存储在
该记录对象中,通过Set方法,将记录集赋给指定的对象保存,以后对象变
量就代表了该记录集对象。
2.执行SQL的操作性语言时,没有记录集的返回。此时用法为:
连接对象.Execute "SQL 操作性语句" [, RecordAffected][,
Option]
·RecordAffected 为可选项,此出可放置一个变量,SQL语
句执行后,所生效的记录数会自动保存到该变量中。通过访问该变量,就可
知道SQL语句队多少条记录进行了操作。
·Option 可选项,该参数的取值通常为adCMDText,它用于
告诉ADO,应该将Execute方法之后的第一个字符解释为命令文本。通过指定
该参数,可使执行更高效。
·BeginTrans、RollbackTrans、CommitTrans方法
这三个方法是连接对象提供的用于事务处理的方法。BeginTrans用于开
始一个事物;RollbackTrans用于回滚事务;CommitTrans用于提交所有的
事务处理结果,即确认事务的处理。
事务处理可以将一组操作视为一个整体,只有全部语句都成功执行后,
事务处理才算成功;若其中有一个语句执行失败,则整个处理就算失败,并
恢复到处里前的状态。
BeginTrans和CommitTrans用于标记事务的开始和结束,在这两个之间
的语句,就是作为事务处理的语句。判断事务处理是否成功,可通过连接对
象的Error集合来实现,若Error集合的成员个数不为0,则说明有错误发生
,事务处理失败。Error集合中的每一个Error对象,代表一个错误信息。
Access基本操作
Access基本操作
一、数据库的基本概念和设计方法
所谓数据库实际上是关于某一特定主题或目标的信息集合。它把大量数据按一定的结构进行存储,集中管理和统一使用这些数据,实现数据共享。在Access中,数据库不仅包含用于存放加工过的信息的表,还包含以表中所存放的信息为操作对象的查询、窗体、报表、页等数据库对象。
一般地,数据库的设计应遵循以下几个步骤:
1、确定创建数据库所要完成的目的。
2、确定创建数据库中所需要的表。
3、确定表中所需要的字段。
4、明确有唯一值的主关键字段。
5、确定表之间的关系。
6、优化设计。
7、输入数据并创建其他数据库对象。
二、创建数据库
在Access中既可以使用人工的方法按照自己的要求来建立数据库,也可以使用软件为用户提供的各种数据库向导,前者更为自由而后者则显然要方便一些。
A、自行创建数据库
使用人工的方法按照自己的要求来建立数据库,首先应创建一个空数据库,然后再将对象加入到数据库中。创建空数据库的步骤为:
1、在启动Access后的Microsoft Access对话框中选择“空Access数据库”选项。
2、在弹出的“文件新建数据库”对话框中选择数据库存放的位置、输入数据库的名称并单击“创建”按钮,进入Access数据库窗口,即完成了空数据库的创建。
B、使用数据库向导创建数据库
Access为用户提供了多种数据库向导,使用数据库向导可以方便地完成数据库的创建工作。具体步骤如下:
1、在启动Access后的Microsoft Access对话框中选择“Access数据库向导、数据页和项目”选项。
2、在弹出“新建”对话框后单击“数据库”选项卡,选择一种数据库。
3、在弹出的“文件新建数据库”对话框中,选择数据库存放的位置,输入数据库的名称并单击“创建”按钮。
4、依次在数据库向导窗口中为数据库中的各个表选择字段、选择显示样式、确定打印报表所用的样式、输入所建数据库的标题、确定是否在所有报表上加一幅图片,最后启动该数据库,至此就完成了使用向导创建数据库的工作。
三、表的基本概念
表是数据库中存储数据的最基本的对象,常称为“基础表”,是构成数据库的一个重要组成部分。表由若干记录组成,每一行称为一个记录,对应着一个真实的对象;每一列称为一个字段,对应着对象的一个属性信息。每个表的关键字(关键字可以为一个字段或多个字段)使表中的记录唯一。在表内还可以定义索引,当表内存放大量数据时可以加速数据的查找。
Access中的所有数据都存放在数据表中。表是一个数据库系统的基础,只有建立表后,才可以建立查询、窗体和报表等其他项目,逐步完善数据库。
四、创建表
Access提供了三种创建新表的方法:
1、使用数据库向导,在一个操作中创建整个数据库所需的全部表、窗体及报表。
2、使用表向导来选择表的字段,这些字段可以从其他已定义好的表中选择。
3、使用设计视图创建表。
不管使用哪一种方法来创建表,随时都可以使用表设计试图来进一步自定义表。由于第一种方法已包含在使用数据库向导创建数据库的内容之中,这里着重说明后两种方法的实现。
A、利用表向导创建表
利用表向导创建新表,一般情况下能满足数据库开发者的要求,至于多余的字段可以用其他的方法将其删除。利用表向导创建表的步骤如下:
1、在数据库窗口中,单击“对象”列表中的“表”,双击“使用向导创建表”。
2、在弹出的“表向导”对话框中单击“表向导”并单击“确定”按钮。
3、在弹出的对话框中选择要使用的表并添加所需要的字段(可以重命名)后单击“下一步”按钮。
4、为表指定名称并确认主键,单击“下一步”按钮。
5、选择创建完表后的动作,然后单击“完成”按钮。
B、利用设计视图创建表
使用设计器建立表的方法有两种:一种方法是直接使用设计器来创建新表,另一种方法是使用表向导来构造一个结构相近的表,然后在设计器中打开修改。下面介绍使用设计器来创建新表的步骤:
1、在数据库窗口中,单击对象列表中的“表”,双击“使用设计器创建表”的按钮,进入“新建表”对话框。
2、在各栏中输入字段名称、选择数据类型,然后设置字段属性。
3、接着选中要设置为关键字的字段,单击“编辑”菜单中“主键”命令,设置“主关键字”,此时在所选字段左边行选定器上出现钥匙标记。
4、保存所设计的表。
五、关于主关键字与建立表间关系
A、设置主关键字
为了提高Access在查询、窗体和报表操作中的快速查找能力和组合保存在各个不同表中信息的性能,必须为建立的表指定一个主关键字。主关键字可以包含一个或多个字段,以保证每条记录都有唯一的值。设定主关键字的目的就在于保证表中的所有记录都能够被唯一识别。如果表中没有可以用作唯一识别表中记录的字段,则可以使用多个字段来组合成主关键字。其设置步骤如下:
1、在表设计器中,单击字段名称左边的字段选择按钮,选择要作为主关键字的字段。单击字段选择按钮的同时按住Ctrl键可以同时选择多个字段。
2、单击“编辑”菜单中的“主键”命令,则在该字段的左边显示钥匙标记。
B、建立表间关系
在表中定义主关键字除了可以保证每条记录可以被唯一识别外,更重要的作用在于多个表间的连接。当数据库中包含多个表时,需要通过主关键字的连接来建立表间的关系,使各表协同工作。
要在两个表间建立关系,必须在这两个表中拥有相同数据类型的字段。其设置步骤如下:
1、打开表所在的数据库窗口。
2、单击“工具”菜单中的“关系”命令,弹出“显示表”对话框。
3、选择要建立关系的表,然后单击“添加”按钮,依次添加完所需要的表后,单击“关闭”按钮。
4、在关系对话框中选择其中一表中的主关键字,拖曳到另一表中相同的主关键字,释放鼠表键后,弹出“编辑关系”对话框。
5、若在“编辑关系”对话框中选中“实施参照完整性”和“级联更新相关字段”复选框,则使在更新主表中记录的同时更新关系表中的相关记录。
6、若在“编辑关系”对话框中选中“实施参照完整性”和“级联删除相关字段”复选框,则使在删除主表中记录的同时删除关系表中的相关记录。
7、接着单击“联接类型”按钮,弹出“联接属性”对话框,在此选择联接的方式。
8、在“编辑关系”对话框中单击“创建”按钮,即在创建关系的表之间有一条线将其连接起来,表示已创建好表之间的关系。
9、关闭关系对话框,按需要选择是否保存关系的设定。
编辑或修改关联性的操作是直接用鼠标在这一条线上双击,然后在弹出的“编辑关系”对话框中进行修改。删除关联性的操作是先用鼠标在这一条线上单击,然后再按Delete键删除。
六、记录的基本操作
Access只允许每次操作一个记录,正在操作的记录在行选定器上显示一个“三角图标”用于标记当前记录。当改变当前记录的数据但又没有保存时,行选定器上显示一个“笔型图标”。
记录的基本操作包括添加记录、修改记录和删除记录。
A、添加记录
打开表的数据视图画面时,表的最末端有一条空白的记录,在记录的行选定器上显示一个星花图标,标示可以从这里开始增加新的记录。单击“插入”菜单中的“新记录”或直接选定该行即可添加记录。输入完数据后,移到另一个记录时会自动保存该记录。
B、修改记录
可用Tab键或直接用鼠标移到要修改的字段进行修改。
C、删除记录
选择一条或多条记录后按Delete键删除所有选中的记录。
七、总结
读过本文之后,相信您应该可以轻松地创建一个小型的数据库了,然而相比于Access强大而繁多的功能,这篇文章涉及的仅仅是最最简单和基本的一些操作,关于查询、窗体、报表、页以及宏与模块的内容将比表的基础操作更为复杂,有兴趣的读者可以查询其它的资料,以便顺利地设计和制作出高质量的应用系统。
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
其次,大家来看一些不错的sql语句
1、说明:复制表(只复制结构,源表名:a 新表名:b) (Access可用)
法一:select * into b from a where 1<>1
法二:select top 0 * into b from a
数据记录筛选:sql="select * from 数据表where 字段名=字段值order by 字段名"
sql="select * from 数据表where 字段名like ‘%字段值%‘order by 字段名"
sql="select top 10 * from 数据表where 字段名order by 字段名"
sql="select * from 数据表where 字段名in (‘值1‘,‘值2‘,‘值3‘)"
sql="select * from 数据表where 字段名between 值1 and 值2"
更新数据记录:sql="update 数据表set 字段名=字段值where 条件表达式"
sql="update 数据表set 字段1=值1,字段2=值2 ……字段n=值n where 条件表达式"
删除数据记录:sql="delete from 数据表where 条件表达式"
sql="delete from 数据表" (将数据表所有记录删除)
添加数据记录:sql="insert into 数据表(字段1,字段2,字段3 …) valuess (值1,值2,值3 …)" sql="insert into 目标数据表select * from 源数据表" (把源数据表的记录添加到目标数据表) 数据记录统计函数:
A VG(字段名) 得出一个表格栏平均值
COUNT(*|字段名) 对数据行数的统计或对某一栏有值的数据行数统计
MAX(字段名) 取得一个表格栏最大的值
MIN(字段名) 取得一个表格栏最小的值
SUM(字段名) 把数据栏的值相加
引用以上函数的方法:sql="select sum(字段名) as 别名from 数据表where 条件表达式" set rs=conn.excute(sql)
用rs("别名") 获取统的计值,其它函数运用同上。
数据表的建立和删除:CREATE TABLE 数据表名称(字段1 类型1(长度),字段2 类型2(长度) ……)
例:CREATE TABLE tab01(name varchar(50),datetime default now())
DROP TABLE 数据表名称(永久性删除一个数据表)
简单数据库查询语句
数据查询语言(SELECT语句) 数据操纵语言(INSERT, UPDATE, DELETE语句) 数据定义语言(如CREATE, DROP等语句) 数据控制语言(如COMMIT, ROLLBACK等语句 超详细的SQL语句语法2008-07-11 14:25简单的Transact-SQL查询只包括选择列表、FROM 子句和WHERE子句 一、简单查询 简单的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 9、说明:in 的使用方法 select * from table1 where a [not] in (‘值1’,’值2’,’值4’,
常用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 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、说明:几个高级查询运算词
数据库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查询语句大全集锦 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 别名 表名别名例如上面语句可用表的别名格式表示为: 复制内容到剪贴板
SAS中的SQL语句大全
SAS中的SQL语句完全教程之一:SQL简介与基本查询功能 本系列全部内容主要以《SQL Processing with the SAS System (Course Notes)》为主进行讲解,本书是在网上下载下来的,但忘了是在哪个网上下的,故不能提供下载链接了,需要的话可以发邮件向我索取,我定期邮给大家,最后声明一下所有资料仅用于学习,不得用于商业目的,否则后果自负。 1 SQL过程步介绍 SQL过程步可以实现下列功能: 查询SAS数据集、从SAS数据集中生成报表、以不同方式实现数据集合并、创建或删除SAS数据集、视图、索引等、更新已存在的数据集、使得SAS系统可以使用SQL语句、可以和SAS的数据步进行替换使用。注意,SQL过程步并不是用来代替SAS数据步,也不是一个客户化的报表工具,而是数据处理用到的查询工具。 SQL过程步的特征 SQL过程步并不需要对每一个查询进行重复、每条语句都是单独处理、不需要print过程步就能打印出查询结果、也不用sort过程步进行排序、不需要run、要quit来结束SQL 过程步 SQL过程步语句 SELECT:查询数据表中的数据 ALTER:增加、删除或修改数据表的列 CREATE:创建一个数据表 DELETE:删除数据表中的列 DESCRIBE:列出数据表的属性 DROP:删除数据表、视图或索引 INSERT:对数据表插入数据 RESET:没用过,不知道什么意思 SELECT:选择列进行打印 UPDATE:对已存在的数据集的列的值进行修改 2 SQL基本查询功能 SELECT语句基本语法介绍 SELECT
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是 表示一百分数,指定返回的行数等于总行数的百分之几。
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 别名表名别名
数据库经典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语句之简单查询
实验2 SQL语句之简单查询 一、实验目的 1.掌握SELECT语句的基本方法。 2.掌握从表中查询特定行的方法。 3.掌握从表中选择表中若干列和全部列的方法。 4.掌握从表中查询经过计算的值以及为列指定别名的方法。 5.掌握取消重复行和查找满足条件元组的方法。 6.掌握(NOT) BETWEEN AND,LIKE,IN,NULL,通配符的使用方法。 7.掌握ODER BY、GROUP BY的使用方法。 8.掌握聚集函数的使用方法。 二、实验要求 1.应用SELECT语句对数据库中数据进行指定条件的简单查询。 2.撰写实验报告,并附实验结果界面及相应实验语句。 三、实验步骤 1.查询StudentInfo表中所有的学生的详细信息,SQL代码如下所示: SELECT * FROM StudentInfo 2.查询StudentInfo表中所有学生的学号、姓名、系别、专业等信息,SQL代码如下所示: SELECT sno,sname,depart,major FROM StudentInfo 3.查询全体学生的学号、姓名及年龄信息,SQL代码如下所示: SELECT Sno,Sname,Year(GETDATE())-Year(Birthday) FROM StudentInfo 注:YEAR(日期)函数的作用是返回日期的年份,GETDATE()函数的作用是返回系统日期和时间。 4.查询全体学生的学号、姓名及年龄信息,并且为年龄列定义别名为“Age”。SQL 代码如下所示: SELECT Sno,Sname,Year(GETDATE())-Year(Birthday) Age FROM StudentInfo 5.查询有学生选修的教学计划的教学计划号。SQL代码如下所示: SELECT TeachTaskID FROM SC 6.查询有学生选修的教学计划的教学计划号,并去掉重复行。SQL代码如下所示:SELECT DISTINCT TeachTaskID FROM SC 注意观察以上两条语句执行结果的差别。
数据库语言大全
经典SQL语句大全 —、基础 1说明:创建数据库 CREATE DATABASE database-n ame 2、说明:删除数据库 drop database dbn ame 3、说明:备份sql server ---创建备份数据的device USE master EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwi nd_1.dat' ---开始备份 BACKUP DATABASE pubs TO testBack 4、说明:创建新表 create table tab name(col1 type1 [not nu II] [primary key],col2 type2 [not nul l] ,..) 根据已有的表创建新表: 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 tab name 6、说明:增加一个列 Alter table tab name add colu mn col type 注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varc har类型的长度。 7、说明:添加主键:Alter table tab name add primary key(col) 说明:删除主键 : Alter table tab name drop primary key(col) 8、说明:创建索弓丨:create [unique] index idxname on tabname(col ….) 删除索弓丨:drop index idxname 注:索引是不可更改的,想更改必须删除重新建。 9、说明:创建视图:create view view name as select stateme nt 删除视图:drop view view name 10、说明:几个简单的基本的sql语句 选择:select * from tablei where 范围 插入:in sert 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语句大全 数据库基本----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、d at' --- 开始备份 BACKUP DATABASE pubs TO testBack 4、说明:创建新表 create table tabname(col1 type1 [not null] [primary key],col2 typ e2 [not null],、、) 根据已有的表创建新表: A:create table tab_new like tab_old (使用旧表创建新表) B:create table tab_new as select col1,col2…from tab_old definit ion 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
通用SQL数据库查询语句范例
通用SQL数据库查询语句范例(多表查询) 弱电学院---文章分类: 电脑→数据库∧上一篇∨下一篇◎最新发布列表... 双击自动滚屏发布者:弱电之家发布时间:2008-10-6 17:53: 00 来源:互联网 总阅读:1351次本周阅读:31次今日阅读:4 次 推荐一、简单查询 简单的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行,而TO P n PERCENT时,说明n是表示一百分数,指定返回的行数等于总行数的百分之几。例如: Select TOP 2 *FROM testtable Select TOP 20 PERCENT * FROM testtabl e (二) FROM子句 FROM子句指定Select语句查询及与查询相关的表或视图。在FROM子句中最多可指定256个表或视图,它们之间用逗号分隔。 在FROM子句同时指定多个表或视图时,如果选择列表中存在同名列,这时应使用对象名限定这些列所属的表或视图。例如在usertable和citytable表中同时存在cityid列,在查询两个表中的cityid时应使用下面语句格式加以限定:
数据库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 --检索查询结果打开一个游标
数据库查询语句关键字总结
看过牛腩视频后,前17集讲后台代码的编写,尤其讲到查询语句的时候,顿时感觉原来学习过的查询语句中用到的关键字烟消云散了,啥都不记得了,通过看视频,帮着回忆了一部分,在这里总结一下,查询语句中用到的关键字的含义及使用。 一、select语句(单个表) 1.最简单的查询: select * from [where ] select column1,column2....from [where] 这里需要注意的是where子句中条件过滤使用到的关键字,比如用到逻辑运算符like 中的’%‘(匹配一个或多个字符)和’_‘(仅匹配一个)等。这个在新闻发布系统中也有用到。 例如:按标题搜索: view sourceprint? 1.Select top 10n.id,n.title,n.createtime,c.[name] 2.from news n inner join category c on c.caid=c.id 3.where n.title like '%'+ @title+ '%' 当然还有很多,例如between,not ,in等关键字的使用也很重要。 2.DISTINCT关键字 这个关键字,主要用来取出列中唯一的值,比如:记录中的一个字段值(city)如果有重复(廊坊,北京,廊坊,北京),那么利用DISTINCT关键字取出唯一值,即任何重复的值只计数一次,结果为为:(廊坊,北京)。 view sourceprint? 1.select DISTINCT city from [table] 3.使用别名 利用别名可以显示我们想要的名字,方便阅读。select city as 城市from ... 4.group by 和having子句 group by 用来对查询到的结果集进行分组,必须位于select语句中的from子句或where子句之后。 having子句类似于where子句,紧跟在group by子后,作为一个查询条件。
数据库sql查询语句练习4_习题_结果图书_习题
现有图书管理数据库的三个关系模式: 图书(总编号, 分类号, 书名, 作者, 出版单位, 单价)读者(借书证号, 单位, 姓名, 性别, 职称, 地址) 借阅(借书证号, 总编号, 借书日期) 具体数据为:
借阅: 根据以上描述,请完成: DDL 1.写出创建上述表的语句 命令:create table图书(总编号varchar(7)primary key,分类号varchar(8),书名varchar(18),作者varchar(8),出版单位varchar(18),单价float) create table读者(借书证号varchar(4)primary key,单位varchar(7),姓名varchar(8),性别varchar(2),职称varchar(8),地址varchar(18)) create table借阅(借书证号varchar(3),总编号varchar(6),借书日期date,primary key(借书证号,总编号,借书日期)) DML 2.给出插入上述数据的insert语句 命令: insert into图书values('445501','TP3/12','数据库导论','王强','科学出版社', insert into图书values('445502','TP3/12','数据库导论','王强','科学出版社', insert into图书values('445503','TP3/12','数据库导论','王强','科学出版社', insert into图书values('332211','TP5/10','计算机基础','李伟','高等教育出版社', insert into图书values('112266','TP3/12','FoxBASE','张三','电子工业出版社', insert into图书values('665544','TS7/21','高等数学','刘明','高等教育出版社', insert into图书values('114455','TR9/12','线性代数','孙业','北京大学出版社', insert into图书values('113388','TR7/90','大学英语','胡玲','清华大学出版社', insert into图书values('446601','TP4/13','数据库基础','马凌云','人民邮电出版社', insert into图书values('446602','TP4/13','数据库基础','马凌云','人民邮电出版社', insert into图书values('446603','TP4/13','数据库基础','马凌云','人民邮电出版社', insert into图书values('449901','TP4/14','FoxPro大全','周虹','科学出版社', insert into图书values('449902','TP4/14','FoxPro大全','周虹','科学出版社', insert into图书values('118801','TP4/15','计算机网络','黄力钧','高等教育出版社', insert into图书values('118802','TP4/15','计算机网络','黄力钧','高等教育出版社', insert into读者values('111','信息系','王维利','女','教授','1号楼') insert into读者values('112','财会系','李立','男','副教授','2号楼')
SQL-创建数据库及简单查询语句
--创建数据库BankDB create database BankDB on primary ( name='BankDB_data', filename='E:\Data\BankDB_data.mdf', size=5, maxsize=20, filegrowth=10% ) log on ( name='BankDB_log', filename='E:\Data\BankDB_log.ldf', size=5, maxsize=20, filegrowth=10% ) --创建T_customer表 use BankDB go create table T_customer ( customerId varchar(20) not null , customerName varchar(40), PID varchar(18), sex char(2), telephone varchar(12) ) --创建银行卡表 create table T_account ( cardId varchar(20) not null , customerId varchar(20), password char(6), savingType varchar(8), openTime datetime, balance float, isReportLos varchar(2) )
--创建客户信息表 create table T_transInfo ( transId int identity(1,1) not null , cardId varchar(20), transTime datetime, transType varchar(4), transMoney float, remark varchar(100) ) --创建主键和外键约束 --主键 alter table dbo.T_customer add constraint pk_customerId primary key (customerId) alter table dbo.T_account add constraint pk_cardId primary key (cardId) alter table dbo.T_transInfo add constraint pk_transId primary key (transId) --外键 alter table T_account add constraint fk_customerId foreign key (customerId)references dbo.T_customer(customerId) alter table T_transInfo add constraint fk_cardId foreign key (cardId)references dbo.T_account(cardId) --开户时间默认值为当前系统时间 alter table T_account add constraint df_openTime default getdate() for openTime --录入数据 insert into T_customer(customerId,customerName,PID,sex,telephone) values('001','张丽','430281************','女','139********') insert into T_customer(customerId,customerName,PID,sex,telephone) values('002','王蒙','430202************','男','139********')