首先看数据库的定义
-
- 高效的存储和处理数据的介质(介质包括磁盘和内存)。
数据库基于存储介质的不同,分为两类:关系型数据库(SQL)和非关系型数据库(NoSQL:Not Only SQL)。
关系型数据库:是一种建立在关系模型(数学模型)上的数据库。
关系模型:一种所谓建立在关系上的模型,关系模型包含三个方面:
① 数据结构:数据存储的问题,二维表(行和列)。
② 操作指令集合:所有的SQL语句。
③ 完整性约束:表内数据约束(字段与字段之间),表与表之间约束(外键)。
关系型数据库:
大型:Oracle,DB2;
中型:SQL-Server,Mysql;
小型:Access等。
非关系型数据库:memcached,mongodb,redis等。
相比较而言,关系型数据库比较安全,但是比较浪费空间;而非关系型数据库由于运行在内存中,故效率高但是不安全(断电数据丢失,redis可以同步数据到磁盘)。
关键字说明:
数据库:database;
数据库系统:DBS(DataBase System)-是一种虚拟系统,将多种内容关联起来的称呼;
DBS= DBMS+DB;
DBMS:Database Management System,数据库管理系统,专门管理数据库。
DBA:Database Administrator,数据库管理员。
行/记录:row/record,本质是一个东西,都是指表中的一行(一条记录);行是从结构角度出发,记录是从数据角度出发。
列/字段:column/field,本质是一个东西。
SQL
SQL:Structured Query Language,结构化查询语言。
SQL分为三个部分。
① DDL:Data Definition Language,数据定义语言,用来维护存储数据的结构(数据库,表)。代表指令如:create,drop,alter等。
② DML:Data Manipulation Language,数据操作语言。用来对数据进行操作(数据表中的内容),代表指令:insert ,update,delete等。其中DML内部又单独进行了一个分类:DQL(Data Query Language:数据查询语言,如select)。
③ DCL:Data Control Language,数据控制语言。主要负责用户权限管理,代表指令:grant,revoke等。
SQL是关系型数据库的操作指令,是一种非强制性约束,不同数据库产品会有细微差别。
Mysql 服务器对象
将Mysql服务器内部对象分成了四层:系统(DBMS)->数据库(DB)->数据表(Table)->字段(field)。
1.建立用户并分配权限
CREATE USER '用户名'@'%' IDENTIFIED BY '密码';
grant all privileges on *.* to 用户名@'%' identified by '密码' with grant option;
flush privileges;//刷新权限
2.DOS界面执行 *.sql文件
通常用来还原数据库或者导入数据。
source f:2016.sql//f盘下的2016.sql文件
导出存储过程
mysqldump -u 数据库用户名 -p -n -t -d -R 数据库名 > 文件名
3.链接远程主机的MySQL
mysql -h hostip -u 用户名 -p 用户密码
链接本机:
mysql.exe -hlocalhost -p3306 -uroot -p
4.显示表结构
desc table_name || describe table_name
4.1显示当前表的创建语句
show create table table_name;
同理,查看数据库的创建语句:
show create database database_name;
4.2显示表的所有列
- 效果和显示表结构一致。
show columns from table_name;
5.显示库中的数据表
切换到mysql数据库,浏览管理信息表,如:user
use mysql;
show tables;
show tables like '% or _';
6.查看用户表数据
这里只查询三个字段:
select Host,User,Password from user;
7.删库和删表
drop database name;
drop table table_name;
drop view view_name;--删除视图
8.查看当前使用的数据库
select database();
切换数据库
use database_name;
9.显示当前日期
show now();
10.用户操作
显示当前用户:
select user();
显示当前用户密码
select password('root');
查看用户权限
show grants for root@'localhost';
删除用户
delete user form user where Host='xxxx' and User='xxxx';
13.设置数据库的默认字符集
alter database db_name default character set gbk;
-- 同样可以设置数据库的其他选项,如引擎和校对集。
14.改整个数据库中所有表的某一列的值
-
- 如corp_id;
数据库information_schema,保存了用户数据库中表的基本信息。。
select DISTINCT CONCAT(' update ',c.TABLE_NAME,' set ',c.COLUMN_NAME ,'=13;') from COLUMNS c, Tables t where c.TABLE_NAME=t.TABLE_NAME and c.TABLE_SCHEMA='cloudoa_tb' and (c.COLUMN_NAME like 'corpid%' or c.COLUMN_NAME like 'corp_id%' ) and t.TABLE_TYPE='BASE TABLE'
15.显示所有数据库
show database;
show databases like 'pattern';--pattern 是匹配模式
%: 可匹配多个字符;
_: 匹配单个字符;
需要注意的是_ %连用:
show databases like 'information_%';
其相当于'information%';
若想_作为普通字符,需进行转义:
show databases like 'information\_%'
16.开启事件
SHOW VARIABLES LIKE 'event_scheduler';
SET GLOBAL event_scheduler = ON;