一 、认识表
1、数据类型
<1>数值型
NUMBER(p,s) p表示有效位数,s把小数点后面的位数
eg:NUMBER(5,2) 123.45
float(n)主要用来存储二进制数
<2>字符型
CHAR(n)、 NCHAR(n):固定长度类型,nchar是unicode编码的
VARCHAR(n)、NVARCHAR(n):可变长度类型,nvarchar是unicode编码的
<3>日期型
DATE(精确到秒)、TIMESTAMP(时间戳类型,精确到小数秒)
<4>其他型
BLOB(4GB,存放二进制形式的数据)
CLOB(4GB,字符串形式)
2、管理表基本语法
<1>创建表
CREATE TABLE table_name
(colume_name datatype,...);
<2>修改表结构
(1)添加字段
ALTER TABLE table_name
ADD clomumn data typa
(2)更改字段数据类型
ALTER TABLE table_name
MODIFY clomumn_name data typa
(3)删除字段
ALTER TABLE table_name
DROP COLUME clomumn_name
(4)修改字段名
ALTER TABLE table_name
RENAME COLUMN clomumn_name data TO new_column_name
(5)修改表的名字
RENAME table_name TO new_table_name
<3>删除表
TRUNCATE TABLE table_name //删除表中全部数据
DROP TABLE table_name//删除表结构
3、操作表中的数据
<1>添加数据
(1)插入数据
• INSERT INTO table_name
(column1,lolumn2.....)
VALUES(value1,value2.....)//数据与字段一一匹配
(2)复制数据
--在建表时复制 CREATE TABLE table_new
AS
SELECT column1,.....|*
FROM table_old
--在添加时复制 INSERT INTO table_new
[(colum1,....)]
SELECT column1,....|*
FROM table_old
<2>修改数据
UPDATE table_name
SET column1=value1,....
[WHERE conditions]
<3>删除数据
DELETE FROM table_name
[WHERE conditions]
二 、约束
1、约束的作用
•定义规则 •确保完整性
2、约束的类型
(1)非空约束:在插入值时不能为空
--在建表时设置非空约束
CREATE TABLE table_name(
column_name datatype NOT NULL,...
);
--在修改表时添加非空约束
ALTER TABLE table_name
MODIFY column_name datatype NOT NULL;
--在修改表时去除非空约束
ALTER TABLE table_name
MODIFY column_name datatype NULL;
(2)主键约束:确保表中每一行数据的唯一性(一张表中只能设置一个主键约束,一个约束可以有多个字段构成)
--在建表时设置主键约束
CREATE TABLE table_name(
column_name datatype PRIMARY KEY,...
);
--在修改表时添加主键约束ADD CONNSTRAINT constraint_name
PRIMARY KEY(column_name1,...);
--更改约束名称
RENAME CONSTRAINT old_name
TO new_name
--删除主键约束
•DISABLE|ENABLE CONSTAINT constraint_name //禁用/启用主键约束
•DROP CONSTRAINT constrain_name
•DROP PRIMARY KEY[CASCADE]//其他应用该表的地方删掉
(3)外键约束
--在建表时设置外键约束(从表中外键字段的值必须来自主表中相应字段的值,要么来自主表要么为null)
CREATE TABLE table1(//从表
column_name datatype REFERENCES
table2(column_name),...);//主表
--在修改表时添加外键约束
ADD CONNSTRAINT constraint_name FOREIGN KEY(column_name)
REFERENCES table_name(column_name)[ON DELETE CASCADE]
•DISABLE|ENABLE CONSTAINT constraint_name //禁用/启用主键约束
•DROP CONSTRAINT constrain_name
(4)唯一约束
与主键约束的区别:
• 主键字段必须为非空,唯一约束允许一个空值
• 主键在表中只有一个,唯一约束可以多个
--在建表时设置唯一约束
• CREATE TABLE table_name(
column_name datatype UNIQUE,...
);
• CONNSTRAINT constraint_name
UNIQUE(column_name);//每个唯一约束有一个约束名字
--在修改表时添加唯一约束ADD CONNSTRAINT constraint_name
UNIQUE(column_name)
(5)检查约束:让字段的值满足一定条件,是指具有实际意义
--在建表时设置唯一约束
• CREATE TABLE table_name(
column_name datatype CHECK(expressions),...
);
• CONNSTRAINT constraint_name
CHECK(column_name);
ADD CONNSTRAINT constraint_name
CHECK(expressions), --删除与其他约束相同