インデックスの作成と使用
3951 ワード
。 , , , 。 , 。
MySQL :
(1)
, 。 :
◆
CREATE INDEX indexName ON mytable(username(length));
CHAR,VARCHAR ,length ; BLOB TEXT , length, 。
◆
ALTER mytable ADD INDEX [indexName] ON (username(length))
◆
CREATE TABLE mytable( ID INT NOT NULL, username VARCHAR(16) NOT NULL, INDEX [indexName] (username(length)) );
:
DROP INDEX [indexName] ON mytable;
(2)
, : , 。 , 。 :
◆
CREATE UNIQUE INDEX indexName ON mytable(username(length))
◆
ALTER mytable ADD UNIQUE [indexName] ON (username(length))
◆
CREATE TABLE mytable( ID INT NOT NULL, username VARCHAR(16) NOT NULL, UNIQUE [indexName] (username(length)) );
(3)
, 。 :
CREATE TABLE mytable( ID INT NOT NULL, username VARCHAR(16) NOT NULL, PRIMARY KEY(ID) );
ALTER 。 : 。
(4)
, :
CREATE TABLE mytable( ID INT NOT NULL, username VARCHAR(16) NOT NULL, city VARCHAR(50) NOT NULL, age INT NOT NULL );
MySQL , 。 name, city, age :
ALTER TABLE mytable ADD INDEX name_city_age (name(10),city,age);
,usernname 16, 10。 10, , , INSERT 。
usernname,city,age , 3 , , 。 , MySQL 。
, :
usernname,city,age usernname,city usernname
city,age ? MySQL “ ” 。 。 , SQL :
SELECT * FROM mytable WHREE username="admin" AND city=" " SELECT * FROM mytable WHREE username="admin"
:
SELECT * FROM mytable WHREE age=20 AND city=" " SELECT * FROM mytable WHREE city=" "
(5)
, ? , WHERE JOIN , , MySQL <,<=,=,>,>=,BETWEEN,IN, LIKE
。 :
SELECT t.Name FROM mytable t LEFT JOIN mytable m ON t.Name=m.username WHERE m.age=20 AND m.city=' '
city age , mytable userame JOIN , 。
LIKE 。 % _ ,MySQL 。 :
SELECT * FROM mytable WHERE username like'admin%'
:
SELECT * FROM mytable WHEREt Name like'%admin'
, LIKE 。
(6)
, 。 :
◆ , , INSERT、UPDATE DELETE。 ,MySQL , 。
◆ 。 , , 。
, MySQL , , 。
(7)
, :
◆ NULL
NULL , NULL , 。 NULL。
◆
, 。 , CHAR(255) , 10 20 , , 。 I/O 。
◆
MySQL , where , order by 。 ; , 。
◆like
like , , 。like “%aaa%” like “aaa%” 。
◆
select * from users where YEAR(adddate)<2007;
, ,
select * from users where adddate<‘2007-01-01’;
◆ NOT IN <>