![SQL Server 从入门到项目实践(超值版)](https://wfqqreader-1252317822.image.myqcloud.com/cover/709/27111709/b_27111709.jpg)
第5章 SQL语句的应用
学习指引
在SQL语句中,每一条子句都由一个关键字开始,使用SQL语句可以对数据库进行详细的管理。本章将介绍SQL语句的应用,如数据定义语句、数据操作语句、数据控制语句等。
重点导读
- 掌握数据定义语句的应用。
- 掌握数据操作语句的应用。
- 掌握数据控制语句的应用。
- 掌握其他基本语句的应用。
- 掌握流程控制语句的应用。
5.1 数据定义语句
数据定义语句(Data Definition Language, DDL)是SQL中负责数据结构定义与数据库对象定义的语句,由CREATE、ALTER、DROP和RENAME 4个语句所组成。
5.1.1 创建数据库对象——CREATE语句
![](https://epubservercos.yuewen.com/2AE60C/15477656704589106/epubprivate/OEBPS/Images/Figure-P64_8458.jpg?sign=1739154738-4uYUx2911KkoV5KESihcnglEGgAYRtCb-0-889c05de0c939476e1429742df60fa18)
CREATE语句主要用于数据库对象的创建,凡是数据库、数据表、数据库索引、用户函数、触发程序等对象,都可以使用CREATE语句来创建。
例如,创建一个数据库的语法格式如下:
![](https://epubservercos.yuewen.com/2AE60C/15477656704589106/epubprivate/OEBPS/Images/Figure-P64_37324.jpg?sign=1739154738-KpYAnIlpfIZ1e75iyLdJJVxzLFtH2ZlY-0-e4982479ca3820b02d4944470a4702af)
其中,dbname为数据库的名称。
下面使用SQL语句创建一个名为my_db的数据库,具体的SQL代码如下:
![](https://epubservercos.yuewen.com/2AE60C/15477656704589106/epubprivate/OEBPS/Images/Figure-P65_37329.jpg?sign=1739154738-M1c9ZLFjH3Mv83FOTZ3eEMeQvIZI7nY7-0-c8c649149b934296dee8c4bbbe8b49a6)
又如,使用CREATE语句还可以创建数据库中的数据表,包括表的行与列,具体语法格式如下:
![](https://epubservercos.yuewen.com/2AE60C/15477656704589106/epubprivate/OEBPS/Images/Figure-P65_8472.jpg?sign=1739154738-UPimaUcTMQ8ca2dqaX5n2WkoP9N2MVPo-0-c17a9281fea8d009bc130dd5f8981fb3)
参数介绍如下:
- column_name参数规定表中列的名称。
- data_type参数规定列的数据类型(例如varchar、integer、decimal、date等)。
- size参数规定表中列的最大长度。
例如,创建一个名为Persons的表,包含4列:ID、Name、Address和City。SQL语句如下:
![](https://epubservercos.yuewen.com/2AE60C/15477656704589106/epubprivate/OEBPS/Images/Figure-P65_37333.jpg?sign=1739154738-8jfhAfmCpgW4QfEpvGBn8og8XiiNnOjf-0-f5c8b42faa01df5d2fe415f508f5facb)
其中,ID列的数据类型是int,包含整数;Name、Address和City列的数据类型是varchar,包含字符,且这些字段的最大长度为255字符。
除数据库与数据表外,在数据库中还可以使用CREATE语句创建其他对象,具体如下。
- CREATE INDEX:创建数据表索引。
- CREATE PROCEDURE:创建预存程序。
- CREATE FUNCTION:创建用户函数。
- CREATE VIEW:创建视图。
- CREATE TRIGGER:创建触发程序。
5.1.2 修改数据库对象——ALTER语句
![](https://epubservercos.yuewen.com/2AE60C/15477656704589106/epubprivate/OEBPS/Images/Figure-P65_8608.jpg?sign=1739154738-VQVxrUBQMNzmAQah9ojNoxoC2RIczyLX-0-6cef00df65e4494344d577bd570e02e3)
ALTER语句主要用于修改数据库中的对象,相对于CREATE语句来说,该语句不需要定义完整的数据对象参数,还可以依照要修改的幅度来决定使用的参数,因此使用简单。
例如,如果需要在表中添加列,具体的语法格式如下:
![](https://epubservercos.yuewen.com/2AE60C/15477656704589106/epubprivate/OEBPS/Images/Figure-P65_37339.jpg?sign=1739154738-GRQ76y1jL75IrxhiuLWXqSH6TTSQzixu-0-9f6158e073b3b0f590c6540f2974ad74)
例如,修改Persons表,为表添加一个名为Date of Birth的列,SQL语句如下:
![](https://epubservercos.yuewen.com/2AE60C/15477656704589106/epubprivate/OEBPS/Images/Figure-P65_37340.jpg?sign=1739154738-WFEDAkkdbqVS3FYszyRRytb5SzfmmpWm-0-f46caf0abbb9824c5efb1865dced4372)
如果需要删除表中的列,具体的语法格式如下:
![](https://epubservercos.yuewen.com/2AE60C/15477656704589106/epubprivate/OEBPS/Images/Figure-P65_37341.jpg?sign=1739154738-fHlcSaMxkQdLZnKgJrGxStujhJ2z3peX-0-c7916ed93656855d45801a2d1168e29d)
例如,删除Persons表中的Date of Birth列,SQL语句如下:
![](https://epubservercos.yuewen.com/2AE60C/15477656704589106/epubprivate/OEBPS/Images/Figure-P65_37342.jpg?sign=1739154738-WH0yuJ8jyQE0IICEOW4vytp11XrIlj8j-0-bbaa2858d903c514c8356f1e433f52e3)
如果要改变表中列的数据类型,具体的语法格式如下:
![](https://epubservercos.yuewen.com/2AE60C/15477656704589106/epubprivate/OEBPS/Images/Figure-P66_37344.jpg?sign=1739154738-4cehQYIXkoPZaTvYeaxTbkJedSryzoAo-0-31f775635fb51121c13c04146683afe7)
例如,想要改变Persons表中Date of Birth列的数据类型,SQL语句如下:
![](https://epubservercos.yuewen.com/2AE60C/15477656704589106/epubprivate/OEBPS/Images/Figure-P66_37345.jpg?sign=1739154738-3FMfX4Xpj3y5wZsaXyB9lg3avvQFrgmb-0-29f6ef89c0145503cb3280d432d21440)
这样,“Date of Birth”列的类型是year,可以存放2位或4位格式的年份。
另外,用户还可以为ALTER语句添加更为复杂的参数,例如下面一段SQL语句:
![](https://epubservercos.yuewen.com/2AE60C/15477656704589106/epubprivate/OEBPS/Images/Figure-P66_37346.jpg?sign=1739154738-ZjuHLcXMwj0RBkeFH5n4TAlyxWYvqp1r-0-eb8a5e1bed08bf9dcf21527df14c049d)
这段代码的作用为:在数据表Persons中加入一个新的字段,名称为age,数据类型为int,允许NULL值。
5.1.3 删除数据库对象——DROP语句
![](https://epubservercos.yuewen.com/2AE60C/15477656704589106/epubprivate/OEBPS/Images/Figure-P66_8736.jpg?sign=1739154738-An3tk7g7nbLDEkBaGsovjhtAbhJe1TIs-0-9343e10b639dcad2f6b97eef617e0a6f)
通过使用DROP语句,可以轻松地删除数据库中的索引、表和数据库,该语句的使用比较简单。
删除索引的SQL语句如下:
![](https://epubservercos.yuewen.com/2AE60C/15477656704589106/epubprivate/OEBPS/Images/Figure-P66_37347.jpg?sign=1739154738-kE2nKLcgc57LXiLpaDsY5yV8s1pEb1Fd-0-44c7c73806c6ee2d53781e93f85441b3)
删除表的SQL语句如下:
![](https://epubservercos.yuewen.com/2AE60C/15477656704589106/epubprivate/OEBPS/Images/Figure-P66_37348.jpg?sign=1739154738-hNpVfvJF1n2LsZMIIp48iYtWIqJmw5eu-0-c7b7ef123066ed482e717ff5c454373d)
删除数据库的SQL语句如下:
![](https://epubservercos.yuewen.com/2AE60C/15477656704589106/epubprivate/OEBPS/Images/Figure-P66_37349.jpg?sign=1739154738-dxHnsL6qohjzFLo26kONIBeIdh9Yxzxa-0-6c0f0fe0b35dcd4374c34c1f6b18379f)
例如,想要删除mydb数据库中的fruit_old表,SQL语句如下:
![](https://epubservercos.yuewen.com/2AE60C/15477656704589106/epubprivate/OEBPS/Images/Figure-P66_37350.jpg?sign=1739154738-ch5N0Jm1ni60q3psg0RQAgK8MUNkbbKq-0-836f6003275a0ee3be744da7766e2dac)