当前位置: 代码迷 >> SQL >> 基准SQL的9种语句(重点之三)
  详细解决方案

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

热度:137   发布时间:2016-05-05 14:14:02.0
标准SQL的9种语句(重点之三)

 

 

 

1, SQL  SELECT 语句:            

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

                  (2)实例:

Market_Information

Market_name

BeerToy_Sales

Quantity

Data

明珠

150

10

2012201

元辰

120

11

2012305

朝阳

130

12

2012304

万达

140

13

2012516

朝阳

140

9

2012728

 

题目:选取列名为“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

               (注:某些数据库系统不允许这种在数据库表中删除列的方式(Drop 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

2012201

元辰

120

11

2012305

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

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

结果:

Market_name

BeerToy_Sales

Quantity

Data

明珠

150

10

2012201

元辰

120

11

2012305

朝阳

130

12

2012304

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

   Market_Information表:

Market_name

BeerToy_Sales

Quantity

Data

明珠

150

10

2012201

 

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

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

结果:

Market_name

BeerToy_Sales

Quantity

Data

明珠

150

10

2012201

元辰

120

 .

 

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

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

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

 Market_Information表:

       

Market_name

BeerToy_Sales

Quantity

Data

明珠

150

10

2012201

元辰

   

 

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

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

结果:

Market_name

BeerToy_Sales

Quantity

Data

明珠

150

10

2012201

元辰

120

  

 

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

Market_Information表:

Market_name

BeerToy_Sales

Quantity

Data

明珠

150

10

2012201

元辰

   

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

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

结果:

Market_name

BeerToy_Sales

Quantity

Data

明珠

150

10

2012201

元辰

120

12

 

 

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

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

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

Market_Information

Market_name

BeerToy_Sales

Quantity

Data

明珠

150

10

2012201

元辰

120

11

2012305

朝阳

130

12

2012304

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

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

结果:

Market_name

BeerToy_Sales

Quantity

Data

明珠

150

10

2012201

元辰

120

11

2012305

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

            语法: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(Date) 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
总结的不错,加油。
  相关解决方案