SQL语言:不仅可以用于查询数据库中的数据外,还可以用来控制整个数据库系统。
1.数据定义语言(DDL):它是对数据库中的对象进行创建、修改和删除的SQL语句的集合。
创建、删除数据库;
创建、更改、删除表;
创建、更改、删除视图;
创建、更改、删除索引;
创建、删除模式。
2.数据操作语言(DML):它是对数据库中的数据进行增加、修改和删除的SQL语句集合。
INSERT语句:插入数据,
UPDATE语句:修改数据,
DELETE语句:删除数据。
3.数据查询语言(DQL):它包括的是查询数据库中数据的语句。
Select子句
Where子句
SQL运算符
Order By子句
Group By子句
Having子句
子查询
高级复杂查询
4.数据控制语言(DCL):它包括的是对数据库进行控制的一些语句。
GRANT授权语句
REVOKE收回权限语句
.....
############################################
1.数据定义:
A,创建库,修改库,删除库
创建数据库:CREATE DATABASE [mydatabase] /*最简单的创建只用此行命令,其他参数由系统默认创建。*/
完整命令如下:
/*在master.dbo.sysdatabases系统数据表中查询是否已经存在名为mydatabase 的数据库,如果存在就先删除*/
IF EXISTS (SELECT name FROM master.dbo.sysdatabases WHERE name = N'mydatabase')
DROP DATABASE [mydatabase]
GO
CREATE DATABASE [mydatabase] /*创建数据库mydatabase*/
ON /*创建数据库的数据文件*/
(
NAME = N'mydatabase_Data',
FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL\data\mydatabase_Data.MDF' ,
SIZE = 1,
FILEGROWTH = 10%
)
LOG ON /*创建数据库的日志文件*/
(
NAME = N'mydatabase_Log',
FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL\data\mydatabase_Log.LDF' ,
SIZE = 1,
FILEGROWTH = 10%
)
COLLATE Chinese_PRC_CI_AS /*数据库的默认排序规则*/
GO
修改数据库:
ALTER DATABASE [mydatabase]
ADD FILE
(
NAME = N'mydatabase_Data2',
FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL\data\mydatabase_Data2_Data.NDF' ,
SIZE = 100,
FILEGROWTH = 10%
)
删除数据库:DROP DATABASE [mydatabase]
B,创建表,修改表,删除表
创建表:
use [mydatabase] /*使用数据库mydatabase*/
GO
/*如果名称为s_info的数据表已经存在则删除*/
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[s_info]') and OBJECTPROPERTY(id,N'IsUserTable') = 1)
drop table [dbo].[s_info]
GO
CREATE TABLE [dbo].[s_info] /*创建数据表student_info*/
(
[studentno] [int] IDENTITY (1, 1) NOT NULL ,
[studentid] [int] NOT NULL PRIMARY KEY,
[name] [varchar] (40) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[sex] [char] (2) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[type] [varchar] (20) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[birthday] [datetime] NULL ,
[classno] [smallint] NOT NULL ,
[major] [varchar] (40) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[departmentno] [smallint] NOT NULL ,
[photo] [image] NULL
)
ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
EXEC sp_help [s_info] /*调用系统存储过程sp_help 来查看创建的数据表的结果信息*/
GO
修改表:
USE [MYDATABASE]
GO
ALTER TABLE [s_info] ADD MEMO VARCHAR(200) NULL
/*添加MEMO字段,若原表中已存在数据,则新添字段必须设置为NULL
语法形式:ALTER TABLE <表名> ADD (<列名><数据类型>[NULL|NOT NULL],…);*/
ALTER TABLE [s_info] DROP COLUMN TYPE /*删除TYPE字段*/
ALTER TABLE [s_info] ALTER COLUMN NAME VARCHAR(50) NOT NULL /*修改NAME字段*/
ALTER TABLE [s_info] ALTER COLUMN CLASSNO CHAR(8) NOT NULL /*修改CLASSNO字段*/
ALTER TABLE [s_info] MODIFY (BPLACE CHAR(30));
/*增大某个列条件:列为空。改变类型和缩短长度。
语法形式:ALTER TABLE <表名> MODIFY(<列名>[<数据类型>][NULL|NOT NULL],…);
如果列中已存在数据,则不能改变数据类型,且不能缩短列的宽度,但可以增大列宽; */
EXEC sp_help [s_info]
GO
删除表:
USE [mydatabase]
GO
DROP TABLE [s_info]
/*注:删除表后,索引、视图随之消失;有的DBMS要求在DROP TABLE之前、先用DELETE清空表中所有数据行。*/
C,创建视图,修改视图,删除视图
D,创建索引,修改索引,删除索引
2.数据操纵:
插入数据,修改数据,删除数据
插入数据:
INSERT [INTO] {表名 WHIT(<表限制>[....n]) | 视图名}
{[(列的列表)]
{VALUES({DEFAULT|NULL|列值表达式}[,...n])}
}|DEFAULT VALUES
INSERT INTO EMPLOYEES VALUES('Jones','Davy','1970-10-10','Boston',8,45000);
INSERT INTO EMPLOYEES VALUES('Jones','Indiana','1992-02-01','Chicago',NULL,NULL);
INSERT INTO 学生表(学号,姓名,性别,院系名称,班级代号,出生日期,入学年月)
VALUES ('20040003','王海洋','男','计算机','200401','1979-05-20','200409')
修改数据:
UPDATE {表名 WITH(<表限制>[...n]) | 视图名}
SET {列名 = {列值表达式 | DEFAULT | NULL}} [WHERE <查询条件表达式>]
UPDATE 学生表 SET 姓名='欧阳疯',院系名称='电子' WHERE 学号='20040003'
删除数据:
DELETE FROM 学生表 WHERE 学号='20040003'
3.数据控制:
阅读(1322) | 评论(0) | 转发(0) |