要学Web 开发,也得先对数据库有所了解呀。数据库分门别类,多种多样,目前我选择了 MySQL 。
看了 MySQL,觉得数据库处理也不是很难,主要就是一些对数据的处理,MySQL 主要就是一些命令的运用。
看过了,怕忘了吧,得及时记录下来。
数据库基础
(1)数据模型--有三类
层次模型 :用树形结构来表示实体及其之间的模型。
网状模型: 以实体型为节点的有向图表示各实体及其之间联系的模型。
关系模型: 用二维表格表示实体及其相互关系的模型。
前两模型较不常见,所以主要考虑 关系模型。
(2)关系数据库
关系是一个带有属性的表,这个表称为关系表,一组表组成一 数据库。
表由行和列组成,其行称为元组,列称为属性。
属性的取值范围称为域,行称为记录。
(3)键的选用
主键(Primary Key) 组合键 (Concatenated Key) 候选键 (Candidate Key) 外键 (Foreign Key)
这些键的具体区别我还是看不懂啊.....看来还要多理解理解.....
(4)关联类型
一对一 一对多 多对多
(5) 最后还有 第一二三范式 实体/参照/域完整性 主键/唯一/外键/默认约束 等等.......也不多说了..
********************************************华丽分割线************************************************************
MySQL 主要命令
(大小写不区分)
MySQL 的数值类型有:
整型: tinyint smallint mediumint bigint ; 浮点型 : float double decimal ;
MySQL 还有数据字段修饰符:
自动增量设置 auto_increment : create table book(id int auto_increment,name varchar(15));
然后插入数据 insert into book (id,name) values("1","book1"); insert into book(bame) values("book2"); 则 id 会自动自增。
自动补齐前导 0 zerofill : create table book(id int(3) zerofill,name char(20)); 再插入如上..id 就会变为 001 之类的.
另外还有两个类型: blob 和 text 通常保存较大文本,但前者可以保存二进制文件(如图片?)。
同样也有 tinyblob blob mediumblob longblob tinytext text mediumtext longtext
还有 enum 类型和 set 类型,恕我还没弄懂这俩货..暂时不说了...
还有那些跟时间日期相关的方法,规则也挺多,也跳过吧..
例如创建 books 数据库 :create database books;
查看数据库大纲信息:show databases;
创建新用户 user1并分配权限 select (他使用密码 "passwd",密码可选可不选) :
grant select on *.* to user1 identified by "passwd" with grant option;
查看用户权限: show grants for user1;
撤销用户权限:revoke select on *.* from user1;
要选择某数据库(books):use books; ----> (选择了才能操作它里面的表) 查看数据库表: show tables;
创建数据库表(book) : create table book(id int,name varchar(15),price varchar(10));
其中 前一项是属性,后一项是对应类型,varchar(15) 和char(15)差不多,只是后者固定了15个空间。
为表中插入值 :insert into book values(1 book1 10,2 book2 30);
查看某特定表(book)信息 : describe book;
删除数据库(books): drop database books ;
删除表数据(book) :delete from book where id="2"; 删除表中 id=2 的数据;
为某些值创建一视图(myView),就是某种意义上的“整合”:
create view myView as select id,name from book; 接下来 select * from myView; 就可以查看视图(也可用 describe myView;)
删除视图 drop myView;
查询语句+约束(where后面是约束): select * from book where name="book2";
(and or 等):select * from book where name="book2" and/or id="1";
(limit ) : select id from book order by id limit 3; 其中order by 可以id 方式来排序. 还可换成 limit 1,3; 代表区间1 ~ 3 ;
模糊查询(like):与通配符“%” 和下划线 “_"搭配使用,前者配一个或多个字符,后者只配一个字符。
如 select * from book where name like('_k%');
联合多列(concat) :就是把某些元素联合在一起:作为一个新的“列”?
如 select id,concat(name," ",price) as info from book; 就是 把 name 和 price 联合成 info 再与id 项 弄出来呗..
查询最大值最小值 : select max(id)/min(id) as id from book; 计算行数: select count(*) from book;
分组查询 (group by ): select * from book group by name ;
更新数据(更改数据 update ): update book set name="book111" where id="2"; 就是把id=2 的name 更改了。
等等等等........................
除此之外,最好为数据库创建索引,可以加快查询速度。
使用 alter table : alter table book add index/nique/rimary index_name; 其中三项为索引类型。
使用create index: create index index_name on book;
使用create table: create table book(index index_name);
查看(id)索引的使用:explain select id from book where name="book2";
还可以从宏观上查看 show status like "Handler_read%";
表的类型....
MyISAM (默认) HEAP(最快) 可直接如此定义 : create table book(id char)type = HEAP;
还有锁定表 READ 和 WRITE 外键 这三个还是看不大明 .....先不说了..
还有学会创建临时表 create temporary table book(id varchar(10) NOT NULL,); ps: NOT NULL 可以直接用, 你懂的吧....
分析表有 analyze table book; 检查表有 check table book ; 优化表有 optimize table book;
等等等等......
命令虽多,多打打,始终会熟悉的...
**************************************************************华丽的分割线****************************************************
第一篇博客就这样写完了,耗时将近两个钟头,而且是熬夜写...........精神可嘉..................
第一次写博文,格式什么的都不熟悉
以后不能熬夜了.......

MySQL是一種開源的關係型數據庫管理系統,主要用於快速、可靠地存儲和檢索數據。其工作原理包括客戶端請求、查詢解析、執行查詢和返回結果。使用示例包括創建表、插入和查詢數據,以及高級功能如JOIN操作。常見錯誤涉及SQL語法、數據類型和權限問題,優化建議包括使用索引、優化查詢和分錶分區。

MySQL是一個開源的關係型數據庫管理系統,適用於數據存儲、管理、查詢和安全。 1.它支持多種操作系統,廣泛應用於Web應用等領域。 2.通過客戶端-服務器架構和不同存儲引擎,MySQL高效處理數據。 3.基本用法包括創建數據庫和表,插入、查詢和更新數據。 4.高級用法涉及復雜查詢和存儲過程。 5.常見錯誤可通過EXPLAIN語句調試。 6.性能優化包括合理使用索引和優化查詢語句。

選擇MySQL的原因是其性能、可靠性、易用性和社區支持。 1.MySQL提供高效的數據存儲和檢索功能,支持多種數據類型和高級查詢操作。 2.採用客戶端-服務器架構和多種存儲引擎,支持事務和查詢優化。 3.易於使用,支持多種操作系統和編程語言。 4.擁有強大的社區支持,提供豐富的資源和解決方案。

InnoDB的鎖機制包括共享鎖、排他鎖、意向鎖、記錄鎖、間隙鎖和下一個鍵鎖。 1.共享鎖允許事務讀取數據而不阻止其他事務讀取。 2.排他鎖阻止其他事務讀取和修改數據。 3.意向鎖優化鎖效率。 4.記錄鎖鎖定索引記錄。 5.間隙鎖鎖定索引記錄間隙。 6.下一個鍵鎖是記錄鎖和間隙鎖的組合,確保數據一致性。

MySQL查询性能不佳的原因主要包括没有使用索引、查询优化器选择错误的执行计划、表设计不合理、数据量过大和锁竞争。1.没有索引导致查询缓慢,添加索引后可显著提升性能。2.使用EXPLAIN命令可以分析查询计划,找出优化器错误。3.重构表结构和优化JOIN条件可改善表设计问题。4.数据量大时,采用分区和分表策略。5.高并发环境下,优化事务和锁策略可减少锁竞争。

在數據庫優化中,應根據查詢需求選擇索引策略:1.當查詢涉及多個列且條件順序固定時,使用複合索引;2.當查詢涉及多個列但條件順序不固定時,使用多個單列索引。複合索引適用於優化多列查詢,單列索引則適合單列查詢。

要優化MySQL慢查詢,需使用slowquerylog和performance_schema:1.啟用slowquerylog並設置閾值,記錄慢查詢;2.利用performance_schema分析查詢執行細節,找出性能瓶頸並優化。

MySQL和SQL是開發者必備技能。 1.MySQL是開源的關係型數據庫管理系統,SQL是用於管理和操作數據庫的標準語言。 2.MySQL通過高效的數據存儲和檢索功能支持多種存儲引擎,SQL通過簡單語句完成複雜數據操作。 3.使用示例包括基本查詢和高級查詢,如按條件過濾和排序。 4.常見錯誤包括語法錯誤和性能問題,可通過檢查SQL語句和使用EXPLAIN命令優化。 5.性能優化技巧包括使用索引、避免全表掃描、優化JOIN操作和提升代碼可讀性。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

Dreamweaver Mac版
視覺化網頁開發工具

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具