1������index��
1.1��ʲô������
���������� �����ֶ� ���ݿӵģ���Ϊ����߲�ѯЧ�ʴ���ڵһ�ֻ��ơ�
һ�ű��һ���ֶο������һ������Ȼ������ֶ�������Ҳ�����������
�����൱��һ�����Ŀ¼����Ϊ����Сɨ�跶 Χ�����ڵһ�ֻ��ơ�
����һ���ֵ��˵������ij��������ַ�ʽ��
��һ�ַ�ʽ��һҳһҳ�����ң�ֱ���ҵ�Ϊֹ�����ֲ��ҷ�ʽ����ȫ�ֵ�ɨ�衣
Ч�ʱȽϵ͡�
��ַ��ڶʽ����ͨ��Ŀ¼������ȥ��λһ���ŵ�λ�ã�Ȼ��ֱ�Ӷ�λ�����
λ�ã��������ɨ�裬� � Сɨ��ķ�Χ�����ٵIJ��ҡ����ֲ��ҷ�ʽ����ͨ
��
�������Ч�ʽϸߡ�
t_user
id(idIndex) name(nameIndex) email(emailIndex) address
(emailAddressIndex)
-----------------------------------------------------------------------------
-----
1 zhangsan...
2 lisi
3 wangwu
4 zhaoliu
5 hanmeimei
6 jack
���ϵ�����SQL����ȥname�ֶ���ɨ�裬 Ϊʲô��
��Ϊ��ѯ���ǣ�name='jack'
���name�ֶ���û���������Ŀ¼��������˵û�и�name�ֶδ�������
MySQL�����ȫɨ�裬� Ὣname�ֶ��ϵ�ÿһ��ֵ���ȶ�һ�顣 Ч�ʱȽϵ͡�
MySQL��ڲѯ������Ҫ������ַ�ʽ��
��һ�ַ�ʽ��ȫ��ɨ��
��ַ��ڶʽ������������
�ע⣺
��ʵ���У������ֵ�ǰ���Ŀ¼������ģ�����a b c d e f....����
Ϊʲô��������أΪֻ�������˲Ż�����������һ˵������Сɨ�跶 Χ
��ʵ����ɨ��ij�������ˣ���
��mysql��������ݿҲ����Ҫ����ģ�����������Ե������TreeSet
��ݽṹ��ͬ��
TreeSet ��TreeMap ���
���ײһ����ƽ��Ķ�������mysql
����������һ��B-Tree��ݽṹ��
��ѭ��С�ִ�ԭ���š������������ʽ����ȡ���ݡ
1.2�������ʵ��ԭ��
������һ���û���t_user
id(PK) name
ÿһ�м�¼��Ӳ���϶�������洢� � �
-----------------------------------------------------------------------------
-----
100 zhangsan 0x1111
120 lisi 0x2222
99 wangwu
0x8888
88 zhaoliu
0x9999
101 jack 0x6666
55 lucy
0x5555
130 tom 0x7777
����1�����κ�������϶������ݿԶ�����������id�ֶ����Զ�������
��Ϊid��PK��������mysql���У�һ���ֶ��������uniqueԼ��Ļ���Ҳ���Զ�
�����������
����2�����κ����ݿУ��κ�һ�ű���κ�һ���¼��Ӳ�̴
洢 �϶���
һ��Ӳ�̵�����
洢 ��š�
����3����mysql���У�������һ���Ķ���ͬ�
�ͬ�Ĵ 洢����� Բ�ͬ����
ʽ
������ڣMyISAM�洢����� У�����洢��һ��.MYI�ļ��С���InnoDB�洢������
����洢��һ������ƽ���tablespace�ĵ��С���MEMORY�洢 ���浱 ������
���洢��� ڴ浱�С���������洢����������������� mysql���ж���һ�������ʽ
��������ڡƽ������B-Tree��
1.3����mysql���У�����ϣ��Լ�unique�ֶ��϶����Զ��������ģ�������
ʲô���£����ǻῼ�Ǹ��ֶ����������أ
��1�������Ӵ����ж�ô�Ӵ����Ӵ������Ҫ���ԣ
ԣ ���Ϊÿһ��Ӳ��������ͬ��
��2�����ֶξ���������where�ĺ��棬��������ʽ����ڣҲ����˵����ֶ����DZ�ɨ�衣
��3�����ֶκ���ٵDML(insert delete update)�������ΪDML֮��������Ҫ��������
�
���鲻 Ҫ�������������Ϊ����Ҳ����Ҫά���ģ�̫��
Ļ �����
ή ��ϵͳ �����
�ܡ
����ͨ
������ѯ������ͨ
��uniqueԼ����ֶν��в�ѯ��Ч���DZȽϸߵġ�
1.4��������ô��������ôɾ���� �� ʲô��
��������
mysql> create index emp_ename_index on emp(ename);
��emp���ename�ֶ������������emp_ename_index
ɾ������
mysql> drop index emp_ename_index on emp;
��emp���ϵ�emp_ename_index�������ɾ��
1.5����mysql���У���ô�鿴 һ��SQL����Ƿ�ʹ����������м���
1.6��������ʧЧ��ʱ��ʲôʱ������ʧЧ��أ
ʧЧ�ĵ�1�����
select * from emp where ename like '%T';
ename�ϼ�ʹ���������Ҳ����������Ϊʲô��
ԭ������Ϊģ��ƥ�䵱���ԡ�%����ͷ�ˣ�
�������ģ���ѯ��ʱ���ԡ�%����ʼ��
����һ���Ż����ֶ�/���ԡ�
ʧЧ�ĵ�2�����
ʹ��or��ʱ���ʧЧ�����ʹ��or��ôҪ��or��ߵ����ֶζ�Ҫ��
����Ż��������������һ����һ���ֶ�û��������ô��һ��
�ֶ��ϵ�����Ҳ��ʵ�֡ ����������� Ϊʲô������ʹ��or��ԭ��
ʧЧ�ĵ�3�����
ʹ�ø��������ʱ��û��ʹ�������в��ң�����ʧЧ
ʲô�Ǹ�������
����ֶΣ����߸����ֶ����������һ��������������
ʧЧ�ĵ�4�����
��where���������вμ������㣬����ʧЧ��
mysql> create index emp_sal_index on emp(sal);
ʧЧ�ĵ�5�����
��where����������ʹ���˺���
explain select * from emp where lower(ename) = 'smith';
+----+-------------+-------+------+---------------+------+---------
+------+------+-------------+
| id | select_type | table | type | possible_keys | key | key_len |
ref | rows | Extra |
+----+-------------+-------+------+---------------+------+---------
+------+------+-------------+
| 1 | SIMPLE | emp | ALL | NULL | NULL | NULL |
NULL | 14 | Using where |
+----+-------------+-------+------+---------------+------+---------
+------+------+-------------+
ʧЧ�ĵ�6...
ʧЧ�ĵ�7...
1.7�������Ǹ����������ݿŻ�����Ҫ�ֶΡ��Ż���ʱ�����ȿ��ǵ�����������ؾ
���������ݿз��˺�
ࣿܶ � ࣿ
�
��һ����һ���ֶ����������
������������ֶλ��߸����ֶ����������
�������������������
Ψһ���������uniqueԼ����ֶ����������
.....
�ע⣺Ψһ�ԱȽ�����ֶ�����������ô�����
2����ͼ(view)
2.1��ʲô����ͼ��
view:վ���ͬ�ڲĽǶ�ȥ����ͬ
һ ����
�ݡ
2.2����ô������ͼ������ôɾ����ͼ����
���ƣ�
mysql> create table dept2 as select * from dept;
dept2���е����ݣ
mysql> select * from dept2;
+--------+------------+----------+
| DEPTNO | DNAME | LOC |
+--------+------------+----------+
| 10 | ACCOUNTING | NEW YORK |
| 20 | RESEARCH | DALLAS |
| 30 | SALES | CHICAGO |
| 40 | OPERATIONS | BOSTON |
+--------+------------+----------+
������ͼ����
create view dept2_view as select * from dept2;
ɾ����ͼ����
drop view dept2_view;
�ע⣺ֻ��DQL��������view����ʽ������
create view view_name as �������������DQL���;
2.3������ͼ��ʲô��
//������ͼ��ѯ
select * from dept2_view;
// ������ͼ����
insert into dept2_view(deptno,dname,loc) values(60,'SALES', 'BEIJING');
// ��ѯԭ�����
mysql> select * from dept2;
+--------+------------+----------+
| DEPTNO | DNAME | LOC |
+--------+------------+----------+
| 10 | ACCOUNTING | NEW YORK |
| 20 | RESEARCH | DALLAS |
| 30 | SALES | CHICAGO |
| 40 | OPERATIONS | BOSTON |
| 60 | SALES | BEIJING |
+--------+------------+----------+
// ������ͼɾ��
mysql> delete from dept2_view;
// ��ѯԭ�����
mysql> select * from dept2;
Empty set (0.00 sec)
// ������ͼ����
create view
emp_dept_view
as
select
e.ename,e.sal,d.dname
from
emp e
join
dept d
on
e.deptno = d.deptno;
// ��ѯ��ͼ����
mysql> select * from emp_dept_view;
+--------+---------+------------+
| ename | sal | dname |
+--------+---------+------------+
| CLARK | 2450.00 | ACCOUNTING |
| KING | 5000.00 | ACCOUNTING |
| MILLER | 1300.00 | ACCOUNTING |
| SMITH | 800.00 | RESEARCH |
| JONES | 2975.00 | RESEARCH |
| SCOTT | 3000.00 | RESEARCH |
| ADAMS | 1100.00 | RESEARCH |
| FORD | 3000.00 | RESEARCH |
| ALLEN | 1600.00 | SALES |
| WARD | 1250.00 | SALES |
| MARTIN | 1250.00 | SALES |
| BLAKE | 2850.00 | SALES |
| TURNER | 1500.00 | SALES |
| JAMES | 950.00 | SALES |
+--------+---------+------------+
// ������ͼ����
update emp_dept_view set sal = 1000 where dname = 'ACCOUNTING';
// ԭ���������ݱ
mysql> select * from emp;
+-------+--------+-----------+------+------------+---------+---------
+--------+
| EMPNO | ENAME | JOB | MGR | HIREDATE | SAL | COMM | DEPTNO
|
+-------+--------+-----------+------+------------+---------+---------
+--------+
| 7369 | SMITH | CLERK | 7902 | 1980-12-17 | 800.00 | NULL | 20
|
| 7499 | ALLEN | SALESMAN | 7698 | 1981-02-20 | 1600.00 | 300.00 | 30
|
| 7521 | WARD | SALESMAN | 7698 | 1981-02-22 | 1250.00 | 500.00 | 30
|
| 7566 | JONES | MANAGER | 7839 | 1981-04-02 | 2975.00 | NULL | 20
|
| 7654 | MARTIN | SALESMAN | 7698 | 1981-09-28 | 1250.00 | 1400.00 | 30
|
| 7698 | BLAKE | MANAGER | 7839 | 1981-05-01 | 2850.00 | NULL | 30
|
| 7782 | CLARK | MANAGER | 7839 | 1981-06-09 | 1000.00 | NULL | 10
|
| 7788 | SCOTT | ANALYST | 7566 | 1987-04-19 | 3000.00 | NULL | 20
|
| 7839 | KING | PRESIDENT | NULL | 1981-11-17 | 1000.00 | NULL | 10
|
| 7844 | TURNER | SALESMAN | 7698 | 1981-09-08 | 1500.00 | 0.00 | 30
|
| 7876 | ADAMS | CLERK | 7788 | 1987-05-23 | 1100.00 | NULL | 20
|
| 7900 | JAMES | CLERK | 7698 | 1981-12-03 | 950.00 | NULL | 30
|
| 7902 | FORD | ANALYST | 7566 | 1981-12-03 | 3000.00 | NULL | 20
|
| 7934 | MILLER | CLERK | 7782 | 1982-01-23 | 1000.00 | NULL | 10
|
+-------+--------+-----------+------+------------+---------+---------
+--------+
2.4����ͼ������ʵ�ʿ����е�����ʲô�ã������㣬����������
��������� ����
create view
emp_dept_view
as
select
e.ename,e.sal,d.dname
from
emp e
join
dept d
on
e.deptno = d.deptno;
������һ��dz����ӵ�SQL��䣬������SQL�����Ҫ����ͬ�ڲλ���Ϸ���ʹ�á�
ÿһ��ʹ�����sql����ʱ����Ҫ���±�д���ܳ������� 鷳����ô�죿
���������
�ӵ �SQL������ ͼ�������ʽ�½���
����Ҫ��д����SQL����λ��ֱ��ʹ����ͼ�����Դ�������
��Դ�������
��������ں��ڵά������Ϊ�ĵ�ʱ��Ҳֻ��Ҫ��һ��λ�þ��У�ֻ��Ҫ
����ͼ������ӳ���SQL��䡣
�����Ժ�������ͼ������ʱ��ʹ����ͼ��ʱ�������ʹ��tableһ��
���Զ���ͼ������ɾ�IJ�Ȳ�����ͼ�������ڴ浱�У���ͼ����Ҳ��
�洢��Ӳ���ϵģ�������ʧ��
������һ�£�
��ͼ��Ӧ�����ֻ����DQL��䡣
������ͼ������
���� ����
֮ � � Զ���ͼ������ɾ�IJ�Ȳ���
����
��ɾ�IJ 飬�ֽ���CRUD��ͨ
CRUD����˾�ڹг���Ա֮�ͨ乵�����һ�����Ǻ���˵��ɾ�IJ 顣
һ�㶼˵CRUD��
C:Create����
R:Retrive���飺����
U:Update���ģ�
D:Delete��ɾ��
3��DBA�������
�����صգ�
��ݵĵ��������ݵı���ݣ
͵
���������˽�һ�¼��ɡ��������ѵ���־ĵ����ţ��Ժ����ˣ����Դ��ĵ�����ճ��
�����ݵ
�ע⣺��windows��dos������ �У�
mysqldump bjpowernode>D:\bjpowernode.sql -uroot -p123456
���Ե���ָ���ı���
mysqldump bjpowernode emp>D:\bjpowernode.sql -uroot -p123456
����ݵ룿
�ע⣺��Ҫ�ȵ�¼��mysql��������ݿϡ�
Ȼ����
���ݿ⣺create database bjpowernode;
ʹ����ݿ⣺use bjpowernode
Ȼ���ʼ����ݿ⣺source D:\bjpowernode.sql
4����������ݿʽ
4.1��ʲô�������ݿƷ�ʽ��
���������ݿ��������ݡô�����������ݿơ�
4.2�������ݿƷ�ʽ���У�
3��
��һ��ʽ��Ҫ���κ�һ�ű���������ÿһ���ֶ�ԭ���Բ����֡�ٷ
����ڶʽ�������ڵһ��ʽ�Ļ�֮�� ϣ�Ҫ�����з�����ֶ���ȫ������
��Ҫ����������
����ʽ���������ڵڶʽ�Ļ�֮�� ϣ�Ҫ�����з�����ֶ�ֱ��������
��Ҫ����������
������ʽ�����Թ����پʵģ�����һ��Ҫ������ģ�
��������ݿʱ�������
�ϵķ �ʽ�� У����Ա�������������ݵ
࣬ ࣬ ռ���˷ѡ�
4.3����һ��ʽ
����ģ�����Ҫ�ķ�ʽ�����б����ƶ���Ҫ���㡣
�����������ÿһ���ֶζ���ԭ���Բ����֡�ٷ
������ѧ��������һ��ʽ��
�����㣬��һ��û���������ڶϵ��ʽ���Է�Ϊ�����ַ�͵绰
4.4������ڶʽ��
�����ڵһ��ʽ�Ļ�֮�� ϣ�
Ҫ�����з�����ֶα�����ȫ������Ҫ����������
���ű�������ѧ�����ʦ�Ĺ�ϵ����1��ѧ������ж����ʦ��1����ʦ�ж��ѧ��
���Ƿdz����͵ģ���Զ��ϵ��
�������ϵı��Ƿ������һ��ʽ��
�������һ��ʽ��
��ô�����һ��ʽ����أ
Ϊ�������ϵı��������ڶʽ������Ҫ������ƣ�
ʹ�����ű����ʾ��Զ�Ĺ�ϵ��������
ѧ���
ѧ����(pk) ѧ������
------------------------------------
1001 ����
1002 ����
1003 ����
��ʦ��
��ʦ���(pk) ��ʦ����
--------------------------------------
001 ����ʦ
002 ����ʦ
ѧ���ʦ��ϵ��
id(pk) ѧ����(fk) ��ʦ���(fk)
------------------------------------------------------
1 1001
001
2 1002
002
3 1003
001
4 1001
002
����ھ
��Զ���ô��ƣ�
��Զ � ��
࣬ ű���ϵ���������������������������������
4.5������ʽ
����ʽ�������ڵڶʽ�Ļ�֮���
Ҫ�����з�����ֵ����ֱ��������Ҫ����������
���ϱ�����������༶��ѧ��Ĺ�ϵ������Ȼ��1�Զ��ϵ��
һ��������ж��ѧ��
�������ϱ��Ƿ������һ��ʽ��
�����һ��ʽ�������
�������ϱ��Ƿ��������ڶʽ��
�������ڶʽ����Ϊ����Ǹ������û�в�������������ǵ�һ���
�������ϱ��Ƿ��������ʽ��
����ʽҪ���
Ҫ���������
һ��һ�����01��01���1001�������˴��������
����ϵ���ʽ��Ҫ��������
�������ࡣ����ݵ
��ôӦ����ô���һ�Զ���أ
�༶��һ
�༶���(pk) �༶���
----------------------------------------
01 һ��һ��
02 һ����
03 һ�����
ѧ�����
����ھ
һ�Զ࣬� � ű���ı������������������������
4.6���ܽ������ƣ�
һ�Զࣺ
һ�Զ࣬� � ű���ı������������������������
��Զࣺ
��Զ࣬� �� ű���ϵ���������������������������������
һ��һ��
һ��һ�ŵ�һ�ű��в���������Ϊɶ��Ҫ��ֱ�
��ʵ�ʵĿ����У����ܴ���� һ�ű��ֶ ࣬ ࣬ �� Ӵ����ʱ��Ҫ��ֱ�
һ��һ��ô��ƣ�
û�в�ֱǰ��һ�ű�
t_user
id login_name login_pwd real_name
email address........
-----------------------------------------------------------
----------------
1 zhangsan 123
���� zhangsan@xxx
2 lisi 123
���� lisi@xxx
...
�����Ӵ�ı�����Ϊ��ţ�
t_login ��¼��Ϣ��
id(pk) login_name login_pwd
---------------------------------
1 zhangsan 123
2 lisi 123
t_user �û���ϸ��Ϣ��
id(pk) real_name email
address........ login_id(fk+unique)
-----------------------------------------------------------
------------------------------
100 ���� zhangsan@xxx
1
200 ���� lisi@xxx
2
��ھһ��һ�����Ψһ��������������������
4.7�����һ�仰��
��������ݿʽ�������ϵġ�
ʵ��������е�ʱ����ƫ�
���յ�Ŀ�Ķ���Ϊ������ͻ��������е�ʱ��������ִ���ٶȡ�
��Ϊ��sql���У���ͱ�֮����� Ӵ���Խ�
�࣬Ч��Խ�͡����ѿ����
�е�ʱ����ܻ������������
� ࣬�
�� � � Ϊ�˼������ٱӴ���������Ҳ�Ǻ���ģ�
���Ҷ�������ڿԱ�˵��sql���ı�д�Ѷ�Ҳ�ή�͡�
���Ե�ʱ�����仰˵�ϣ���Ͳ�����Ϊ���dz����Ա�ˣ�