第八讲~~数据库技术(续1)

发布于:2025-07-14 ⋅ 阅读:(26) ⋅ 点赞:(0)

3.4 数据类型

数据类型:字符型、数值型、日期型。

3.4.1 字符型

char 、varchar、varchar2

char(n):用来表示固定长度的字符串,n代表字符串的长度(个数),当实际保存的数据长度小于n时,在该字符串的右边使用空格补齐。char(10)保存‘zhang’会占用系统10个存储空间。

varchar(n):用来表示可变字符串类型,n代表能保存字符串的最大长度,当要保存的字符串长度小于n时,会按照实际长度进行保存。

varchar(10)保存‘zhang’会占用5个系统存储工空间。

varchar2 使用oracle 公司自定义的类型,而且兼容性特别好,在实际企业中,建议使用vachar2 代替varchar。

3.4.2 数值型

 number 可以用来表示整数和小数。

number(n)用来保存整数,n代表能保存整数的最大位数。

例如:number(3) 999

number(n,m)可以用来保存整数或者小数,n代表有效数字(整数位数+小数位数)最大位数,m代表小数的最大位数。n-m代表整数的最大位数。

例如:number(7,2)        12345.67

5.4.3 日期型

date : 用来保存日期时间类型,包含:年 月 日 时 分 秒

默认日期格式:DD-MON月-YY

DD:表示几号

MON:表示几月

YY:表示年份

3.5 SQL语句------结构化查询语句

结构化查询语句,通过SQL语句对数据库进行各种操作,掌握SQL就可以操作任意一款数据库。

SQL语句分类:

3.5.1 DDL 数据定义语句

        主要用来创建,删除,修改表的结构

        创建-----create

        删除-----drop

        修改----alter

3.5.2 DML 数据操纵语句

 主要用来操纵表中的数据。

插入----insert

更新(修改)----update

删除----delete

3.5.3 TCL 事务控制语句

主要用来管理数据库的事务

提交事务----commit

回滚事务----rollback

3.5.4  DQL 数据查询语句   

查询--------select

3.6 创建表

格式:

create  table 表名(

列名1 数据类型 primary key,

列名2 数据类型,

列名3 数据类型,

........

列名n 数据类型

);

create table person1(

id number(4) primary key,

name varchar2(20),

age number(3),

adr varchar(50)

);

create table person2(

id number(4) primary key,

name varchar2(30),

age number(3)

);

3.7 查看表结构

格式:desc 表名;

案列:查看 person1 表结构

desc person1;

3.8 插入(insert )语句

3.8.1 向全部列插入数据

insert into 表名 values(列值1,列值2,列值3.......);

说明:values中列值的顺序必须跟表结构是对应的。

验证:select * from 表名;

   案列:向person2表中,插入2条记录

desc person2;

insert into person2 values(1,'李明',50);

insert into person2 values(2,'tom',20);

 

3.8.2 向指定列插入数据

insert into 表名(列名1,列名2,列名3....) values(列值1,列值2,列值3......);

说明:表中列名必须和values中的列值是一一对应的关系。

案例:向person1表中插入数据

insert into person1(id,name) values(10,'张飞');

insert into person1(id,age) values(11,120);

insert into person1(id,name) values(12,'关羽');

insert into person1(id,adr) values(13,'北京');

update peeson1 set name='yyp' where id=11;

update person1 set age=100 where id=12;

案例:

insert into person3(id,name) values(101,'古洞青');

insert into person3(id,address) values(102,'北京');

insert into person3(id,name) values(103,'郑元畅');

select * from person3;

3.9 修改(更新)语句

格式:

 update 表名 set 列名1=该列新值,列名2=该列新值....... where 条件;

案例:修改person3 表中编号是1将姓名修改为 张丹丹

update person3 set  name='张丹丹' where  id=1;

update person3 set address='成都' where name='古洞青';

 

说明:如果没有where条件将修改表中全部数据。

案例:修改person3表,将地址修改为上海

update person3 set address='上海';

案例:修改person1 表中将年龄改为20

update person1 set age=20;

3.10 删除表中的数据

3.10.1  delete 删除

格式: delete from 表名 where 条件;

说明:如果没有where条件将修改表中全部数据。

案例:删除person3表中编号是101的记录

delete  from person3 where ID=101;

案列:删除person3表中姓名是张无忌的记录

delete from person3 where name='张无忌';

案例:删除person3中全部数据

delete from person3;

3.10.2  truncate 删除

格式: truncate table 表名;

说明:直接删除表中全部数据,而且被删除的数据无法恢复,工作过程中尽量不用。

案例:删除person2表中全部数据。

truncate table person2;

案例:删除person1表中全部数据

truncate table person1;

3.11 删除表

格式:drop table 表名;

案例:删除person1 、person2、person3表

drop table person1;

drop table person2;

drop table student;

3.12 查询语句

3.12.1 没带条件的查询语句

1)查询表中全部列的数据

格式:select * from 表名;

select * from emp;

emp --------员工表

select * from dept;

dept ------部门表

select * from salgrade;

salgrade------工资等级表

2)查询表中指定列的数据

格式: select 列名1,列名2,列名3....... from 表名;

案例:查询emp表中,所有员工的编号empno,姓名,ename,职位,job

select empno,ename,job  from emp;

 

3.12.2 给列起别名

1)使用as给列起别名

格式: select 列名1 as 别名1,列名2 as 别名2,列名3 as 别名3...... from 表名;

案例:查询emp表中,员工编号,姓名,职位,上级领导编号,入职时间,给每个列起别名

select empno as 员工编号,ename as 员工姓名,job as 职位,mgr as 上级领导编号,hiredate as 入职时间 from emp;

练习:查询dept表中,部门编号deptno,部门名称,部门地址,给每列起别名

select deptno as 部门编号,dname as 部门名称,loc as 部门地址 from dept;

2)使用空格给列起别名

格式: select 列名1 别名1,列名2 别名2,列名3 别名3 ......from   表名;

案例:查询emp表中,员工姓名ename,职位job,上级领导编号mgr,入职时间hiredate,工资sal,奖金comm,部门编号deptno,给每一列取别名。

select ename 员工姓名,job 职位,mgr 上级领导编号,hiredate 入职时间,sal 工资,comm 奖金,deptno 部门编号 from emp;

3.13 排序(order by)

格式:

select */列名 from 表名 order by 列名1 asc/desc,列名2 asc/desc;

说明:asc 默认 升序排列

desc  降序排列

根据一列或者几列的列值,把查询回来的数据进行升序或者降序排列

查询emp表中,员工的姓名,职位,工资,根据员工的工资进行升序排列;

select ename,job,sal from emp

order by sal asc;

练习:查询emp 表中,员工的编号,姓名,职位,根据员工的编号进行降序排列
select empno,ename,job from emp

order by empno desc;

3.14 去掉重复的列值(distinct)-----重点

格式:select distinct 列名 from 表名;

案列:查询emp表中,员工职位的名称
select distinct job from emp;

 


网站公告

今日签到

点亮在社区的每一天
去签到