数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,
每一个数据库都有一个或多个不一样的API用于建立,访问,管理,搜索和复制所保存的数据。
咱们也能够将数据存储在文件中,可是在文件中读写数据速度相对较慢。
因此,如今咱们使用关系型数据库管理系统(RDBMS)来存储和管理的大数据量。所谓的关系型数据库,是创建在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。
RDBMS即关系数据库管理系统(Relational Database Management System)的特色:
1.数据以表格的形式出现
2.每行为各类记录名称
3.每列为记录名称所对应的数据域
4.许多的行和列组成一张表单
5.若干的表单组成databasephp
Mysql是最流行的关系型数据库管理系统,在WEB应用方面MySQL是最好的RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。由瑞典MySQL AB公司开发,目前属于Oracle公司。MySQL是一种关联数据库管理系统,关联数据库将数据保存在不一样的表中,而不是将全部数据放在一个大仓库内,这样就增长了速度并提升了灵活性。html
参考博客:https://www.cnblogs.com/phpxiebin/p/4988156.htmlpython
方式一:官网下载直接安装,网址http:
/
/
dev.mysql.com
/
downloads
/
mysql
/
mysql
方式二:压缩包安装,参考博客:https://www.cnblogs.com/wusir66/p/9726933.htmlsql
建立用户: create user '用户名'@'主机名(%表示任意)' identified by '密码'; 例: create user 'wusir'@'192.168.1.1' identified by '123123'; create user 'wusir'@'192.168.1.%' identified by '123123'; create user 'wusir'@'%' identified by '123123';
删除用户
drop user '用户名'@'IP地址';
修改用户:
rename user '用户名'@'IP地址' to '新用户名'@'新IP地址';
修改密码:
set password for '用户名'@'IP地址' = Password('新密码');
PS:用户相关的信息保存在mysql库中的user表里
格式:
grant 具体操做的权限 on 数据库.表 to '用户名'@'主机名';
例:
grant select,insert,update on db1.t1 to 'wusir'@'%';
grant all privileges on db1.t1 to 'wusir'@'%';
数字:
整数:
tinyint[(m)] [unsigned] [zerofill] 小整数,数据类型用于保存一些范围的整数数值范围: 有符号: -128 ~ 127. 无符号: 0 ~ 255
int[(m)][unsigned][zerofill] 整数,数据类型用于保存一些范围的整数数值范围: 有符号: -2147483648 ~ 2147483647 无符号: 0 ~ 4294967295
bigint[(m)][unsigned][zerofill] 大整数,数据类型用于保存一些范围的整数数值范围: 有符号: -9223372036854775808 ~ 9223372036854775807 无符号: 0 ~ 18446744073709551615
小数:
decimal[(m[,d])] [unsigned] [zerofill] 准确的小数值,m是数字总个数(负号不算),d是小数点后个数。 m最大值为65,d最大值为30。 特别的:对于精确数值计算时须要用此类型 decaimal可以存储精确值的缘由在于其内部按照字符串存储。
FLOAT[(M,D)] [UNSIGNED] [ZEROFILL] 单精度浮点数(非准确小数值),m是数字总个数,d是小数点后个数。 无符号: -3.402823466E+38 to -1.175494351E-38, 0 1.175494351E-38 to 3.402823466E+38 有符号: 0 1.175494351E-38 to 3.402823466E+38 DOUBLE[(M,D)] [UNSIGNED] [ZEROFILL] 双精度浮点数(非准确小数值),m是数字总个数,d是小数点后个数。 无符号: -1.7976931348623157E+308 to -2.2250738585072014E-308 0 2.2250738585072014E-308 to 1.7976931348623157E+308 有符号: 0 2.2250738585072014E-308 to 1.7976931348623157E+308 字符串
char (m) char数据类型用于表示固定长度的字符串,能够包含最多达255个字符。其中m表明字符串的长度。 PS: 即便数据小于m长度,也会占用m长度 varchar(m) varchar数据类型用于变长的字符串,MySQL 数据库的varchar类型在4.1如下的版本中的最大长度限制为255。在 MySQL5.0以上的版本中,varchar数据类型的长度支持到了65535,也就是说能够存放65532个字节的数据。其中m表明该数据
类型所容许保存的字符串的最大长度,只要长度小于该最大值的字符串均可以被保存在该数据类型中。 注:虽然varchar使用起来较为灵活,可是从整个系统的性能角度来讲,char数据类型的处理速度更快,有时甚至能够超出varchar处理速度的50%。
所以,用户在设计数据库时应当综合考虑各方面的因素,以求达到最佳的平衡 text text数据类型用于保存变长的大字符串,能够组多到65535(2**16 − 1)bytes mediumtext A TEXT column with a maximum length of 16777215 (2**24 − 1)bytes longtext A TEXT column with a maximum length of 4294967295 or 4GB (2**32 − 1)bytes
enum 枚举类型, An ENUM column can have a maximum of 65,535 distinct elements. (The practical limit is less than 3000.) 示例: CREATE TABLE shirts ( name VARCHAR(40), size ENUM('x-small', 'small', 'medium', 'large', 'x-large') ); INSERT INTO shirts (name, size) VALUES ('dress shirt','large'), ('t-shirt','medium'),('polo shirt','small'); set 集合类型 A SET column can have a maximum of 64 distinct members. 示例: CREATE TABLE myset (col SET('a', 'b', 'c', 'd')); INSERT INTO myset (col) VALUES ('a,d'), ('d,a'), ('a,d,a'), ('a,d,d'), ('d,a,d');
TIME
DATE YYYY-MM-DD(1000-01-01/9999-12-31) TIME HH:MM:SS('-838:59:59'/'838:59:59') YEAR YYYY(1901/2155) DATETIME YYYY-MM-DD HH:MM:SS(1000-01-01 00:00:00/9999-12-31 23:59:59) TIMESTAMP YYYYMMDD HHMMSS(1970-01-01 00:00:00/2037 年某时)
show databases; #显示有哪些数据库 use 数据库名称; #切换到选择的数据库 show tables;
#展现当前数据库下有哪些表
create database db2 default charset utf8;
完整的建立一个数据库
drop database db2;
删除一个数据库
create table t1(id int primary key auto_increment,name char(10))engine=innodb default charset=utf8;
建立一个包含主键id和name字段的表
delete from t1;
清空表(id计数仍从清空前计数)
truncate table t1;
清空表(id计数从1计数)
drop table t1;
删除表
desc 表名;
查看表的字段
show create table 表名;
show create table 表名\G;
查看表的建立语句
show variables like '%datadir%';
查看mysql数据存储路径信息
show variables like "%char%";
查看mysql编码
主键,一种特殊的惟一索引,不容许有空值,若是主键使用单个列,则它的值必须惟一,若是是多列,则其组合必须惟一。 create table tb1( nid int not null auto_increment primary key, num int null ) 或 create table tb1( nid int not null, num int not null, primary key(nid,num) )
外键,一个特殊的索引,只能是指定内容 creat table color( nid int not null primary key, name char(16) not null ) create table fruit( nid int not null primary key, smt char(32) null , color_id int not null, constraint fk_cc foreign key (color_id) references color(nid) )
表的基本操做数据库
一、增编程
insert into 表 (列名,列名...) values (值,值,值...)
insert into 表 (列名,列名...) values (值,值,值...),(值,值,值...)
二、删数据结构
delete from 表 delete from 表 where id=1
三、改less
update 表 set name = 'wusir' where id>1
四、查编程语言
select * from 表 select * from 表 where id > 1 select nid,name,gender from 表 where id > 1