菜鸟学Linux 第056篇笔记 DATABASE, MySQL
菜鸟学Linux 第056篇笔记 DATABASE, MySQL
MySQL www.mysql.com
数据查询方式
二分法
首先将数据排序后,然后每次取中间位置去查询匹配,平均需要查询14次
B+树索引
查询数据只需要4次
索引
将数据文件里的要进行检索的列单独抽取出来并进行排序的条目,并且这些条目
有相对应的指针指向原数据所在位置
查询标准
搜索码
api (application programming interface) 库
function
ODBC (Open DataBase Connection)
驱动 Connection
数据展示
用户视图
物理视图
DBA视图
数据的组织结构
层次型
网状型
关系型
二维表
DBMS (DataBase Management System)
RDBMS (Relational DataBase Management System)
1、数据库创建、删除、修改
2、创建表、删除表、修改表
3、索引的创建、删除
4、用户和权限管理
5、数据增删改
6、查询
DB命令分类
DML (Data Manapulate Language)操作
INSERT, REPLACE, UPDATE, DELETE
DDL (Data Defination Language)定义
CREATE, ALTER, DROP
DCL (Data Control Language)
GRANT, REVOKE, SELECT
数据管理软件
可以为数据自动建立用户所要求的索引,当数据条目删除时,相对的索引条目
也可自动删除,无需人手动来操作
实现增删改查
管理数据完整性
权限管理
RDBMS software
商业 Oracle, Sybase, Infomix, SQL Server(中型), DB2
开源 MySQL, PostgreSQL, EnterpriseDB
SQL (Structured Query Language) ANSI
sql86, sql89, sql92, sql99
去IOE:IBM,Oracle, EMC(生产存储设备)
Oracle 研发软件 红
SUN 综合软件服务提供商-->开发MySQL-->被Oracle收购
MySQL-->Marion (数据库管理软件)
MySQL-->Percona (公司)
OpenOffice
LibreOffice
收购BEA: WebLogic 83亿
收购PeopleSoft 提供客户关系软件的管理公司 128亿
IBM 综合软件服务提供商 蓝色巨人
反关系模型: NoSQL
mongoDB
Redis
HBase
DBMS advantage
数据管理的独立性
有效的完成数据存取
保证数据完整性和安全性
数据集中管理
并发存储与故障恢复
减少应用程序开发时间
DBMS
分析器
计划执行器
优化器
文件的存取
缓存器
磁盘空间管理器
故障恢复管理器
事务管理器
锁管理器
MySQL
Community Edtion
GA (General Availability)
Enterprise Edition
MySQL 软件包格式
软件包管理器特有的格式
rpm包 .exe格式等
通用二进制格式(类似windows绿色软件)
源程序
MySQL的RPM包
mysql, mysql-server
mysql
mysqld
tcp/3306, mysql, mysql
安装MySQL
yum install mysql-server -y
初始化
建立源数据库(mysql) 用来存放表名字段名,属性定义等等
连接到mysql
mysql
service mysqld start
mysql 连接到mysql server
-u USERNAME
-P PASSWORD
-h MySQL_server
Linux: socket
windows: memory
用户 user@host 允许哪些客户端登录
mysql客户端模式
交互式模式
客户端命令
服务器命令
都必须使用语句结束符,默认为分号;
批处理模式
执行mysql脚本
SQL接口
Oracle, PL/SQL
SQL server, T-SQL
关系数据库对象
库
表
索引
视图
约束
存储过程
存储函数
触发器
游标
用户
权限
事务
表: 实体
行,列
行:row
列:field, colum
字段名称、字段类型、类型修饰符(约束)、
字符
CHAR(n) 定长,即使未存储定义长度也会全都占用
VARCHAR(n) 可变长度的字符
BINARY(n) 区分大小写 固定长度
VARBINARY(n) 可变长度,区分大小写
TEXT(n) 超长
BLOD(n) 超长区分大小写
数值
精确数值
×××
TINYINT
SMALLINT
MEDI
INT
BIGINT
修饰符:UNSIGNED 无符号
NOT NULL
十进制
DECIMAL
近似数值
浮点型
FLOAT
DOUBLE
日期时间
DATE
TIME
DATETIME
STAMP 时间戳
布尔
真假01
MySQL 常用命令
DDL (Data Defination Language)
CREATE
ALTER
DROP
DML (Data Manapulate Language)
INSERT
UPDATE
DELETE
DCL (Data Control Language)
GRANT
REVOKE
creat数据库
CREATE DATABASE db_name
CREATE DATABASE IF NOT EXISTS db_name
1. USE db_name
2. CREATE TABLE tb_name(col1,col2...);
drop数据库
DROP DATABASE db_name
DROP TABLE [IF EXISTS] tb_name
查看
SHOW TABLES FROM db_name; 查看库中的表
USE db_name; 表示接下来对哪个数据库进行操作
DESC tb_name; 查看表结构
SELECT * FROM tb_name; 查看表中所有数据
修改表
ALTER TABLE tb_name
MODIFY
CHANGE
ADD
DROP
ALTER TABLE students ADD course VARCHAR(100);
ALTER TABLE students CHANGE course Course VARCHAR(100) AFTER Name;
ALTER TABLE students DROP Course;
DML
INSERT INTO tb_name (col1,col2,...) VALUES|VALUE ("STRING",NUM...)
插入数据条目多条时,可以用逗号隔开;
INSERT INTO students VALUE ('LuFei',25,'M'),('NaMei',23,'F');
INSERT INTO students (Name,Age) VALUE ('Liming',20),('Tom',18);
不加字段的插入则表示每一个字段都插入对应的值
UPDATE tb_name SET column=value WHERE 指定哪一行,否则全都更改
UPDATE students SET Age=30 WHERE Name='Tom';
DELETE FROM students WHERE
DELETE FROM students WHERE Age=25;
REPLACE INTO
选择
SELECT 字段 FROM tb_name WHERE CONDITION;
* 所有字段
WHERE 没有条件表示显示所有行
创建用户
CREATE USER 'USERNAME'@'HOST' INDENTIFIED BY 'PASSWORD'
DROP USER 'USERNAME'@'HOST';
HOST:
IP
HOSTNAME
NETWORK
通配符
_ 匹配任意单个字符 172.16.0.__ 10-99
% 任意字符任意长度
(注意使用通配符要使用引号)
DCL
权限管理
GRANT pri1,pri2,... ON DB_NAME.TB_NAME TO 'USERNAME'@'HOST'
[IDENTIFIED BY 'PASSWORD']; 这个是一条命令,写成两行是因为版面的原因
GRANT ALL PRIVILEGES ON mydb.students to 'tom'@'%';
REVOKE pri1,pri2,... ON DB_NAME.TB_NAME TO 'USERNAME'@'HOST';
REVOKE ALL PRIVILEGES ON mydb.students FROM 'tom'@'%';
查看用户授权
SHOW GRANTS FOR 'USERNAE'@'HOST';
选择和投影
选择:指定以某字段做为搜索码,做逻辑比较,筛选符合条件的行;(行) WHERE
投影:隐藏某些字段(列)
总结:
DDL (Data Definition Language)
用来对数据库,表,定义 添加,删除,变更
CREATE 创建
DROP 删除
ALTER 变更
DML (Data Manipulation Language)
用来对表中的数据条目操作等
INSERT
UPDATE
DELETE
SELECT
SHOW
DCL (Data Control Language)
对用户的权限控制等等
可以使用HELP CONTENTS 来进行查询
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341