【正文】
,即可在name字段上建立一個(gè)名稱為single_name的單列索引,并且索引的長(zhǎng)度為20。因此,在建立全文索引時(shí),一定要注意表存儲(chǔ)引擎的類型,對(duì)于經(jīng)常需要索引的字符串、文字?jǐn)?shù)據(jù)等信息,可以考慮存儲(chǔ)到MyISAM存儲(chǔ)引擎的表中。這樣,即可在name字段上建立一個(gè)名為fulltext_name的全文索引。name varchar(20)not null, score float, unique index unique_id(id asc)這樣,便在id字段上建立了一個(gè)名為unique_id的唯一性索引。index(id)可使用explain語(yǔ)句查看索引是否被使用,SQL語(yǔ)句如下:explain select * from t1 where id = 1。asc表升序,desc表降序排列。7)長(zhǎng)度:可選參數(shù),用于表示索引的長(zhǎng)度。5)別名:可選參數(shù),表示穿件的索引名稱。2)fulltext:可選參數(shù),表示全文索引。創(chuàng)建表的同時(shí)創(chuàng)建索引創(chuàng)建表的時(shí)候可以直接創(chuàng)建索引,這種方式最簡(jiǎn)單、方便,其基本語(yǔ)法格式如下所示:create table 表名(字段名數(shù)據(jù)類型 [完整性約束條件],字段名數(shù)據(jù)類型 [完整性約束條件], ??)。創(chuàng)建索引要想使用索引提高數(shù)據(jù)表的訪問(wèn)速度,首先要?jiǎng)?chuàng)建一個(gè)索引。并且創(chuàng)建和維護(hù)索引所消耗的時(shí)間,是隨著數(shù)據(jù)量的增加而增加的。需要注意的是,創(chuàng)建空間索引的字段,必須將其聲明為NOT NULL,并且空間索引只能在存儲(chǔ)引擎為MyISAM的表中創(chuàng)建??臻g索引是由spatial定義的索引,它只能創(chuàng)建在空間數(shù)據(jù)類型的字段上。如,在student表的id、name和score字段上創(chuàng)建一個(gè)多列索引,那么只有查詢條件中使用了id字段時(shí),該索引才會(huì)被使用。單列索引指的是在表中單個(gè)字段上創(chuàng)建索引,它可以是普通索引、唯一索引或者全文索引,只有保證該索引只對(duì)應(yīng)表中一個(gè)字段即可。全文索引是由fulltext定義的索引,它只能創(chuàng)建在char、varchar或text類型的字段上。唯一性索引是指由unique定義個(gè)索引,該索引所在字段的值必須是唯一的。其值是否唯一和非空有字段本身的約束條件所決定。MySQL中的索引分為很多種,具體如下。為此,MySQL允許建立索引來(lái)加快數(shù)據(jù)表的查詢和排序。)第四篇:黑馬程序員C語(yǔ)言教程:mysql中的索引MySQL數(shù)據(jù)庫(kù)中的索引在數(shù)據(jù)庫(kù)操作中,經(jīng)常需要查找特定的數(shù)據(jù),例如:當(dāng)執(zhí)行“select * from student where id = 10000”語(yǔ)句時(shí),MySQL數(shù)據(jù)庫(kù)必須從第一條記錄開(kāi)始遍歷,直到找到id為10000的數(shù)據(jù)。,2,39。),返回?cái)?shù)字的函數(shù)instr(c1,c2)字符c2出現(xiàn)在c1的位置, 不出現(xiàn), 返回0, 常用于模糊查詢length 按數(shù)據(jù)庫(kù)的字符集,算出字符c的長(zhǎng)度,跟數(shù)據(jù)庫(kù)的字符集有關(guān), 一個(gè)漢字長(zhǎng)度為1 (EXPR1, EXPR2)函數(shù) 解釋: IF EXPR1=NULL RETURN EXPR2 ELSE RETURN EXPR1 DECODE(AA0V10R10V20R2....)函數(shù) 解釋: IF AA=V1 THEN RETURN R1 IF AA=V2 THEN RETURN R2..? ELSE RETURN NULL 舉例: decode(id,1,39。)EEEE 用指數(shù)方式表示 to_char(1200,39。)PR 括起來(lái)的負(fù)數(shù) to_char(1200,39。)B 把數(shù)字0顯示為空格,用在數(shù)字顯示格式的右邊 MI 右邊的負(fù)數(shù)標(biāo)記 to_char(1200,39。).小數(shù)點(diǎn)的位置 , 標(biāo)記位置的逗號(hào) 用在數(shù)字顯示格式的左邊L 根據(jù)數(shù)據(jù)庫(kù)字符集加貨幣符號(hào) to_char(1200,39。它的作用順序如下: initialization parameter Environment variable ALTER SESSION mand (4)to_char(number)里數(shù)字顯示格式 9 數(shù)字位0 數(shù)字前面補(bǔ)0 to_char(1200,39。)TO_LOB 把long字段轉(zhuǎn)換成lob字段TO_NUMBER(char)用于計(jì)算或者比較大小 (2)to_date里日期顯示格式 YYYY 年 YEAR YYY YY Y Q 季度MM 月 MONTH MON W 星期(week of month)WW, IW(week of year)(說(shuō)明:周計(jì)是按ISO標(biāo)準(zhǔn),從1月1日的星期數(shù)到后面七天為一周,不一定是從周一到周日)DD 日 DAY DY HH24 小時(shí) HH12 HH MI 分鐘 SS 秒NLS_DATE_FORMAT=yyyymmdd hh24:mi:ss可以在UNIX環(huán)境變量或者NT的注冊(cè)表里的設(shè)置 NLS_DATE_FORMAT=yyyymmdd 7J2EE zxw hh24:mi:ss (3)如果想固定日期的顯示格式可以用alter session命令改變SQL alter session set nls_date_format=39。)TO_CHAR(number)用于顯示或報(bào)表的格式對(duì)齊 TO_DATE(char,39。)是年的第一天TRUNC(n,m)按m的位數(shù)取小數(shù)點(diǎn)后的數(shù)值如果trunc(日期), 確省的是去掉時(shí)間J2EE zxw CHR 按數(shù)據(jù)庫(kù)的字符集由數(shù)字返回字符CONCAT(c1,c2)把兩個(gè)字符c1,c2組合成一個(gè)字符, 和 || 相同 REPLACE(c,s,r)把字符c里出現(xiàn)s的字符替換成r, 返回新字符SUBSTR(c,m,n)m大于0,字符c從前面m處開(kāi)始取n位字符,m等于0和1一樣, m小與0,字符c從后面m處開(kāi)始取n位字符TRANSLATE(c,f1,t1)字符c按f1到t1的規(guī)則轉(zhuǎn)換成新的字符串 INITCAP 字符首字母大寫(xiě),其它字符小寫(xiě) LOWER 字符全部小寫(xiě) UPPER 字符全部大寫(xiě)LTRIM(c1,c2)去掉字符c1左邊出現(xiàn)的字符c2 RTRIM(c1,c2)TRIM(c1,c2)去掉字符c1左右兩邊的字符c2 LPAD(c1,n,c2)字符c1按制定的位數(shù)n顯示不足的位數(shù)用c2字符串替換左邊的空位 RPAD(c1,n,c2)ADD_MONTHS(d,n)日期值加n月LAST_DAY 返回當(dāng)月的最后一天的日期MONTHS_BETWEEN(d1,d2)兩個(gè)日期值間的月份,d1DUAL是SYS用戶下一個(gè)空表,它只有一個(gè)字段dummy (1)TO_CHAR(date,39。)and日期字段三、單行函數(shù) ABS 取絕對(duì)值 POWER 乘方 LN 10為底數(shù)取0 SQRT平方根 EXP e的n次乘方 LOG(m,n)m為底數(shù)n取0 數(shù)學(xué)運(yùn)算函數(shù):ACOS ATAN ATAN2 COS COSH SIGN SIN SINH TAN TANH CEIL 大于或等于取整數(shù) FLOOR 小于或等于取整數(shù) MOD 取余數(shù)ROUND(n,m)按m的位數(shù)取四舍五入值如果round(日期): (sysdate,39。,39。)日期字段 to_date(39。,39。)and to_date(39。,39。 舉例: 日期字段 between to_date(39。 escape 39。 如果要找含下劃線的字符, 要加反斜線 例如:字段名 like 39。 字段名 like 39。 字段名 like 39。(1)比較操作符 = = ^= 與NULL比較不能用上面的比較操作符 ANY SOME ALL SQL操作符 BETWEEN ? AND? IN LIKE IS NULL NOT BETWEEN ? AND? NOT IN NOT LIKE IS NOT NULL 邏輯操作符 AND OR NOT (2)比較順序(可以用括號(hào)改變它們的順序)(1).= = % 零到任意多個(gè)字符 _ 一個(gè)字符例如: 字段名 like 39。 (T/F)(1).SQL mand are always held in sql buffer.[T](2).SQL*PLUS mand assit with query data.[T] 5J2EE zxw SQL*、限制選擇行SELECT expr FROM table [ORDER BY {column, expr} [ASC | DESC] ]。說(shuō)明:如果start_date為null, 顯示字符串39。SQL column start_date format a10 null 39。 format a15。*PLUS里規(guī)定字段的顯示格式例子SQL column last_name heading 39。查詢時(shí)不顯示字段名稱 規(guī)定字段的對(duì)齊方向SQL column 字段名 justify [left | right | center]。字段名顯示內(nèi)容39。規(guī)定long字符的顯示寬度 SQLset long 200。SQLcolumn 字段名 format 999,999,999,999。設(shè)定SQL語(yǔ)句返回結(jié)果集一頁(yè)的行數(shù)100, 默認(rèn)值是14 SQL set linesize 100。查看用戶下所有的表SQL set pause on。)返回?cái)?shù)字 NVL(salary,1000)*PLUS(1)SQL desc table。)返回字符串 NVL(title,39。 NVL函數(shù)可把NULL轉(zhuǎn)換成其它類型的符號(hào)編程技巧: NVL函數(shù)在多條件模糊查詢的時(shí)候比較有用 NVL函數(shù)可返回多種數(shù)據(jù)類型: 返回日期 NVL(start_date,39。字段名1 解釋39。 15J2EE zxw SQL CREATE TABLE s_emp(id NUMBER(7)CONSTRAINT s_emp_id_pk PRIMARY KEY, last_name VARCHAR2(25)CONSTRAINT s_emp_last_name_nn NOT NULL,first_name VARCHAR2(25), userid VARCHAR2 CONSTRAINT s_emp_userid_nn NOT N