关闭

Oracle数据库语言—结构化查询语言SQL

发表于:2016-8-23 10:39

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:徐小闩    来源:51Testing软件测试网采编

  一、数据定义语言DDL
  1.创建表空间:CREAT TABLESPACE lyy DATAFILE 'C:/app/lyy.dbf' SIZE 10M;(创建一个10M的表空间,存放在C盘app文件夹中)
  删除表空间:DROP TABLESPACE lyy;
  2.创建用户和赋权:CREAT USER lyy PROFILE DEFAULT IDENTIFIED BY 123456 DEFAULT TABLESPACE lyy TEMPORARY TABLESPACE temp ACCOUNT UNLOCK; (创建用户lyy,默认密码为123456,默认表空间为lyy,临时表空间为temp,账号开启状态)
  GRANT CONNECT TO lyy;
  GRANT RESOURCE TO lyy;(赋予用户lyy connect和resource权限)
  3.创建表
  语法格式:CREAT TABLE 表名(属性名1 数据类型(长度),属性名2 数据类型......属性名n 数据类型);
  例:创建以下三个表:
  --学生表 student:学号 sid、姓名 sname、性别 ssex、年龄 sage、电话 sphone
  --课程表 course: 课程编号 cid、课程名称 cname、老师名称 tname、课时 chour
  --成绩表 score: 成绩编号 scid、学号 sid、课程编号 cid、分数 grade
  在Oracle中,表的全名是:方案名.表名;方案名就是用户名,方案名不写,表示方案名就是当前用户自己;
  ——创建学生表
  CREAT TABLE student(
  sid CHAR(10),
  sname VARCHAR2(50) NOT NULL,
  ssex CHAR(1),
  sage NUMBER,
  sphone INTEGER
  );
  ——创建课程表
  CREAT TABLE course(
  cid CHAR(10),
  cname VARCHAR2(50),
  tname VARCHAR2(50),
  chour NUMBER
  );
  ——创建成绩表
  CREAT TABLE score(
  scid CHAR(10),
  sid CHAR(10),
  cid CHAR(10),
  grade NUMBER
  );
  删除表: DROP TABLE student;
  4.约束条件
  约束是由用户添加,用来保证存储到数据库的数据的实体完整性和参照完整性;
  约束种类一般有五种:
  --主键约束:Primary key,要求被定义为主键的字段的值具有唯一性和非空性;
  constraint p1_sid primary key(sid)               --定义sid为主键。
  --外键约束:Foreign key,要求被定义为外键的字段的值必须来源于所引用字段的值, 外键字段和所引用的字段,名称可以不一样,但是两者的数据类型和长度必须一致;
  constraint f1_sid foreign key(sid) references student(sid)   --定义sid为外键,值来源于student表的sid
  --唯一约束:Unique  ,要求具有唯一性;
  unique(sid,cid)                           --定义sid和cid的组合有唯一性。
  --非空约束:not null,要求必须有值;
  sname varchar2(50) not null              --定义sname字段非空
  --检查约束:check,用户可以根据业务的需要,对字段的值进行自定义限制。
  constraint c1_ssex check(ssex in ('M','F'))  --定义检查约束,要求ssex字段的取值必须为M或者F
  5.修改表ALTER
  ALTER TABLE SCOTT.TEST RENAME TO TEST1--修改表名
  ALTER TABLE SCOTT.TEST RENAME COLUMN NAME TO NAME1 --修改表列名
  ALTER TABLE SCOTT.TEST MODIFY NAME1 NUMBER(20)  --修改字段类型
  ALTER TABLE SCOTT.TEST ADD ADDRESS VARCHAR2(40) --添加表列
  ALTER TABLE SCOTT.TEST DROP NAME CASCADECONSTRAINTS --删除表列
  二、数据操作语言DML
  DML是数据操作语言,主要可以完成三个操作:insert插入、update更新、delete删除;DML语句是一种事务操作语句,需要做commit确认、rollback回滚操作才能最终完成的。如果不做确认或者回滚操作,则会锁定当前的表,导致针对该表的DDL等操作都会失败。
  1.insert插入数据
  语法格式1: insert into 表名 values(值1,值2......,值n);
  注意事项:在SQL语句中,一般来说,除了值得部分(数据),其他部分都是不区分大小写的,数据部分,字符类型需要单引号,其他类型不需要单引号;该格式下,要保证值得数量、类型、长度、顺序都要和表的字段保持一致。
  示例:SELECT * FROM student;
  INSERT INTO student VALUES('S001','张三',‘M’,30,13089247856) ;
  语法格式2: insert into 表明(字段名1,字段名2,......,字段名n) values(值1,值2,......,值n);
  注意事项:注定值和字段的对应关系(按顺序对应),好处是可以根据自身的值和字段的对应关系,有选择性进行插入操作。
  示例:  INSERT INTO student(sname,ssex,sid,sage) VALUES('李四','F','s0002',20);
  2.update更新数据
  语法格式:update 表名 set 赋值表达式 [where 条件]
  注意事项:update本身是一个列操作的语句,即不加条件,操作的是表中的整列数据;如果加了条件,因为条件限定是行,则表示操作的是选中的行所对应的列。
  示例: SELECT * FROM student;
  UPDATE student SET sage=40;
  UPDATE student SET sage=(sage+sphone)-sage,sphone=(sage+sphone)-sphone;
  UPDATE student SET sage=sage+1;
  UPDATE student SET sage=sage+1 where ssec='F';
  UPDATE student SET sname=replace(sname,'张','陈');
  3.delete删除数据
  语法格式:delete from 表 [where 条件]
  注意事项:delete是一个行操作,最小操作单位是一条记录,切记delete没有*号;如果不加where条件,则表示删除整个表中的所有记录。
  示例:DELETE FROM student WHERE sid='s0002';
  INSERT INTO course VALUES('c0001','oracle','teacher 1',32);
  INSERT INTO score VALUES('sc0001','s0001','c0001',100);
  SELECT * FROM student;
  SELECT * FROM course;
  SELECT * FROM score;
  4.truncate:是DDL语句,但也可以实现删除整表的数据的效果
  语法格式:truncate table  表名
  示例:  truncate table score;
  三、数据查询语言DQL
  1. select 用来对数据进行查询,获取用户想要的信息。
  语法格式:
  select : 查询的内容,是必选关键字,后面跟要查询的内容,一般以字段为主、也可以是常量、表达式(包含字段)。
  --from: 查询内容的来源,是必选关键字,来源可以是表格、多个表格、其他的查询语句等;
  --where:条件,可选关键字,一般用来指定查询的条件,即用来过滤数据;
  --group by:字段,可选关键字,用来实现分组查询;
  --having:条件,可选关键字,是用来对分组之后的结果进行过滤;
  --order by:字段,可选关键字,用来实现排序操作;
  注意事项:不带条件的查询,即列查询,查询内容可以是表中的一个字段、多个字段、常量或者表达式。
  示例:
  --查询学生表的所有内容
  SELECT * FROM student;
  --查询所有学生的姓名和年龄
  SELECT sname,sage  FROM student;
  --查询常量
  SELECT sname,sage,'teacher 1'  FROM student;
  --查询内容是表达式
  SELECT sname,sage,sage+1 FROM student;
  2. ||  用来实现字符串、变量的拼接操作的
  示例:SELECT sname,sage,sage||'岁' FROM student;
  SELECT sname,ssex FROM student;
  SELECT sname,ssex,case WHEN ssex='M' THEN '男' ELSE '女' END FROM student;
21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号