读书人

基准SQL的9种语句(重点之三)

发布时间: 2012-09-18 16:21:42 作者: rapoo

标准SQL的9种语句(重点之三)

基准SQL的9种语句(重点之三)

1, SQL SELECT 语句:

1)语法:Select 列名称 From 表名称 或 Select * From 表名称

(2)实例:

Market_Information

Market_name

BeerToy_Sales

Quantity

Data

明珠

¥150

10

2012—2—01

元辰

¥120

11

2012—3—05

朝阳

¥130

12

2012—3—04

万达

¥140

13

2012—5—16

朝阳

¥140

9

2012—7—28

题目:选取列名为“Market_name”和“BeerToy_Sales”的内容。

解析:Select Market_name,BeerToy_Sales From MarketInformation

结果:

Market_name

BeerToy_Sales

明珠

¥150

元辰

¥120

朝阳

¥130

万达

¥140

朝阳

¥140

2,SQL CREATE 语句:

<1>SQL CREATETABLE语句:

(1)语法:create Table 表名称

(列名称1,数据类型,

列名称2,数据类型,

列名称3,数据类型

.........

(2)实例:

题目:创建名为“Person_Information”的表,该表包含3个列,列名分别为:“Id”,“Name”,“Address”

解析:Create Table Person_Information

( Id int,

Name varchar(255),

Address varchar (255) ,

)

结果:

Id

Name

City

<2> SQL CREAT INDEX(在表上创建一个简单的索引。允许使用重复的值) 或 SQL CREATE UNIQUE INDEX (在表上创建一个唯一的索引。唯一的索引意味着两个行不能拥有相同的索引值)

(1)语法:Create Index index _name

On table_name (colum_name)

(注:“column_name”:需要索引的列)

或: Creat Unique Index index_name

On table_name(column_name)

2)实例: Create Index 实例:

题目: 创建一个简单索引:名为“NameIndex”,在PersonInformation表的Name列 。

解析:Create Index NameIndex

On PersonInformation (Name,DESC)

注1:DESC表示以降序索引某个列中的值。如果不写则默认升序。

注2:假如需要给多个列添加索引,则在括号中列出这些列的名臣,用逗号隔开既可

例:Create Index NameIndex

On PersonInformation (Name,Address)

3,SQL DROP(删除索引、表、数据库):

<1>SQL Drop Index 语句:删除表格中的索引

(1)语法:

用于Microsoft SQLlet(以及Microsoft Access)的语法:

Drop Index index_name On table_name

用于MS SQL Server的语法:

Drop Index table_name,index_name

用于IBM DB2 和 Oracle语法:

Drop Index index_name

用于MySQL的语法:

Alter Table table_name Drop Index index_name

<2> SQL DROP TABLE(删除表(表的结构,属性以及索引也会被删掉)):

1)语法:Drop Table 表名称

<3> SQL DROP DATABASE 语句(删除数据库):

1)语法:Drop Database 数据库名称

注:Drop语句将整个表删除,即删除了表的结构、属性、索引;如果仅仅需要删除表内的数据则需要用Truncate Table语句,语法:Truncate Table 表名称)

4,SQL ALTER 语句(用于在表中添加、修改、删除列):

(1)语法:

在表中添加列:Alter Table table_name

Add column_name datatype

删除表中的列:Alter Table table_name

Drop Couumn column_name

(注:某些数据库系统不允许这种在数据库表中删除列的方式—rop Column column_name))

(2) 实例(在表中添加列):

Market_Information

Market_name

BeerToy_Sales

Quantity

明珠

¥150

10

元辰

¥120

11

朝阳

¥130

12

万达

¥140

13

朝阳

¥140

9

题目:在表“Market_Information”中添加一个名为“Date“的列。

解析:Alter Table Market_Information

Add Date date

结果:

Market_name

BeerToy_Sales

Quantity

Data

明珠

¥150

10

元辰

¥120

11

朝阳

¥130

12

万达

¥140

13

朝阳

¥140

9

实例(删除表中的列):

Market_Information表:

Market_name

BeerToy_Sales

Quantity

Date

明珠

¥150

10

元辰

¥120

11

朝阳

¥130

12

万达

¥140

13

朝阳

¥140

9

题目:删除上表中的“Date”列。

解析:Alter TAble Market_Information

Drop Column Date

结果:

Market_name

BeerToy_Sales

Quantity

明珠

¥150

10

元辰

¥120

11

朝阳

¥130

12

万达

¥140

13

朝阳

¥140

9

5,SQL INSERT 语句:

1)语法:

用于向表中插入行:

Insert Into 表名称 Values (值1,值2,.....)

用于向指定的列中插入数据:

Insert Into table_name (列1,列2,.....)Values(值1,值2,......)

(2)实例(插入行):

Market_Information表:

Market_name

BeerToy_Sales

Quantity

Data

明珠

¥150

10

2012—2—01

元辰

¥120

11

2012—3—05

题目:插入一行:“朝阳” “¥130” “12” “2012—3—04”。

解析:Insert Into Market_Information Values("朝阳","¥130","12',"2012—3—04")

结果:

Market_name

BeerToy_Sales

Quantity

Data

明珠

¥150

10

2012—2—01

元辰

¥120

11

2012—3—05

朝阳

¥130

12

2012—3—04

实例(在指定列中插入数据):

Market_Information表:

Market_name

BeerToy_Sales

Quantity

Data

明珠

¥150

10

2012—2—01

题目:向列名为“Market_name” 和 “BeerToy_Sales”两列中分别添加“元辰” “¥120”。

解析:Insert Into Market_Information (Market,BeerToy_Sales) Values ('元辰','¥120')

结果:

Market_name

BeerToy_Sales

Quantity

Data

明珠

¥150

10

2012—2—01

元辰

¥120

.

6,SQL UPDATE (用于修改表中的数据):

(1)语法:UPDATE 表名称 Set 列名称=新值 Where 列名称=某值

(2)实例(更新某一行中的某一列):

Market_Information表:

Market_name

BeerToy_Sales

Quantity

Data

明珠

¥150

10

2012—2—01

元辰

题目:为Market_name 为“元辰”的超市添加 BeerToy_Sales。

解析:Update Market_Information Set BeerToy_Sales Where Market_name=’元辰'

结果:

Market_name

BeerToy_Sales

Quantity

Data

明珠

¥150

10

2012—2—01

元辰

¥120

实例(更新某一行中的若干列):

Market_Information表:

Market_name

BeerToy_Sales

Quantity

Data

明珠

¥150

10

2012—2—01

元辰

题目:为Market_name 为“元辰”的超市添加 BeerToy_Sales,和 Quantity。

解析:Update Market_Information Set BeerToy_Sales='¥120',Quantity=’12‘

结果:

Market_name

BeerToy_Sales

Quantity

Data

明珠

¥150

10

2012—2—01

元辰

¥120

12

7,SQL DELETE语句(用于删除表中的行):

(1)语法:Delete From 表名称 Where 列名称=值

(2)实例(删除某行):

Market_Information

Market_name

BeerToy_Sales

Quantity

Data

明珠

¥150

10

2012—2—01

元辰

¥120

11

2012—3—05

朝阳

¥130

12

2012—3—04

题目:删除Market_name 为“朝阳”所在的列。

解析:Delete From Market_Information Where Market_name='朝阳'

结果:

Market_name

BeerToy_Sales

Quantity

Data

明珠

¥150

10

2012—2—01

元辰

¥120

11

2012—3—05

注:删除所有行(可以在不删除表的情况下删除所有的行。这意味着表的结构、属性、和索引都是完整的):

语法:Delete From table_name 或者 Delete * From table_name )

8,SQL GRANT语句(向用户授予操作权限)

(1)语法:Grant <权限> [,<权限>,....]

[On <对象类型> <对象名>]

To <用户 | 角色> [,<j用户 | 角色>,....] | Public

[With Grant Option]

(2)实例:

题目1:把查询 Market_Information 表的权限授给用户user1

解析:Grant Select On Table Market_Information To user1

题目2:把对Market_Information表和Project表的全部操作授权与user2和user3。

解析:Grant All Priviliges On Table Market_Information,Project To user2,user3

题目3:把对表Project的查询权限授予给所有用户。

解析:Grant Select On Table Project to Public

题目4:把查询Project表和修改工程日期的权限授予给用户user1。

解析:Grant Select,Update—ate) On Table Project To user1

题目5:把对表Project的Insert权限授予user1用户,并允许把此权限在授予其他用户。

解析:Grant Insert On Table Project To user1 With Grant Option

9,SQL REVOKE语句(收回语句权限;收回对象权限):

(1)语法:

收回语句权限:Revoke <语句权限> | <角色>[<语句权限> | <角色>].....

From <用户名> | <角色> | Public[<用户名>| <角色>].....

收回对象权限:Revoke <对象权限> | <角色>[<对象权限> | <角色>].....

From <用户名> | <角色> | Public[<用户名>| <角色>].....

(2)实例(收回语句权限):

题目:收回用户user1所拥有的Create Table的语句权限。

解析:Revoke Create Table

From user1

实例(收回对象权限):

题目1:收回用户user1对表Project的查询权限。

解析:Revoke Select

On Project

From user1

题目2:收回用户user2查询Teachert表和修改教师职称的权限。

解析:Revoke Select,Update(Prof)

On Teacher

From user2

题目3:首先从public角色中收回Select权限,然后,收回用户user,user2,user3的特定权限。

解析:Use pubs

Go

Revoke Insert,Update,Delete

On S

From user1,user2,user3

3楼hejingyuan648分钟前
学习了
2楼wangxuhebeibd1小时前
哥的沙发
1楼liutengteng130昨天 20:08
总结的不错,加油。

读书人网 >SQL Server

热点推荐