建表
语法:
create table 表名(
列名1 数据类型 (约束),
列名2 数据类型,
列名3 数据类型(约束),
....
列名n 数据类型
);
删除表:drop table 表名;
数据类型
-
1.数字
number(n) 数字类型,最大长度为n
number(n,m) 数字类型,数字最大长度为n,小数部门为m
integer 相当于 number(38)
-
2.字符串
char(n) 字符串,长度为n
char(10):‘asdf’ 不足10位用空白字符填充
特点:
-
- 优点:数据管理效率高
- 缺点:空白字符浪费大量空间
varchar2(n) 字符串,最大长度为n
varchar2(10):‘asdf’ 放入后该数据长度就是4位
特点:
-
- 优点:节省数据存储空间
实例:
名字 varchar2(100)
手机号 char(11)
邮箱 varchar2(200)
-
3.日期
date 日期
约束
-
1.主键约束 primary key
含义:该列的值,唯一+非空
-
2.唯一约束 unique
含义:该列的值不能重复
应用:手机号,身份证号
-
3.非空约束 not null
含义:该列的值,必须有值,不能为空
-
4.检查约束 check
手机号:mobile char(11) check(length(mobile)=11)
邮箱 :email varchar2(100) check(email like ‘%@%’)
性别 :sex number(1) check(sex in (0,1)) 注释,1 男 0 女
1 --创建一个员工表:工号(id) 名字 性别 手机号 邮箱 年龄 家庭住址 出生日期 2 create table t_emp( 3 id number(10) primary key, 4 name varchar2(50), 5 age number(3), 6 sex number(1) check(sex in (0,1)), 7 mobile char(11) check(length(mobile)=11), 8 email varchar2(100) check(email like '%@%'), 9 address varchar2(200), 10 birth date 11 );
-
5.外键约束 forienkey
关键词:refrences
外键列:
作用:表明当前表的数据和另一张表的数据的关系
特点:
1.通过外键关联表的数据
2.该列的值,必须来源于另一张表的中字段的已存在的值
语法:
使用外键,关联关系 --学生表(id,名字,成绩) create table t_stu( id number(10) primary key, stu_name varchar2(50), socre number(4), class_id number(10) references t_class(id) 关联班级表中id的值 ); --班级表(id,名称) create table t_class( id number(10) primary key, class_name varchar2(100) );
增删改SQL
-
SQL分类:
DQL: Data Query Language 数据查询语言
功能:查询数据 select
DML:Data Manipulation Language 数据操纵语言
添加 insert 修改 update 删除 delete
-
添加数据
关键词:insert
语法规则:
insert into 表名(字段1,字段2,字段3) values (值1,值2,值3); 注意:表名后的字段顺序,必须和values后的值的顺序保持一致 --向t_emp表中添加一条数据 insert into t_emp(id,name,age,sex,mobile,email,address,birth) values (100,'华哥',18,1,'12345678910','123456789@qq.com','成都',to_date('2020-3-12','yyyy-mm-dd'));
注意:
1. 表名后的字段顺序,必须和values后的值的顺序保持一致
2.表名后的列名可以省略,默认oracle会按照表的字段的顺序,全部罗列出来
insert into t_emp values (101,'华哥2',18,1,'12345678920','123456789@qq.com','成都',to_date('2020-3-12','yyyy-mm-dd'));
-
修改数据
关键词:update
语法规则:update 表名 set 列名=新值 , 列名=值,列名=值 (where 条件)
--修改100号学生的年龄20,手机号‘45678912310’ update t_emp set age = 20,mobile = '45678912310' where id = 100;
-
删除数据
关键词:delete
细节:逐行删除数据
语法规则: delete from 表 (where 条件)
--删除101号学生 delete from t_emp where id = 101;
-
删除全表:
- 1.如果delete没有where,会导致全表数据删除
逐行删除全表数据:delete from 表名
特点:效率低
-
- 2.表截断
本质:直接将存储表数据部分的空间,直接清除,进而删除数据(非DML)
truncate table 表名
特点:效率远远高于delete