数据定义
SQL的数据定义功能: 数据库定义、表定义
视图和索引的定义
创建数据库:(例)定义一学生-课程数据库
cteate database DB;
删除数据库
drop database <数据库名称><cascade|restrict>
cascade(级联)
删除数据库的同时把所有数据库对象全部删除
restrict(限制)
如果该数据库中有数据库对象(如表、视图等),则拒绝该删除语句的执行。
基本表的定义、删除与修改
create table <表名>
(
《列名》《数据类型》【《级联完整性的约束条件》】,
《列名》《数据类型》【《级联完整性的约束条件》】,
‘。。。。。。。。。。。。。。。。
);
数据类型
数据类型 含义
char(n) 长度为n的定长字符串
varchar(n) 最大长度为n的变长字符串
int 长整数(也可以写作INTEGER)
SMALLINT 短整数
NUMERIC(p,d) 定点数,由p位数字(不包括符号、小数点)组成,小数后面有d位数字
REAL 取决于机器精度的浮点数
Double Precision 取决于机器精度的双精度浮点数
FLOAT(n) 浮点数,精度至少为n位数字
DATE 日期,包含年、月、日,格式为YYYY-MM-DD
TIME 时间,包含一日的时、分、秒,格式为HH:MM:SS
例 建立学生表
create table student
(sno char(9) primary key,
sname char(20) unique,
....
);
FOREIGN KEY[外键修饰符] (Cpno) REFERENCES【参考修饰符】 Course(Cno)
定义基本表所属数据库
打开数据库,然后建表
use 数据库名;
create table …
OP TABLE <表名>[RESTRICT| CASCADE];
[例] 删除Student表
DROP TABLE Student;
DROP TABLE Student CASCADE ;
基本表定义被删除,数据被删除
表上建立的索引、视图、触发器等一般也将被删除
RESTRICT:删除表是有限制的
CASCADE:删除该表没有限制。
在删除基本表的同时,相关的依赖对象一起删除
插入行
语句格式
INSERT INTO <表名> [(<属性列1>[,<属性列2 >…)]
VALUES (<常量1> [,<常量2>] … )
修改数据
语句格式
UPDATE <表名>
SET <列名>=<表达式>[,<列名>=<表达式>]…
[WHERE <条件>];
两种修改方式
修改某一行的值
[例] 将学生200215121的年龄改为22岁
UPDATE Student SET Sage=22
WHERE Sno=' 200215121 ';
2、修改多行的值
[例] UPDATE Student SET Sage= Sage+1;
删除数据
语句格式
DELETE FROM <表名> [WHERE <条件>];
WHERE子句
指定要删除的元组
缺省表示要删除表中的全部元组
两种删除方式
删除某一个元组的值
[例] 删除学号为200215128的学生记录。
DELETE
FROM Student
WHERE Sno= 200215128 ‘;
2. 删除多个元组的值
[例] 删除所有的学生选课记录。
DELETE FROM SC;
数据查询
语句格式
SELECT [ALL|DISTINCT] <目标列表达式>
[,<目标列表达式>] …
FROM <表名或视图名>[, <表名或视图名> ] …
[ WHERE <条件表达式> ]
[ GROUP BY <列名1> [ HAVING <条件表达式> ] ]
[ ORDER BY <列名2> [ ASC|DESC ] ];