---------------------SQL DDL--------------------------
1.创建表
CREATE TABLE
table (列级名称 类型 [约束]
[,列级名称2 类型 [约束]
,……]
[,表约束]
);注释:[]内的可以忽略不写,下述同上。
El:创建表student、corse
CREATE TABLE Student(
Sno nchar(10) NOT NULL PRIMARY KEY,(标记主键)
Ssex nchar(10) NULL,
Sage numeric(18,0) NULL,
Sdept nchar(10) NULL,
Sname nchar(10) NULL
);
--创建表Student
CREATE TABLE Corse(
Cno nchar(10) NOT NULL,
Cname nchar(10) NULL,
Cpon nchar(10) NULL,
);
--创建表Corse
-----------------------------------------------------------
注释:后续的主键外键部署图
2.删除表
DROP TABLE 表名
删除表corse
DROP TABLE CORSE
3.修改表(更新表)
a,添加列
ALTER TABLE 表名
ADD 新列名 类型
[约束];
更新表student,在其后加入一列sname
ALTER TABLE Student
ADD Sname nchar(10) NULL AFTER'Sno';/*sno之后插入新一列:sname*/
b,改变列的数据类型
ALTER TABLE 表名
ALTER COLUMN 列名 新数据类型;
ALTER TABLE Student
ADD COLUMN Sage SMALLINT;
--将年龄改为半长字节类型数据
c,删除完整性约束
ALTER TABLE 表名
DROP 列;
ALTER TABLE STUDENT
DROP UNIQUE(SNAME)
---删除学生姓名必须唯一的约束
--------------------SQL DML-------------------
1.插入数据
a,单条数据
INSERT INTO 表名//INTO子句
[(列[,列1……])]
VALUES//VALUES子句
(值[,值1……]);//多条数据时要求列值一一对应,且列中原有的值类型也需要和新的值是同类型
--注释:图中第一条是在表中插入所有的相关列 更新和插入的区别是:先插入(insert)再更新(update)
第二条是插入指定的相关列
2.修改数据
a,更新数据
UPDATE 表名
SET 列名=值[,列名1=值1,……]
[WHERE 条件(如年龄大于15的)];//待删查子语句WHERE
b,删除数据
DELETE FROM 表名 [WHERE 条件];//删除某一元的值、多元的值、带子查询的删除语句
--------------------SQL DQL-------------------第五讲
1.单表查询
SELECT
[ALL|DISTINCT]//属性选择:ALL所有选择(默认)DISTINCT丢弃重复项选择
<列|表达式>[<列1|表达式1>……]//此处也可以改列名如
FROM
<表|视图>[<表1|视图1>……]
[WHERE <条件>]
[GROUP BY<列名1>[HAVING<条件下的子条件>]]//分组,子条件
[[ORDER BY<列名2>[ASC|DESA]]//排序,ASC升序DESA降序
//*表示:所有内容
-------------------延伸:条件筛选
//升序时null在最前,倒序相反
2.权限分配(略)
分配权限grant,收回权限revoke
来自 <sql权限分配语句 - 搜索>