SQL语言学习-数据定义语言

时间:2022-08-26 20:17:07

Sql语言至今已经有6个版本。SQL查询语言包括了所有对数据的操作命令,这些操作可分为四类:数据定义语言(DDL)、数据操纵语言(DML)、数据控制语言(DCL)和嵌入式SQL语言。

数据定义语言(Data Defination Language)用于定义数据库对象。基本的DDL命令包括:Create、alter、drop。

数据操纵语言(Data Manipulation Language)用于数据的检索和数据的更新,数据更新包括:Insert、Delete、Update。数据检索由Select完成。

数据控制语言(Data Control Language)包括权限的授权(Grant)、撤销(Revoke)、完整性规则的描述以及事务开始和结束等控制语句。

嵌入式SQL语言规定了SQL语言在宿主程序中的使用规则。

1.建立数据表

Create负责数据库对象的建立。数据库、数据表、数据库索引、存储过程、触发器等都可以通过Create创建。

Create建表:

 CREATE TABLE [dbo].[Customer](
[CusID] [numeric](18, 0) NOT NULL,
[RegID] [int] NOT NULL,
[CusName] [varchar](50) NOT NULL,
[CusPhone] [varchar](20) NOT NULL,
[CusAddress] [varchar](100) NOT NULL,
[CusRedate] [date] NULL,
[CusCredit] [int] NOT NULL,
[CusPrepay] [numeric](10, 0) NULL,
CONSTRAINT [PK_CUSTOMER] PRIMARY KEY CLUSTERED
(
[CusID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY],
CONSTRAINT [UNI_CUST] UNIQUE NONCLUSTERED
(
[CusName] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

Create建表

create table table_name( column datatype [column level constraint])

比如 create table test(id integer constraint PK_TEST primary key,

name varchar(50) not null unique,stuid integer not null,constraint FK_Student foreign key references Student(stuid))

通过该代码 能够创建test的表  并能定义id、name、stuid 三列。其中id为主键、stuid为外键。 外键的表必须是已经存在的表。

2.更改数据表

在数据表的使用过程中,可能需要对表的结构或者约束进行修改。alter就是负责数据库对象修改的指令。对于数据库可以使用 alter table tablename modification.modification 是指定修改内容的子句。

比如:表中增加一列:alter table test add age integer

删除一列:alter table test drop column age

更改列明: oracle中:alter table test rename age to ages. sql中:EXEC  sp_rename 'customer.[age]','ages','column'

更改数据类型:SQl中:alter table test alter column ages varchar(20),oracle中:alter table test modify ages integer

添加约束:alter table test add constraint uni_ages unique(ages)

禁用约束:Alter Table Account NOCHECK constraint Fk_Student

3.删除数据表

删除数据库对象的操作使用drop指令完成。drop table table_name.