数据库SQL语言

数据库语句

创建

CREATE DATABASE CourseDB

修改

ALTER DATABASE <数据库名>  <修改内容>
ALTER DATABASE CourseDB    RENAME TO CourseManageDB

删除

DROP DATABASE  CouseDB

数据库表语句

数据库表创建语句

CREATE TABLE Student
(
Student           char(13)             PRIMARY KEY,
StudentName       varchar(10)          NOT NULL,
StudentGendar     char(2)              NULL,
Major             varchar(30)          NULL
)

完整性约束

PRIMARY KEY     ——主键约束
NOT NULL        ——非空约束
UNIQUE          ——值唯一
CHECK           ——有效性检查
DEFAULT         ——缺省值

表约束定义主键

#便于定义复合主键
#可命名主键约束
#便于定义代理键
#可以定义外键

#主键
CREATE TABLE C_
(
CourseID     char(20)      NOT NULL,
TeacherID    char(20)      NOT NULL,
CourseName   char(5)       NOT NULL,
CONSTRAINT   CoursePlan_PK    PRIMARY KEY(CourseID,TeacherID)
);


#代理键
CREATE TABLE C_
(
CourseID     Serial        NOT NULL,
TeacherID    char(20)      NOT NULL,
CourseName   char(5)       NOT NULL,
CONSTRAINT   CoursePlan_PK    PRIMARY KEY(CourseID,TeacherID)
);

#代理键
CREATE TABLE C_
(
CourseID     Serial        NOT NULL,
TeacherID    char(20)      NOT NULL,
CourseName   char(5)       NOT NULL,
CONSTRAINT   CoursePlan_FK    FOREIGN KEY(CourseName)
REFERENCES Teaching(CourseName)
ON DELETE CASCADE
);

修改表结构语句

#ALTER TABLE <表名>  <修改方式>

#ADD:
ALTER TABLE <表名> ADD  <新列名称>  <数据类型> | [完整性约束]

#DROP:
ALTER TABLE <表名> DROP COLUMN <列名>
ALTER TABLE <表名> DROP CONSTRAINT <完整性约束名>

#RENAME:
ALTER TABLE <表名> RENAME TO <新表名>
ALTER TABLE <表名> RENAME  <原列名>  TO  <新列名>

#数据类型的修改:
ALTER TABLE <表名> ALTER COLUMN <列名>  TYPE  <新的数据类型>

删除表结构语句

#DROP TABLE <表名>

DROP TABLE Register;

索引

创建语句

CREATE INDEX <索引名> ON <表名> <(列名)>

CREATE INDEX Birthday_Idx ON STUDENT(Birthday);

修改

ALTER INDEX <索引名> <修改项>;

ALTER INDEX <索引名> RENAME TO <新索引名>;

ALTER INDEX Birthday_Idx RENAME TO Bday _Idx;

删除

DROP INDEX <索引名>

DROP INDEX bday_idx;

数据库操作语句

数据插入

INSERT INTO <表名 | 视图名 >   [列表名]  VALUES(列表值)

INSERT  INTO estate VALUES
('7048559328340','闵行 金虹桥','名都城(公寓)','闵行 金虹桥','成都','车位','139.62','139.62','1999-12-30','70',' '),

数据修改

UPDATE <表名|视图名>
SET <列名1>=<表达式1>
[WHERE  <条件表达式>]

数据删除

DELETE
FROM  <表名|视图名>
[WHERE <条件表达式>]


DELETE
FROM STUDENT
WHERE studentName='张亮'

数据库查询语句

单表数据查询

SELECT [ ALL | DISTINCT ] <目标列> [,<目标列>....]
FROM <表名|视图名> [,<表名|视图名>]
[WHERE  < 条件表达式>]
[GROUP BY <列名>[HAVING <条件表达式>]]
[ORDER BT <列名> [ ASC | DESC ]]

DISTINCT    ——过滤重复数据,相同数据显示一次


###单表全部列
SELECT *
FROM STUDENT

###单表读取指定列
SELECT StudentID,StudentName,Major
FROM STUDENT

###单表读取制定行
SELECT *
FROM STUDENT
WHERE StudentGender='男'

###单表读取制定行列
SELECT StudentID,StudentName,Major
FROM STUDENT
WHERE StudentGender='男'

WHERE 子句中可用下列方式确定范围:
BETWEEN    AND     ——限定列值范围
LIKE               ——与通配符限度查询条件
_                  ——通配符表示一个未确定的符号
%                  ——通配符表示一个或者多个未确定的符号
AND \ OR \ NOT \ IN \ NOT IN  进一步确定结果集范围 

SELECT *
FROM STUDENT
ORDER BY Birthday DESC
##按照Birthday降序排列;反之 ASC,升序排列

内置函数与分组统计

典型函数如下:
聚合函数,
算数函数,
字符串函数,
时间日期函数,
数据类型转换函数

聚合函数:
AVG()              ——计算结果集指定列数据的平均值 
COUNT()            ——计算结果集行数
MIN()              ——找出结果集指定列数据的最小值
MAX()              ——找出结果集指定列数据的最大值
SUM()              ——计算结果集指定列数据的综合

##计算一个学生表中,学生的人数:
SELECT COUNT(*) AS 学生人数
FROM Student;
  
##内置函数与分组统计的应用
SELECT Major AS 专业 ,COUNT(StudentID) AS 学生人数
FROM Student
GROUP BY Major;

多表查询

##子查询语句的基本格式:
SELECT  <目标列> [,<目标列>]
FROM  <表名>
WHERE  <条件中嵌套另一关系表的SELECT查询结果集>

试例:
检索“计算机学院”的教师名单

SELECT TeacherID,TeacherName,TeacherTitle
FROM Teacher 
WHERE CollegeID IN 
(SELECT CollegeID 
 FROM College
 WHERE CollegeName='计算机学院')

##使用连接关联多表查询语句
SELECT <目标列> [,<目标列>]
FROM <表名1>,<表名2>......<表名n>
WHERE <关系表之间的连接关联条件> 

SELECT B.CollegeName AS 学院名称,A.TeacherID  AS 编号, A.TeacherName AS姓名,A.TeachGender AS 性别,A. TeacherTitle AS 职称
FROM Teacher AS A,College AS B
WHERE A.CollegeID=B.CollegeID

JOIN .....ON 连接语句

SELECT <目标列>[,<目标列>
FROM <表名1> JOIN <表名2> ON <连接条件>;

试例:
SELECT
B.CollegeName AS学院名称,A.TeacherID AS 编号, A.TeacherName AS 姓名,A.TeachGender AS 性别,A. TeacherTitle AS 职称
FROM TEACHER AS A JOIN COLI EGE AS B
ON A.CollegeID=B.CollegeID
ORDER BY B.CollegeName, A.TeacherID;

外部连接
LEFT JOIN      左外连接,即使没有与右表相关联的值,也从左表返回所有的行
RIGHT JOIN     右外连接,即使没有与左表相关联的值,也从右表返回所有的行
FULL JOIN      全外连接,同时进行左连接和右连接,返回所有行

数据库控制语句

授予

GRANT <权限列表> ON <数据库对象> TO <角色或用户>
[WITH GRANT OPTION]

试例:
GRANT SELECT, INSERT, UPDATE,DELTE ON REGISTER TO ROLES
将数据插入、数据修改、数据删除、数据查询访问权限赋予学生角色

收回

REVOKE <权限列表> ON <数据库对象> FROM <角色或用户>

REVOKE DELETE ON REGISTER FROM ROLES;
收回学生觉得在课程注册表的数据删除访问权限

拒绝

DENY  <权限列表> ON <数据库对象> TO <角色用户>;

DENY DELETE ON TEACHER TO RoleT;
拒绝教师对教师表的数据删除访问权限

数据库视图语句

创建

CREATE VIEW <视图名> [(列名1),(列名2),..] AS <SELECT查询>

试例:
CREATE VIEW  BasicCourseView AS 
SELECT CourseName,CourseCredit,CoursePeriod, TestMethod
FROM COURSE
WHERE CourseType=‘ 基础课’

删除

DROP VIEW <视图名>

试例:
DROP VIEW BasicCourseView;

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值