标签:mysql基础
程序:指令+数据组成
对数据文件进行有序排列,形成一个索引文件,然后通过索引文件快速找到相对应得数据文件
通过指针指向,帮我们查找文件的方法叫做索引:
常见的方法:B+树
二分法
DML:数据操作语言:
insert replace update delete
DDL:数据定义语言
create ater drop
DCL:数据控制语言:
grand授权 revoke取回权限 select
RDBMS:数据库软件
Oracle、Sybase、Infomix、SQL Server、
MySQL、PostgreSQL、pgsql、EnterpriseDB
MySQL: facebook 阿里巴巴 淘宝 google
哪天MySQL不能用了可以用MariaDB/Percona 都是从MySQL发展而来的
因为Percona太牛了,而且是开源免费,所以 促使着MySQL快速发展
学习MySQL要多关注Percona网站
反关系型数据库:NoSQL
MongoDB 文档数据库
redis 缓存数据库/内存数据库
HBase 在自己内部实现,数据管理的非关系数据库
###################################################################3
DBMS:
数据管理的独立性
有效地完成数据存取
数据完整性和安全性
数据集中管理
能够实现并发存储与故障恢复
减少应用程序的开发时间
################################################
SQL命令 #
| #
----------------------------------- #
| | | #
优化器 分析器 计划执行器 #
------------------------------------- #
| | | #
事物管理器 文件的存取方法 故障恢复管理器 #
| | #
锁管理器 缓存器 #
| #
磁盘空间管理器 #
################################################
MySQL:
Community Edtion 社区版
Enterprise Edtion 企业版
Cluster:集群
workbench:图形化工具
Connectors 连接器 例:PHP链接MySQL,可以通过API也可以通过驱动,那个驱动就是连接器
软件包格式:
软件包管理器特有的格式
rpm包 .exe格式
通用二进制格式
源程序
################################
红帽官方提供的RPM包最重要的有两个:
MySQL 客户端
mysql-server 服务器端
PHP-mysql就是 PHP访问mysql的驱动
二进制程序:
mysql 客户端
mysqld 服务器端
mysql监听在服务器的3306端口
#####################################
应用程序默认保存在 /var/lib/mysql
#####################################
netstat -ntlp 查看监听端口
##################################
mysql -u USERNAME 指定以哪个用户去链接 不指默认root
-p 指定密码 不指默认 空
-h 指定服务器是谁 不指默认localhost
mysql 用户不仅有用户名,包含用户名,和允许它登陆的主机
#############################################################
mysql默认将他的数据库存放在/var/lib/mysql
在mysql下创建一个目录相当于创建了一个数据库
#############################################################
mysql客户端
交互式模式
批处理模式
执行mysql脚本
交互式模式中命令类别:
客户端命令:
服务器端命令 :必须使用语句结束符,默认为分号;
#############################################################
SHOW DATABASES; 查看mysql中所有的库;
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
关系数据库对象:
库
表
索引
视图
约束
存储过程
存储函数
触发器:做主动数据库的
游标
用户
权限
事务
核心组件:
表:
行row 列field/column
表;某一类实体的集合
字段名称 数据类型,类型修饰(限制):
字符:
CHAR(n)最多存储256个字符
VARCHAR(#)最多存储65535个字符
BINARY()
VARBINARY()
TEXT(n)说明要存多大字节的文本
BLOB(n) 二进制的大对象
数值:
精确数值
整型
TINYINT
SMALLINT
MEDIVMINT
INT
BIGINT
修饰符:UNSIGNED;无符号
NOT NULL:
十进制
DECIMAL
近似数值
浮点型
FLOAT
DOUBLE
日期
DATE
TIME
DATETIME
STAMP
布尔
########################################################################################
1、创建数据库:
create databases db_name;
2、展现出所有的数据库:
show databases;
3、如果不存在就添加:
create database if not exists db_name
4、删除数据库:
drop database db_name;
5、创建表:
create table students(name(20) not null,age tinyint unsigned,gender char(1) not null)
6、设定默认使用哪个数据库:
usr db_name
7、查看库中的表:
show tables from db_name;
8、 查看表结构:
desc tb_name;
8、删除表:
drop table if exists tb_name
9、在students表上新增一个字段:
alter table students add course varchar(100);
10、修改字段的名称,并第一个显示:
alter table students change course Course varchar(100) first;
11、删除某个字段
alter table students drop Course;
12、在表中插入字段
insert into students (name,Gender) value (‘Linghuchong‘,‘M‘),(‘Xiaolongnv‘,‘F‘); insert into students values (‘xiaoxiangzi‘,‘hamagong‘,‘57‘,‘M‘);
13、修改某一字段的名称;不指定where全部都改
update tb_name set 字段名=value where name=‘xiaoxiangzi‘; 修改字段
范例:只显示名字和课程:select nmae,Course from students where Gender=‘M‘;
14、删除:删除表中学蛤蟆功的用户
delete from tb_nmae where Course=‘hamagong‘;
select 字段 from tb_name where CONDITION;
15、 创建用户:
create user ‘aaa‘@‘%‘ identified by ‘password‘;
host
ip
主机名
网路地址
_:192.168.9.__ 意思是包含10-99所有的段
%:任意长度的任意字符
15、查看用户的权限:
show grants for ‘aaa‘@‘%‘;
15、把数据库tom上所有的权限给aaa用户
grant all privileges on tom.* to ‘aaa‘@‘%‘;
16、删除用户:
drop user ‘username‘@‘host‘;
17、赋权限:
grant select,update,delete on db_name.tb_name to ‘username‘@‘host‘ identified by ‘password‘;
例:grant select,update on tom.students to ‘ww‘@‘192.168.9.247‘ identified by ‘password‘;
17、远程连接:
mysql -uaaa -p -h192.168.9.247 就可以链接
18、取消权限:暂时不讲
revoke select,update on tom.students from ‘ww‘@‘192.168.9.247‘
标签:mysql基础
原文地址:http://10183596.blog.51cto.com/10173596/1697289