创建表
CREATE TABLE tablename
查看表结构
DESC tablename
DEFAULT
定义默认值
CREATE TABLE tablename (ID NUMBER(4),NAME VARCHAR(10) DEFAULT '老王');
NOT NULL 非空约束 用法同DEFAULT
数据库记录世纪的
************************************
* sys * * *
* * 0-49 * 50-99 *
user * * * *
************************************
* * *
* * *
0-49 * 本世纪 * 下世纪 *
* * *
************************************
* * *
* * *
50-99 * 上世纪 * 本世纪 *
* * *
************************************
SQL语句本身不去分大小写的,但是为了增加可读性通常会将关键字与非关键字使用大小写区分开。通常关键字使用全大写,非关键字使用全小写。
但是需要注意,字符串的值是区分大小写的。
数据库中,字符串的字面量使用单引号扩起来。
CREATE TABLE employee_tzm(
ID NUMBER(4),
NAME VARCHAR2(20),
GENDER CHAR(1) DEFAULT 'M',
BIRTH DATE,
SALARY NUMBER(6,2),
JOB VARCHAR2(30),
DEPTNO NUMBER(2)
);
数据库中,字段无论什么类型,默认值都是null
,在插入数据时,只要该字段没有给定值,就会将null字段插入该字段。
可以单独使用default关键字为字段指定默认值,这样不给值时则使用指定默认值而不再是null。
CREATE TABLE employee_tzm(
id number(4),
name varchar2(20),
gender CHAR(1) DEFAULT 'M',
birth DATE,
salary NUMBER(6,2),
job VARCHAR2(30),
deptno NUMBER(2)
);
非空约束 NOT NULL
非空约束要求指定的字段在任何时候值都不允许为null
CREATE TABLE employee_tzm(
id number(4),
name varchar2(20) NOT NULL,
gender CHAR(1) DEFAULT 'M',
birth DATE,
salary NUMBER(6,2),
job VARCHAR2(30),
deptno NUMBER(2)
);
1:修改表名
RENAME old_name TO new_name
RENAME employee_tzm TO myemp_tzm
2:修改表结构
2,1向表中添加新字段
需要注意,添加的字段只会被追加到表的末尾,而不能在现有的字段中间“插入”一个字段
向myemp 表中添加一个字段
ALTER TABLE myemp_tzm ADD(
hiredate DATE DEFAULT SYSDATE
);
删除表
DROP TABLE EMP;
删除表中现有字段,最好是表中没有数据的时候进行,若表中存在数据,会将每一条记录对应的该字段的值都要删除,数据量大的时候会比较慢。
删除myemp表中的字段hiredate
ALTER TABLE DROP (hiredate);
修改表中字段:
可以修改字段的类型,长度添加默认值
设置是否为空。
同样不建议在表中已经存在的数据后再修改,
游客能修改不成功;
长度尽量不要减少,否则不满足现有数据要求的话是修改不成功。
尽量不修改类型。
ALTER TABLE myemp_tzm MODIFY(job VARCHAR(40) DEFAULT 'CLERK');
DML语句
用于增删改表中数据,伴随事物。
插入数据:
insert into table_name
(col_name,col_name2,....)
VALUES(value,value,....)
事物的开启与关闭
事物的开启:
当执行第一条DML语句时,会自动开启一个事物,然后执行该语句,在此之后所有被执行的DML语句都在这一个事物控制范围内。
事物的关闭
无论是提交或是回退,事物都会关闭。
提交:将这次事物中的所有DML操作全部真实执行,对表进行操作。提交后无法再进行回滚。
回滚:回滚到事物开启前的状态,这次事物中所有的DML操作均被撤销。
插入日期类型的值
可以直接使用字符串,但是格式有要求,必须是
'DD-MON-RR',由于语言有差异,月的写法不同,所以不建议使用。可以使用TO-DATE函数,自行将字符串按照指定的日期格式转换为DATE值。
INSERT INTO myemp_tzm (id,name,salary,birth) VALUES (3,'CLARK',4000,TO_DATE('1990-5-21','YY-MM-DD'));
INSERT 语句可以不指定字段,若不指定则是全列插入,那么VALUES后面必须将所有值按照表中字段顺序全部指定,否则会报错。
INSERT INTO meemp_tzm VALUES (3,'CLARK',4000,TO_DATE(1990-5-21));
UPDATE 语句,用于修改表中数据
UPDATE table_name SET col_name1 = new_value1,col_name2 = new_value2,......[WHERE con = con_value];
UPDATE 语句修改表中数据时,通常要使用WHERE 子句添加条件来限制要修改的记录,这样才能将只满足WHERE条件的记录进行修改,若不添加则是全表每一条记录都修改
通常很少这样做!
UPDATE myemp SET gender = 'F' ,salary = 6000 WHERE name = 'jack'
删除表中数据
DELETE FROM table_name WHERE NAME = ‘TOM’