SQL分类
·数据定义语言 DDL (Data Definition Language)大幅度
·用于创建、更改或删除数据库对象,如表、视图、索引及其
它对象。
·语句包括:***CREATE、ALTER、DROP***·
数据操纵语言DML(Data Manipulation Language)小幅度
■用于操纵数据库对象。
·语句包括:SELECT、INSERT、UPDATE、DELETE
·数据控制语言DCL (Data Control Language)
·用于定义控制访问对象。
·语句包括:GRANT、REVOKE
数据类型
字符型
·Char(n):固定长度的字符串 **空的自动置空**
·Varchar(n):可变长字符串 **来几个占几个**
·数值型
·整数型
·bigint:8字节、int:4字节、smallint:2字节、tinyint:1字节
·小数型
numeric(p,s):定点数,整数位和小数位共p位,小数位s位, **10,2整数八位**
0<=s<=p<=38
· decimal,用法同numeric
·**货币型**
· money、smallmoney
日期型
·datetime:精确度1/300秒,8字节 ***计算方法:当前时间-(1899-1-1-0:0)***
·Smalldatetime:范围缩小,精确度1秒,4字节
创建表
·设计表的结构:
·字段的名称
·每个字段的数据类型和宽度
·字段是否允许为空
·是否有缺省值
·是否为标识列
·是否为主键、外键
语法1:
CREATE TABLE
([NULLI NOT NULL],
[PRIMARY KEY,]
[FOREIGN KEY REFERENCES <外来关键字所
[CHECK,]);
例1.建立student关系
CREATE TABLE student(
sno char(8) NOT NULL,
sname varchar(2o) NoT NULL,
age numeric(3,0),
sex char(2),
deptno char(6));
建表过程
create table student
(
sno CHAR(8) not null Unique(代表唯一),
sname VARCHAR2(20) not null default('缺省值'),
age NUMBER(3),
sex CHAR(2),
deptno CHAR(6)
)
tables下查看
表上右键
View是查看表结构
Qurrey data查询数据
UNIQUE代表唯一列
DEFAULT('代表缺省值')
列名中最后不要有空格
CREATE TABLE stu_girl AS
t是别名
SELECT * FROM STUDENT t WHERE t.SEX='02';
DROP删除表结构和数据
DELETE只删除数据行
实践课考察代码
create table student
(
Sno CHAR(7) not null ,
Sname VARCHAR2(20) not null ,
Ssex CHAR(2) not null,
Sbirth DATE,
Clno CHAR(5) not null
);
CREATE TABLE Course(
Cno CHAR(3) NOT NULL,
Cname VARCHAR2(20) NOT NULL,
Ccredit SMALLINT,
Cpno CHAR(3)
);
CREATE TABLE Class(
Clno CHAR(5) NOT NULL,
Special VARCHAR2(20) NOT NULL,
Inyear CHAR(4) NOT NULL,
"NUMBER" INTEGER,
Monitor CHAR(7)
);
CREATE TABLE Grade(
Sno CHAR(7) NOT NULL,
Cno CHAR(1) NOT NULL,
Gmark NUMERIC(4,1)
);
ADD ***数据列名*** 数据类型 #添加新的列
DROP ***COLUMN*** 列名 #删除列
ALTER ***COLUMN*** 列名 新的数据类型 #改该列的数据类型,只能加长不能缩短
ADD CONSTRAINT 约束名 具体约束 #添加约束 UNIQUE可以为空不能相同 PRIMARY不能为空不能相同
sql
alter table STUDENT
add constraint stu_pk #添加键
primary key (SNO) #主键,应用于SNO列
/
sql
INSERT #增加
UPDATE #修改
DELETE #删除
sql
INSERT INTO STUDENT (sno, sname, ssex, sbirth, clno) VALUES ('2020101', '李勇', '01', to_date('2002-08-09', 'YYYY-MM-DD'), '20311');/*时间需要使用to_date()函数*/
INSERT INTO STUDENT (sno, sname, ssex, sbirth, clno) VALUES ('2020102', '刘诗晨', '02', to_date('2003-04-01', 'YYYY-MM-DD'), '20311');
INSERT INTO STUDENT (sno, sname, ssex, sbirth, clno) VALUES ('2020103', '王一鸣', '01', to_date('2002-12-25', 'YYYY-MM-DD'), '20312');
INSERT INTO STUDENT (sno, sname, ssex, sbirth, clno) VALUES ('2020104', '张婷婷', '02', to_date('2002-10-01', 'YYYY-MM-DD'), '20312');
INSERT INTO STUDENT (sno, sname, ssex, sbirth, clno) VALUES ('2020105', '李勇敏', '02', to_date('2003-11-11', 'YYYY-MM-DD'), '21311');
INSERT INTO STUDENT (sno, sname, ssex, sbirth, clno) VALUES ('2020106', '贾向东', '02', to_date('2003-12-12', 'YYYY-MM-DD'), '21311');
INSERT INTO STUDENT VALUES ('2020107', '陈宝玉', '01', to_date('2004-05-01', 'YYYY-MM-DD'), '21311');/*当插入的数据全部按照顺序时VALUES可以省略*/
INSERT INTO STUDENT VALUES ('2020108', '张逸凡', '01', to_date('2005-01-01', 'YYYY-MM-DD'), '21311');