数据库的含义:
数据库,顾名思义就是数据的仓库,也可视为电子化的文件柜,能对数据进行增加、删除、修改、查询等操作由DBMS进行操作,DBA是对数据库进行设计、维护、管理的人员
数据库的类型:
层次型数据库:数据的存储类似一棵树,以上下层级关系来组织数据
网状型数据库:数据的存储类似于一幅图,各个数据节点和其他节点都有连接关系
关系型数据库:关系模型就是一张二维表,任何数据都可以通过行号和列号确定,容易理解,使用方便
什么是SQL语言?
SQL是结构化查询语言的缩写,用来操作数据库,主要用来增、删、改、查,高级的操作是对数据库进行管理和维护
SQL语言的分类
数据定义语言:用于建立、修改、删除数据库对象
CREATE:用于创建表或其他对象结构
ALTER:用于修改表或其他对象结构
DROP:用于删除表或其他对象
TRUNCATE:用于删除表中的数据,保留表结构
例如:
1、创建表
CREATE TABLE Student(name char(20), sex n/a, age int, id char(8));
查看表结构:DESC 表名;
查看数据库中所有表:show tables;
2、修改表
1)修改表名
RENAME TABLE 旧表名 TO 新表名;
2)增加列
ALTER TABLE 表名 ADD(字段名 字段类型); 此增加的列追加到表的末尾
3)删除列
ALTER TABLE 表名 DROP 字段名;
4)修改列
ALTER TABLE 表名 MODIFY 字段名 新数据类型;
3、删除表
删除表数据
TRUNCATE 表名;
数据操作语言:用于改变表中的数据
INSERT:将数据插入到表中
UPDATE:更新表中已经存在的数据
DELETE:删除表中的数据
(进行操作语言改变表中的数据后需要执行事务控制语言才能把改变应用到数据库中)
1、插入数据
INSERT INTO 表名(字段名)VALUES(数据);
2、更新数据
UPDATE 表名 SET 字段名=数据, ...where 条件;
UPDATE student SET sex=‘W’,name=‘mary’ where id=123456;
3、删除数据
DELETE from 表名 where 条件;
DELETE from student where name=‘jack’
事务控制语言:用于维护表中数据的一致性
COMMIT:提交,确认已经进行修改的数据
ROLLBACK:回滚,取消已经进行修改的数据改变
SEVEPOINT:设置保存点,用于回滚操作,回滚到保存点
注意:数据定义语言立即有效,不能进行事务控制,只有数据操作语言才能进行事务控制。在Oracle数据库,向一个用户表中插入数据(他自己能够查询到),其他用户并不能立即查询到,只有执行了COMMIT命令后其他用户才能查询到
在MySQL数据库中,默认设置的autocommit 一个用户插入的数据其他用户能够立即看到
show variables like 'aitocommit';
set session autocommit = 0; 关闭当前连接的自动提交
set global autocommit = 0; 关闭所有连接的自动提交
set session autocommit = 1; 开启当前连接的自动提交
set global autocommit = 1; 开启所有连接的自动提交
数据控制语言:用于执行权限的授予和回收操作
GRANT:用于给用户或角色授予权限
REVOKE:用于回收用户或角色的权限
数据查询语言:
SELECT