sqlBASIC

数据定义语言(DDL)
数据操纵语言(DML)
事务控制语言(TCL):用来维护数据一致性的语句
数据查询语言(DQL)
数据控制语言(DCL)

数据库的DML操作一定会影响数据库中表的数据

通常情况:数据库对象包括:表、视图、序列、索引
NUMBER 类型是ORACLE提供的表示数字
CHAR(20)长度指的是字段所表示的字节量而不是字符数量
CHAR是固定长度的,容易造成空间浪费
VARCHAR2是ORACLE独有的数据类型,其他数据库用VARCHAR

创建表
CREATE TABLE TABLE_NAME();

删除表
DROP TABLE TABLE_NAME;

查看表结构
DESC TABLE_NAME;
看到表的列的名字以及对应的长度,类型等

在SQL中用单引号表示字符串,字符串内区分大小写
数据库中的字段无论是什么类型的,默认值都是NULL,若使用DEFAULT指定了默认值,则使用指定的

DEFAULT 关键字 默认值指定
通过DEFAULT子句给列指定默认值
CREATE TABLE emp(
gender CHAR(1) DEFAULT ‘M’
);

修改表名
RENAME old_name TO new_name;

增加列:只能在原表的最后增加,不能插入到现有的列中
ALTER TABLE emp ADD (
hiredate DATE DEFAULT sysdate
);
sysdate:当前系统时间,是一个日期的值

删除列:
ALTER TABLE emp DROP (hiredate);

修改列:
建表之后,可以改变表中列的数据类型,长度和默认值
为表添加新的字段(列)总是在表的最后一列追加
ALTER TABLE emp MODIFY(job VARCHAR2(40)NOT NULL);

修改表字段时的注意事项:
1:尽量不修改字段类型。
2:字段长度尽量不要减少(一般是变大)。
3:修改后的字段,只对新插入的数据产生影响,
修改字段前的所有数据不影响。

DML操作
执行DML操作后,需要执行commit语句,才算真正确认了此操作。

插入数据
INSERT INTO TABLE_NAME()VALUES();
向表中插入数据
INSERT INTO table_name(id,name,salary)VALUES(1,’范传奇’,1500);

INSERT语句是向表中插入数据
INSERT语句指定的列对应的值会被插入到表中
没有列举的列会被插入NULL,
但是,若该列有设置默认值(DEFAULT关键字设置的),那么就插入设置的默认值。

NOT NULL约束
在创建表的时候可以为列添加非空约束,被约束的列在插入数据时必须给值,此列不允许为空
若某列为NOT NULL,执行INSERT语句时又没有指定该列,
那么插入会抛出违反为空约束的异常

执行INSERT语句时,若没有指定插入任何列,那么就是全列插入,
注意,给的值顺序必须与表中列的顺序完全一致,并且不能忽略任何一个列的值

更新表中的记录
UPDATE table_name
SET column=value;

更改职员ROSE的薪水为8500
UPDATE emp SET salary=8500
WHERE name=’ROSE’;

删除表中记录(如果没有WHERE子句,则全表的数据都会被删除)
DELETE FROM table_name
WHERE condition;

查询表数据
SELECT*FROM emp_yanghaitao

事务控制

COMMIT
用于提交

ROLLBACK
用于回滚事务。那么本次事务中所有的增删改操作全部失效。

TO_DATE()函数
TO_DATE(‘2009-09-01’,’YYYY-MM-DD’)

INSERT INTO emp_fanchuanqi(id,name,birth)
VALUES(‘jack’,TO_DATE(‘1990-09-10’,’YYYY-MM-DD’))

修改表中的数据
UPDATE emp_yanghaitao
SET salary=8500
WHERE name=’TOM’;
注意:通常情况下,更改表时,要添加WHERE来指定过滤条件,
若不指定WHERE则是全表修改,通常不会这样做

字符串函数:
CONCAT(char1,char2) 返回两个字符串连接后的结果 等价于 “||”

LENGTH(char) 返回字符串长度 若类型是VARCHAR2:返回字符串实际长度
若类型是CHAR:返回定义长度

大小写转换
UPPER(char)
LOWER(char)
INITCAP(char) :用于将字符串中的每个单词的首字母大写,其他字符小写
单词之间用空格分隔
以上3个函数若输入的是NULL,仍然返回NULL
SELECT
UPPER(‘hello world’),//将内容变成全大写
LOWER(‘HELLO WORLD’),//将内容变成全小写
INITCAP(‘hello world’)//将内容变成首字母大写
FROM DUAL

SUBSTR(char,m[,n])
用于获取字符串的子串,返回char中m位开始取n个字符
m=0从首字符开始,m取负数,则从尾部开始
字符串的首位计数从1开始

INSTR(char1,char2[,n[,m]])
返回子串char2在源字符串char1中的位置
参数:从n位置开始搜索,m用于指定找子串的第m次位置,如果不指定取值1
如果在char1中没有找到子串char2,返回0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值