简介
- 数据库:DB,数据库管理系统:DBMS
- 关系型数据库:描述两个元素间的关联或对应关系,使用关系模型把数据组织到二维数据表中
- 一对一,一对多,多对多(双向一对多)
- 数据库中列叫字段,行叫记录
- SQL(结构化查询语言)分为:
*DDL:数据定义语言 建立,修改,删除数据库对象
*DML:数据操纵语言 改变数据表中的数据
*TCL:事务控制语言 用来维护数据一致性的语句
*DQL:数据查询语言 用来查询所需要的数据
*DCL:数据控制语言 用于执行权限的授予和收回操作 - SQL语句不区分大小写,但是为了阅读方便,建议关键字与非关键字大小写分开,通常关键字全大写,非关键字全小写
Oracle数据类型
- NUMBER:数字类型 NUMBER(P,S);P表示数字总位数,S表示小数点后位数
- CHAR:固定长度字符类型,最多2000字节,CHAR(N);定长字符串,一定要写够N位字节(查询高效,空间资源浪费)
- VARCHAR2:(仅Oracle支持):变长字符类型,最多4000字节,VARCHAR2(N);变长字符串,N表示最多可占用的字节数(空间资源节省,查询低效)
- VARCHAR:各大数据库都支持,与VARCHAR2几乎无区别
- 字符串的字面量注意与JAVA区分,在数据库中,所有字符串字面量使用单引号,字符串的字面量区分大小写
- DATE:定义日期时间的数据,只精确到秒
- 在数据库中,所有数据类型的默认值都是NULL,即:当我们向某张表插入数据时,若某些字段没有给定值时,无论该字段是什么类型,默认值都是NULL,但是可以通过创建表时使用DEFAULT为指定字段单独设置默认值,这样在插入数据时出现上述情况时,则使用指定的默认值作为该字段的值
DDL语言
建立,修改,删除数据库对象
1. 创建表:CREATE语句 CREATE TABLE 表名(字段名 数据类型,……….);
2. DESC语句:DESC 表名 查看表的结构
3. NOT NULL语句 在创建表时,可以为字段设置NOT NULL约束,当某个字段被NOT NULL修饰后,该字段必须给值
4. DEFAULT语句 为指定字段单独设置默认值
5. DROP TABLE 表名:删除表
6. 修改表名: RENAME 旧表名 TO 新表名
7. 对列的操作:
*增加列: ALTER TABLE 表名 ADD(字段名 数据类型,…);只能在末尾追加
*删除列: ALTER TABLE 表名 DROP(字段名…);可删除任意位置的列
*修改列: ALTER TABLE 表名 MODIFY(字段名 数据类型,…);修改列只能修改列的类型,长度,添加默认值或 NOT NULL约束等,当表中存在数据时再修改字段应当注意:尽量不修改字段类型(可能与表中现有数据类型冲突),修改字段长度应当尽量增加而不是缩短
DML语言
增删改表中数据,伴随事务控制使用
1. 插入数据: INSERT INTO 表名 (要插入数据的字段名,以逗号隔开)VALUES (要插入的值,顺序要与前边的字段名一致);插入数据时,可以不定义字段,若忽略则是全列插入,给定值必须与表中字段类型,顺序完全一致
2. 删除数据: DELETE FORM 表名 WHERE 字段+值(符合过滤条件的才会删除,无WHERE子句则是全部删除)
3. 查看表中数据: SELECT * FROM 表名
4. 更新表中数据: UPDATE 表名 SET 字段+值,字段+值,… WHERE 字段+值(定位需要更改的记录),更新表中数据应当添加WHERE子句,添加过滤条件,这样只会讲满足条件的记录修改,不添加WHERE则是全表所有数据都修改
5. 关于日期 默认格式:日-月-年 后边还有时分秒,默认不显示,TO_DATE语句可以修改日期格式,如:YY-MM-DD,YYYY/MM/DD