SQL语句分类:
1:数据定义语言(DDL)
用于创建、修改、和删除数据库内的数据结构,如:1:创建和删除数据库(CREATE DATABASE ||
DROP
DATABASE);2:创建、修改、重命名、删除表(CREATE TABLE ||
ALTER
TABLE|| RENAME TABLE||DROP
TABLE);3:创建和删除索引(CREATEINDEX || DROP
INDEX)
2:数据查询语言(DQL)
从数据库中的一个或多个表中查询数据(SELECT)
3:数据操作语言(DML)
修改数据库中的数据,包括插入(INSERT)、更新(UPDATE)和删除(DELETE)
4:数据控制语言(DCL)
用于对数据库的访问,如:1:给用户授予访问权限(GRANT);2:取消用户访问权限(REMOKE)
问:什么时候使用DROP?什么时候使用DELETE?
答:由上可看出,对于结构删除,如数据库删除、表删除、索引删除等当使用DROP;而对于数据的删除则是DELETE.
管理数据库和表
1:创建数据库-----CREATE DATABASE
数据库名
例如:CREATEDATABASE
Instant
创建表-----CREATE TABLE 表名(列名
列数据类型);
例如:CREATE TABLE
Student(
Id
INT
PRIMART KEY;
NameVARCHAR(50));
注意:如创建本地临时表(仅仅在创建临时表的连接中可见),在表名前加#;如创建全局临时表(对所有连接可见),在表名前加##;
创建索引-----CREATE INDEX 索引名 ON 表名 (列名。。。);
例如:(非唯一索引)CREATE INDEX
NameIndex ON Friend (Nmae);
(唯一索引)CREATE UNIQUE INDEX
NameIndex ON Friend (Name );
2:连接数据库---USE
数据库名
例如:USEInstant;
3:删除数据库-----DROP
DATABASE 数据库名
例如:DROPDATABASE
Instant;
删除表-----DROP TABLE 表名
例如:DROP TABLE
Student;
删除索引---DROP
INDEXFriend.PhoneNoIndex;(需指定表名和索引名)
4:复制表-----SELECT * FROM
My_Friends FROM Friends;(此复制并不能复制表的约定)
复制表结构不复制数据:SELECT * FROM My_FriendsFROM Friends WHERE
1=0;
5:修改表-----1:添加新列。。ALTERTABLE Friends
ADD Address VARCHAR(50);
2:更改定义...ALTERTABLE Friends
MODIFY Phone DEFAULT('笔者就哦');
3:删除列。。ALTERTABLE Friends
DROP CLOUMN PhoneNo;
保证数据完整性
一:分类:
1:实体完整性;
2:域完整性;
3:应用完整性;
4:用户自定义完整性;
二:实现:
1:创建非空约束------NOT
NULL
2:设置主键约束------PRIMARY
KEY
3:设置唯一约束-------UNIQUE
4:指定默认约束-------DEFAULT
5:设置检查约束-------CHECK
6:自动编号列----------IDENTITY
7:外键约束----------FOREIGN
KEY
使用DML语句更改数据
1:插入数据:(单行)INSERT
INTO 表名
列名VALUES
列值;
例如:INSERT INTOStudent
(id,name) VALUES
(1,'张三');
(多行)INSERT
INTO 表名 列名 SELECT (语句)
例如:INSERT
INTOStudent(id,name ) SELECT id+2,name FROM
Students;
2:表复制:SELECT
列名 INTO 新表名FROM
表名;
例如:SELECT *
INTOStudent2 FROM
Student;
3:更新数据:UPDATE
表名 SET 列n = 新值。。 WHERE (过滤条件);
例如:UPDATE Student SET id = 2,age =20 WHERE name =
'张三'
更新来删除数据:UPDATE Student age= NULLWHERE name =
'张三'
4:删除数据:DELETE
FROM 表名 WHERE (过滤条
例如:DELETE FROMStudent
WHERE name = '张三
注:删除全表数据除去过滤条件即可,也可使用TRUNCATE TABLE
表名
简单数据查询
1:查询:SELECT
列名 FROM 表名
;
例如:SELECT id FROM
Student;
查询全表数据:SELECT * FROM
Student;
2: 表名前缀:SELECT Student.id FROM
Student;
3:列表别名:SELECT
T.列
A AS
A,T.列B AS
B,T.列
C
AS C FROM 表 AS T;
4:计算列:SELECT id , mark*2 AS
MarksFROM Student;
SELECT
FirstName + ' ' +LastName AS
FullName FROM Student;
5:排除重复数据:SELECT
DISTINCT 列A FROM 表名;\
例如:SELECT DISTINCT name FROM
Student;
6:限定行数查询:SELECT TOP rowCountColumA,ColumB FROM
Table;
例如:
SELECT TOP5 id , name FROM
Student;
7:条件查询
WHERE
8:范围查询
BETWEEN
9:定义集合关系
IN
10:模糊查询
LIKE(单个字符_
多个字符%)
11:空值数据控制:SELECT
列A ,列B FROM
表名 WHERE 列C IS NOT NULL;
SELECT 列A,列B FROM
表名 WHERE 列C IS NULL;
12:排序:升序。。ASC
降序。。。DESC
聚合函数与分组
1:SELECT
COUNT(规范) FROM
表名;
A:数目
COUNT
B:总和SUM
C:平均值AVG
D:最大值MAX
F:最小值
MIN
2:分组
GROUP BY..
3:结果集处理:SELECT
StudentID,AVG(Mark) AS AverageMark FROM StudentExam GROUP
BYStudentID HAVING AVG(Mark) <50 OR
AVG(Mark)>70;
4:EXISTS;
5:ALL;
6:ANY;
7:UNION;
8:保留重复行:UNION
ALL;
9:交集和差分:INTERSECT
EXCEPT
联接
1:内联接:JOIN
2:外连接:1:左外联:LEFT
JOIN或
LEFT OUTERJOIN
2:右外联:RIGHTJOIN 或 RIGHT OUTERJOIN
3:全外联:FULL
JOIN 或 FULL OUTER JOIN
UPDATE emp
SET sal = newsal WHERE lower(ename);
END;
执行使用 execute
END;
执行使用 execute
update_sal(name
VARCHAR2,newsalNUMBER) IS
BEGIN
UPDATE emp
SET sal = newsal WHERE lower(ename);
END;
执行使用 execute
DURE update_sal(name
VARCHAR2,newsalNUMBER) IS
BEGIN
UPDATE emp SET sal =
newsal WHERE lower(ename);
END;
执行使用 execute