DBMS:
数据管理独立性
有效地完成数据的存取
数据完整性和安全性
数据集中管理
并发存储与故障恢复
减少应用程序开发时间
SQL: structure query language
SQL-分析器-计划执行器-优化器-文件的存取方法-缓存器-磁盘空间管理器-故障恢复管理器
DDL,DML,DCL
MySQL:
社区版
企业版
软件包格式:
软件包管理器特有的格式:
rpm/包,.exe格式等
通用二进制格式
源程序
mysql客户端
-u USERNAME
-p
-h MYSQL_SERVER
-h 172.0.0.1
Linux:socket
Windows:memory
mysql客户端:
交互式模式
批处理模式
执行mysql脚本
交互式模式中的命令类别:
客户端命令
服务器端命令
必须使用语句结束符,默认为分号;
SQL接口:
Oracle,PL/SQL
SQL Server,T-SQL
用户:SUERNAME@HOST
\q 或者 quit 退出mysql
tcp/3306 以mysql 或mysql组的身份去运行
RDNMS:
mysql本身是一个数据库管理服务器,里面有很多数据库,很多数据表,里面有一个专门的mysql数据库,普通用户是看不到的,用来记录用户数据库的信息的,类似文件系统的,索引表;
关系数据库对象:
库
表
索引
视图
约束
存储过程
存储函数
触发器
游标
用户
权限
事务
表:
行,列
表:实体
行:row
列:field ,column
字段名称,数据类型,类型修饰符(限制)
字符
-- CHAR(n)
-- VARCHAR(n)
-- BINARY(n)
-- VARBINARY(n)
-- TEXT(n)小大中长
-- BLOB(n) 二进制大对象
数值
精确数值
整形
--TINYINT
--MEDIUMINT
--INT
--BICINT
修饰符:UNSIGNED,无符号
NOT NULL
十进制
--DECIMAL
近似数值型
浮点型
--FLOAT
--DOUBLE
日期
--DATE
--TIME
--DATETIME
--STAMP
布尔
内置:ENUM,SET
DDL :定义数据库对象
----CREATE
----ALTER
----DROP
DML:
----INSERT
----UPDATE
----DELETE
DCL:
----GRANT
----REVOKE
创建数据库:
CREATE DATABASE db_name
CREATE DATABASE [IF NOT EXISTS] db_name
DROP DATABASE [IF EXISTS] db_name (注意没有回收站)
创建表:
CREATE TABLE db_name.tb_name(col1,col2,...);
USE db_name设置默认数据库
SHOW TABLES;查看表
SHOW TABLES FROM db_name;查看库中的表
查看表的结构:DESC tb_name
删除表:DROP TABLE td_name;
修改表:
ALTER TABLE tb_name;
MODIFY
CHANGE
ADD
DROP
DML:
INSERT INTO tb_name (col1 ,col2 ) VALUES|VALUE ('STRING' ,NUM...);
INSERT INTO tb_name (col1 ,col2 ) VALUES|VALUE ('STRING' ,NUM...),('STRING' ,NUM...);--支持批量插入
可以不不指定字段,表示所有字段都插入值
UPDATE tb_name SET column=vlaue WHERE ;切记要加上条件,不然所有数据都被改了
REPLACE INTO
选择和投影
选择(针对行):指定以某字段作为搜索码,做逻辑比较,筛选符合条件的行;
--WHERE指定选择条件
投影(针对列):
DELETE FROM tb_name WHERE CONDITION;
选择:
SELECT 字段 FROM tb_name WHERE CONDITION;
- :表示所有字段
WHERE:没有条件表示显示所有行
创建用户:
CREATE USER 'USERNAME'@'HOST' [ IDENTIFIED BY 'PASSWORD' ] ;
DROP USER 'USERNAME'@'HOST'
HOST:
--IP:
--HOSTNMAE:
--NETWORK:
--通配符:
----:匹配任意单个字符。172.16.0.
----%:匹配任意长度的任意字符。
注意:要是用通配符的时候一定要用单引号
jerry@'%'
DCL:
GRANT pri1,pri2,...ON DB_NAME.TB_NAME TO 'USERNAME'@'HOST' [ IDENTIFIED BY 'PASSWORD' ];
REVOKE pri1,pri2,... ON DB_NAME.TB_NAME FROM 'USERNAME'@'HOST';
查看用户的授权:
SHOW GRANTs FOR 'USERNAME'@'HOST';
ALL PRIVILEGES;
example:
1:CREATE USER 'jerry'@'%' IDENTIFIED BY 'jerry';
2:SHOW GRANTS FOR 'jerry'@'%';