数据库简介
数据库简介
表是二维的,
行是保存数据的,列则是记录数据中包含的内容
行也叫记录(Record)
列称为字段(Field)
表与表之间存在相连的关系
SQL可分为:
- 数据定义语言(DDL):用于创建、修改、删除数据库对象(表,视图,索引,序列等)
- 数据操作语言(DML):用于改变表中的数据,包括增删改
- 事务控制语言(TCL):用来维护数据一致性的语句,包括提交,回滚,保存点等
- 数据查询语言(DQL):用来査询所需要的数据,SELECT语句是重难点
- 数据控制语言(DCL):用于执行权限的授予和收回操作
DDL
数据类型
NUMBER
表示数字类型,经常被定义成NUMBER(P,S)形式其中:
- P表示数字的总位数,是包含了S的;
- S表示小数点后面的位数,S可以没有;
CHAR
表示固定长度的字符类型:经常被定义成CHAR(N)形式:
- N表示占用的字节数,最大长度是2000字节。
VARCHAR2
表示变长的字符类型(这是oracle独有的),定义格式是VARCHAR2(N):
- N表示最多可占用的字节数,最大长度是4000字节,占用空间是变化的。
DATE
用于定义日期时间的数据
- 长度是7个字节,默认格式是:DD-M0N-RR,例如:11-APR-71
RR的表示时间图如下
系统时间→ | 0-49 | 50-99 |
---|---|---|
0-49 | 本世纪 | 下世纪 |
50-99 | 上世纪 | 本世纪 |
以上是ORACLE的数据类型,MySQL的数据类型另起一章
创建表
CREATE
语句
CREATE TABLE [schema.]table_name(column_name datatype[DEFAULT expr][...]
CREATE TABLE [schema.]表名(列名 类型[默认值 约束],列名 类型,...)
所有的表第一列都是id(除了关联关系表);
id:主键
特点:该列在整张表中每一行所保存的值都不相同,且必须有值(非空且唯一)
作用:区分表中每一条数据。
id | name | gender | birth | salary | comm | job | manager | deptno |
---|
数据库中字符串是单引号描述的,且区分大小写。
DESC
语句
DESC table_name;查看表的结构
DEFAULT
语句
可以通过DEFAULT子句给列指定默认值
NOT NULL
非空(Not Null)是一种约束条件,用于确保字段值不为空
修改表
修改表名:RENAME old name TO new name:
MySQL中为:RENAME TABLE old name TO new name:
增加列:
ALTER TABLE table_name ADD (column datatype [DEFAULT expr][, column datatype...])
列只能增加在最后,不能插入到现有的列中。
删除列:
ALTER TABLE table_name DROP (column)
修改列:
ALTER TABLE table_name MODIFY (column datatype [DEFAULT expr] [, column datatype...])
建表之后,可以改变表中列的数据类型、长度和默认值,修改仅对以后插入的数据有效。如果把长度由大改小,有可能不成功。
删除表
DROP TABLE table_name
DML
INSERT语句
INSERT INTO table_name[(column[, column...])] VALUES(value[, value...]);
如果不写column,则给所有字段添加数据,值的顺序和表中列的顺序必须一致。
VALUES里可以使用DEFAULT关键字作为值,作用:使用当前列的默认值
SELECT * FROM table_name 查看表中所有数据
UPDATE语句
UPDATE table_name SET column = value [, column = value]...
[WHERE condition];
如果没有WHERE子句,则全表的数据都会被更新,务必小心!
DELETE语句
DELETE [FROM] table_name [WHERE condition];
如果没有WHERE子句,则全表的数据都会被删除!
判断一个字段是否为空应该用IS NULL不能写成=NULL
事物的笼罩范围都在DML中