![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=1739290733-0REBmkxDB6imO65mKooELmiAarETWUOg-0-9017e3e52cbed1d88bce8ee73b351194)
CREATE语句主要用于数据库对象的创建,凡是数据库、数据表、数据库索引、用户函数、触发程序等对象,都可以使用CREATE语句来创建。
例如,创建一个数据库的语法格式如下:
![](https://epubservercos.yuewen.com/2AE60C/15477656704589106/epubprivate/OEBPS/Images/Figure-P64_37324.jpg?sign=1739290733-k5ae3r0D7abP3kSCvOdBgTqRY4goSjE9-0-7a6163f7e363a8c5eda38c122ffc48da)
其中,dbname为数据库的名称。
下面使用SQL语句创建一个名为my_db的数据库,具体的SQL代码如下:
![](https://epubservercos.yuewen.com/2AE60C/15477656704589106/epubprivate/OEBPS/Images/Figure-P65_37329.jpg?sign=1739290733-zggmWDEh9K2HuiWbhANpBmEh0ZDRrYvm-0-c76e5cac55e5cedb00a6d36a1abfa644)
又如,使用CREATE语句还可以创建数据库中的数据表,包括表的行与列,具体语法格式如下:
![](https://epubservercos.yuewen.com/2AE60C/15477656704589106/epubprivate/OEBPS/Images/Figure-P65_8472.jpg?sign=1739290733-4xKRxriIDY551VnYO3yr8d8EY9nUrSM5-0-c6b8b9236000770fd59317f1302cd0fd)
参数介绍如下:
- 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=1739290733-icCwk4ukOWrkGZPj4hZf7VFHeaodSNxR-0-a206ed090ad24afdcfdf507537ab5fb6)
其中,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=1739290733-khULMabG7mu235JLpElIkWD2MbawLrWq-0-a2a7eb4edf598e3ee6524090cbbb2f3e)
ALTER语句主要用于修改数据库中的对象,相对于CREATE语句来说,该语句不需要定义完整的数据对象参数,还可以依照要修改的幅度来决定使用的参数,因此使用简单。
例如,如果需要在表中添加列,具体的语法格式如下:
![](https://epubservercos.yuewen.com/2AE60C/15477656704589106/epubprivate/OEBPS/Images/Figure-P65_37339.jpg?sign=1739290733-pngfqrscFqQAwIjWfP74wJDyhFsG2KkZ-0-56fa50b86bd6a09cd60819802812b79d)
例如,修改Persons表,为表添加一个名为Date of Birth的列,SQL语句如下:
![](https://epubservercos.yuewen.com/2AE60C/15477656704589106/epubprivate/OEBPS/Images/Figure-P65_37340.jpg?sign=1739290733-Hvs156xygosJGvKQvJ8Pm5obgCzbCaIA-0-df514ab53572169367e154b2a8684afc)
如果需要删除表中的列,具体的语法格式如下:
![](https://epubservercos.yuewen.com/2AE60C/15477656704589106/epubprivate/OEBPS/Images/Figure-P65_37341.jpg?sign=1739290733-X3XX7l6753H5BcVSqSXfdU28NkwVzyBt-0-c526cb8ccc8cfc745ea7b04c2024c582)
例如,删除Persons表中的Date of Birth列,SQL语句如下:
![](https://epubservercos.yuewen.com/2AE60C/15477656704589106/epubprivate/OEBPS/Images/Figure-P65_37342.jpg?sign=1739290733-UVzoCSPqfIWY7UhmZ8WRGwN1prjwTlfs-0-c78baab0fcf26ccea977e18811b727b7)
如果要改变表中列的数据类型,具体的语法格式如下:
![](https://epubservercos.yuewen.com/2AE60C/15477656704589106/epubprivate/OEBPS/Images/Figure-P66_37344.jpg?sign=1739290733-vvcD8K8BbJ66vWKkYqlpjTxmEi1ef30Q-0-c86b96d25adf8db526297fdcfd809314)
例如,想要改变Persons表中Date of Birth列的数据类型,SQL语句如下:
![](https://epubservercos.yuewen.com/2AE60C/15477656704589106/epubprivate/OEBPS/Images/Figure-P66_37345.jpg?sign=1739290733-MdhBUpeqaMT8vhFebYOs7NnVNoDA3rDC-0-4bdad71bed051a777cc93ee72e54ed5d)
这样,“Date of Birth”列的类型是year,可以存放2位或4位格式的年份。
另外,用户还可以为ALTER语句添加更为复杂的参数,例如下面一段SQL语句:
![](https://epubservercos.yuewen.com/2AE60C/15477656704589106/epubprivate/OEBPS/Images/Figure-P66_37346.jpg?sign=1739290733-o6HOv1RYz2DpyAxxTAMjwQ23VVcXHpAN-0-4ba5e00fd88649b2bad57a138dce4e88)
这段代码的作用为:在数据表Persons中加入一个新的字段,名称为age,数据类型为int,允许NULL值。
5.1.3 删除数据库对象——DROP语句
![](https://epubservercos.yuewen.com/2AE60C/15477656704589106/epubprivate/OEBPS/Images/Figure-P66_8736.jpg?sign=1739290733-unCuDFViK05MogoB2mBg6GMGrF3mVGiR-0-1204f598f10fd63f8b07c970a36bc544)
通过使用DROP语句,可以轻松地删除数据库中的索引、表和数据库,该语句的使用比较简单。
删除索引的SQL语句如下:
![](https://epubservercos.yuewen.com/2AE60C/15477656704589106/epubprivate/OEBPS/Images/Figure-P66_37347.jpg?sign=1739290733-GwNunRGr6YAVrR6bUI8A0SZwmuAV68fY-0-f3b27a22f2061658073999e599a42f2e)
删除表的SQL语句如下:
![](https://epubservercos.yuewen.com/2AE60C/15477656704589106/epubprivate/OEBPS/Images/Figure-P66_37348.jpg?sign=1739290733-9WIg6k2A7vY04bKA5HTCh0MtgV7qBHMq-0-f266cf884e29917474791c46d4b4fd1a)
删除数据库的SQL语句如下:
![](https://epubservercos.yuewen.com/2AE60C/15477656704589106/epubprivate/OEBPS/Images/Figure-P66_37349.jpg?sign=1739290733-yT1l7qcFGXYuXrx16crWHJHDCPfaAs6e-0-05eb5964af419952485cd9970cbb5c39)
例如,想要删除mydb数据库中的fruit_old表,SQL语句如下:
![](https://epubservercos.yuewen.com/2AE60C/15477656704589106/epubprivate/OEBPS/Images/Figure-P66_37350.jpg?sign=1739290733-q0ok8TA65sTSNo5BIoUcXxh04m2uJ5Hu-0-77498183f9e75c5bc85a1c22e6a8aaa3)