Orcle数据库之SQL基础

版权声明:本文为博主原创文章,版权归本人所有,允许第三方转载,但转载时请务必保留作者名,并注明出处链接,否则本人将保留追究其法律责任的权利。 https://blog.csdn.net/qq_39357403/article/details/85010749

一、管理表

1.认识表:

表其实是我们存储数据的一个基本单位

在数据库中的表都是一个二维结构;在一张表中,每一列的数据必须具有相同的数据类型;列名要具有唯一性每一行的数据也要保证其唯一性。

2.数据类型:

(1)字符型数据类型:

固定长度的数据类型:
CHAR(n)类型;-- CHAR类型的n的最大值是2000;
NCHAR(n)类型;-- NCHAR类型的n的最大值是1000;
可变长度的数据类型:
VARCHAR2(n)类型;-- VARCHAR2(n)类型的n最大值是4000;
NVARCHAR(n)类型;-- NVARCHAR(n)类型的n的最大值是2000;用于存储Unicode格式的数据,更适合存储中文数据。

(2)数值型数据类型:

NUMBER(p,s)类型:是Oracle中比较常用的的一个数值型,p在这里代表这有效数字,而s则可以理解为效数点后的位数
-- 例:NUMBER(5,2)==有效数字是五位,保留两位小数。
FLOAT(n)类型:主要是用来存储二进制数据,还能表示二进制的位数是1~126位

(3)日期型数据:

DATE类型:DATE类型的存储范围是从公元前4712年1月1日到公元9999年12月31日,DATE类型可以精确到秒的数据类型。
TIMESTAMP类型:时间戳类型,能精确到小数秒的数据类型。

(4)其他类型:
 

存放大对象的数据:
BLOB类型(以二进的形式来存放数据,最大值为4GB)
CLOB类型(以字符串的形式来存放数据,最大值为4GB)

3.管理表


(1)创建表:


创建表的基本语法:

CREATE TABLE table_name -- 在同一个用户下,表名要是唯一的
{
columu name datatype,
....
}

查看表里面的字段信息 :

desc table_name


(2)修改表:

alter table table_name add column_name datetype; -- 向表中添加字段
alter table table_name modify column_name datatype; -- 修改字段类型
alter table table_name drop cloumn column_name;-- 删除字段
alter table table_name rename column column_name to new_name;-- 修改字段名
rename table_name to new_table_name;-- 修改表名

(3)删除表:

DELETE FROM table_name [WHERE conditions];
  delete truncate drop
效果 只删除数据 只删除数据 删除表结构、约束、触发器、索引、...
语言区别 DML(事务提交后生效) DLL(立即生效) DLL(立即生效)
速度 最快

二、操作表中的数据

1.添加数据

(1)向表userinfo中添加数据:

-- 示例:
INSERT INTO table_name(column1,column2,…) VALUES(value1,value2,…);
-- sysdate是获取当前日期
insert into userinfo values(1,‘xxx’,‘123123’,‘[email protected]’,sysdate);

(2)创建表userinfo2的时候,给表中设置默认值

-- DEFAULT关键字代表默认,sysdate代表当前时间
create table userinfo2
(
id number(6,0),
dates date DEFAULT sysdate
);

向表userinfo2中添加数据

insert into userinfo2(id) values(1);

(3)向表userinfo中添加默认值

alter table userinfo modify email default ‘无’;
insert into userinfo(id) values(3);

 

-- 不想要默认值的时候,直接赋予值就行
insert into userinfo(id,email) values(4,‘[email protected]’)

(4)复制表table_old的数据到表table_new

-- 在建表时复制
create table table_new as select column1,...|* from table_old; 
-- 在添加数据是复制
insert into table_name [(column1,...)] select column1,...|* from table_old;

2.修改数据

Update table_name Set column1=value1,column2=value2,...[where conditions]

(1)无条件修改

(2)有条件修改

3.删除数据

DELETE FROM table_name [WHERE conditions];

三、查询语句

1.基本查询语句

-- FROM (可以多表查询) WHERE 子句可带多个条件 DISTINCT 显示不重复数据
select [Distinct] 列名 .. From 表名 [where condition] 

2.在sqlplus中设置格式

(1)作用:配合select语句使用,设置查询结果显示的格式,不会修改数据库表字段。

(2)给字段设置别名:

-- 设置返回纪录每行的宽度,超过宽度N则截掉,不够这个宽度则补空格
SET LINESIZE N 
-- COLUMN 可以简写成COL 
COLUMN column_name HEADING new_name; 

(3)设置字段的格式化样式:

COLUMN column_name FORMAT dataformat;
-- 如果是字符类型的值,只能设置它显示的长度;
-- 其中a后面跟数字表示字符串显示长度,例:a10 表示显示10位的长度的字符串;
-- 数字则用‘9’代表一位,例:999.9 表示整数位为三位,小数位为一位;
-- 如果设置的长度超出数据最大长度,则用‘#’显示;
-- 还可以在数字前面加‘$’,例:$999.9 则查询后显示的结果会在结果前加上'$'符。

-- a后面跟数字表示字符串显示长度,例:a10 表示显示10位的长度的字符串;

 
-- 数字则用‘9’代表一位,例:999.9 表示整数位为三位,小数位为一位; 

(4)清除设置格式 语法:

COLUMN column_name CLEAR;

3.查询所有字段和指定字段

-- 查询所有
select * from table_name;
-- 查询指定字段
select column1, ... from table_name;

4.给字段设置别名

-- as可省略
select column_name as new_name, ... from table_name;

5.运算符和表达式

(1)表达式 = 操作数 + 运算符

(2)oracle中的操作数可以是常量、变量和字段

(3)oracle中的运算符:算数运算符(+ - * /)、比较运算符(> < = >= <= <>)、逻辑运算符(and or not)

(4) () 可以改变运算符优先级

6.在select语句中使用运算符

-- 在查询语句中,使用算术运算法对字段进行运算,并不影响真正表中的数据
-- 所有工资结果加200
select id,username,salary+200 from users;
select username from users where salary>800 or salary<>1801;

7.带条件的查询

逻辑运算符的优先级:按not、and、or的顺序依次递减; 比较运算符的优先级高于逻辑运算符

8.模糊查询

通配符的使用: 一个_只能代表一个字符,一个%可以代表0到多个任意字符

-- 查询以a开头的用户名
select * from users where username like 'a%';
-- 查询第二个字符为a的用户名
select * from users where username like '_a%';

9.范围查询

(1)BETWEEN...AND/NOT BETWEEN...AND:查询结果为闭合区间

(2)IN/NOT IN:结果为一个具体的值

10.对查询结果进行排序

SELECT [DISTINCT] column_name1,...|* FROM table_name [WHERE conditions] ORDER BY column_name1 DESC|ASC,... 
-- DESC是降序排序,ASC是升序排序,默认情况下是升序排序

猜你喜欢

转载自blog.csdn.net/qq_39357403/article/details/85010749