數據庫(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