数据库操作语言SQL
USE pro;
Mysql与PostgreSQL已经验证
1、数据库和SQL
1.1、数据库与DBMS
①什么是数据库
- 数据库是将大量数据保存起来,通过计算机加工而成的可以进行高效访问的数据集合
②什么是DBMS
定义
- 用来管理数据库的的计算机系统称为数据库管理系统DBMS
作用
- 通过使用DBMS,多个用户同时安全,简单的操作大量数据。
种类
DBMS主要通过数据的保存格式[数据库的种类]分类
- 层次数据库HDB
最古老的数据库之一。把数据通过树形结构的方式表现出来。很小使用了 - 关系型数据库RDB
使用最广泛的数据库。采用行和列组成的二维表来管理数据,以及使用SQL对数据进行操作
关系数据库通过关系数据库管理系统RDBMS进行管理- Oracle Database:简称Oracle
- SQL Server
- DB2
- PostgreSQL。开源
- MySQL:开源
- 面向对象数据库OODB
把数据以及对数据的操作集合起来以对象为单位进行管理。
面向对象数据库就是用来保存这些对象的数据库 - XML数据库XLMDB
XML:在网络上进行交换的数据的形式。
XML数据库可以对XML形式的大量数据进行高效处理 - 键值存储系统KVS
KVS是一种单独用来保存查询所使用的主键Key和值Value的组合的数据库。
KVS被应用回到google等需要对大量数据进行超高速查询的web服务中。
1.2、数据库的结构
①RDBMS的架构
- RDBMS通常使用客户端/服务器(C/S)架构
- RDBMS是服务器,能够从保存在硬盘上的数据库中读取数据并返回,还以把数据变更为指定内容。
- 通过从客户端向服务器发送SQL语句来实现数据库的读写操作。
- 通过网络可以实现多个客户都安访问同一个数据库
②表的结构
- 关系数据库采用被称为数据库表的二维表表来管理数据。类似excel。
- 表存储在RDBMS管理的数据库中。一个数据库以存储多个表。
- 关系型数据库中,根据SQL语句的内容返回的数据必须是二维表的形式,返回结果如果不是二维表的SQL语句则无法执行
- 数据库表有表示数据项目的列[字段]和表示一条数据的行[记录]所组成
- 关系型数据库必须以行为单位进行数据读写
- 行和列交汇的方格叫做单元格, 每个单元格只能输入一个数据
1.3、什么是SQL
- SQL是为操作关系型数据库而开发的语言
- SQL通过一条语句来描述想要进行的操作,发送给RDBMS。
- SQL安装操作目的可以访问DDL、DML、DCL
- DDL:数据定义语言,用来创建或者删除存储数据用的数据库以及数据库中的表的对象。包括CREATE创建、DROP删除、ALTER修改
- DML:数据操作语言使用最多,用来查询或者变更表中的记录。包括SELECT查询、INSERT插入、UPDATE更新、DELETE删除
- DCL:数据控制语言:用来确定或者取消对数据库中的数据进行的变更以及对RDBMS的用户是否有权限操作数据库中的对象进行设定,包括:COMMIT确认对数据库中的数据进行的变更、ROLLBACK:取消数据库中的数据进行的变更、GRANT:取消用户操作权限。REVOKE:取消用户的操作权限
1.4、SQL语法规范
- SQL语句以分号(;)结尾
- SQL语句关键字不区分大小写,插入的数据区分大小写。建议:
- 关键字大小
- 表名的首字母大写
- 其他小写。
- 常数的书写方式是固定的
- 字符串和日期常数用单引号(’’)括起来。比如’abc’, ’2018-11-11‘
- 数字无须单引号。比如1000
- 单词需要用半角空格或者换行符进行分隔
- SQL语句执行失败不会对表中原有数据造成影响
2、管理服务命令
2.1、重启数据库
service mysql start
2.2、停止服务
service mysql stop
2.3、重启数据库
sudo /etc/init.d/mysql restart
或者 service mysql restart
2.4、查看服务器的版本
①没有登陆到mysql服务器
mysql --version或者
mysql -V
② 登陆到mysql服务端
select version()
2.5、登陆MySQL
>mysql -u root -p
语法规范
1、mysql不区分大小写,但是建议关键字大写,表名列名小写
2、每条命令最好用分号结尾
3、注释
- 单行注释: #注释文字或者 – 注释文字
- 多行注释: /注释文字/
3、操作库
3.1、查看当前所有数据库
show databases;
3.2、创建库
#案例:创建库Books
CREATE DATABASE IF NOT EXISTS books ;
3.3、修改库[不常用]
RENAME DATABASE books TO 新库名;
#更改库的字符集
ALTER DATABASE books CHARACTER SET gbk;
3.4、进入库
USE
BOOK
;
①查看当前库中有什么表
SHOW TABLES;
②查看其他库中的表
SHOW TABLES FROM
库名
;
3.5、查看当前正位于哪个库中
select database();
3.6、删除库
DROP DATABASE IF EXISTS
BOOK
;