create table cdat
成都創(chuàng)新互聯(lián)專注于企業(yè)全網(wǎng)營銷推廣、網(wǎng)站重做改版、巴青網(wǎng)站定制設(shè)計、自適應(yīng)品牌網(wǎng)站建設(shè)、H5頁面制作、商城網(wǎng)站建設(shè)、集團公司官網(wǎng)建設(shè)、外貿(mào)網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計等建站業(yè)務(wù),價格優(yōu)惠性價比高,為巴青等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。
(
localt char(20) not null,
cd char(5) not null,
snosat char(2) not null,
rnorec char(3) not null,
id INT(20) not null AUTO_INCREMENT,
primary key (id)
);
MySQL是一個開放源碼的小型關(guān)聯(lián)式數(shù)據(jù)庫管理系統(tǒng),開發(fā)者為瑞典MySQL AB公司。目前MySQL被廣泛地應(yīng)用在Internet上的中小型網(wǎng)站中。由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點,許多中小型網(wǎng)站為了降低網(wǎng)站總體擁有成本而選擇了MySQL作為網(wǎng)站數(shù)據(jù)庫。
系統(tǒng)特性
1.使用C和C++編寫,并使用了多種編譯器進行測試,保證源代碼的可移植性
2.支持AIX、FreeBSD、HP-UX、Linux、Mac OS、NovellNetware、OpenBSD、OS/2 Wrap、Solaris、Windows等多種操作系統(tǒng)
3.為多種編程語言提供了API。這些編程語言包括C、C++、Python、Java、Perl、PHP、Eiffel、Ruby和Tcl等。
4.支持多線程,充分利用CPU資源
5.優(yōu)化的SQL查詢算法,有效地提高查詢速度
6.既能夠作為一個單獨的應(yīng)用程序應(yīng)用在客戶端服務(wù)器網(wǎng)絡(luò)環(huán)境中,也能夠作為一個庫而嵌入到其他的軟件中。
7.提供多語言支持,常見的編碼如中文的GB 2312、BIG5,日文的Shift_JIS等都可以用作數(shù)據(jù)表名和數(shù)據(jù)列名。
8.提供TCP/IP、ODBC和JDBC等多種數(shù)據(jù)庫連接途徑。
9.提供用于管理、檢查、優(yōu)化數(shù)據(jù)庫操作的管理工具。
10.支持大型的數(shù)據(jù)庫??梢蕴幚頁碛猩锨f條記錄的大型數(shù)據(jù)庫。
11.支持多種存儲引擎。
索引功能
索引是一種特殊的文件(InnoDB數(shù)據(jù)表上的索引是表空間的一個組成部分),它們包含著對數(shù)據(jù)表里所有記錄的引用指針。索引不是萬能的,索引可以加快數(shù)據(jù)檢索操作,但會使數(shù)據(jù)修改操作變慢。每修改數(shù)據(jù)記錄,索引就必須刷新一次。為了在某種程序上彌補這一缺陷,許多SQL命令都有一個DELAY_KEY_WRITE項。這個選項的作用是暫時制止MySQL在該命令每插入一條新記錄和每修改一條現(xiàn)有之后立刻對索引進行刷新,對索引的刷新將等到全部記錄插入/修改完畢之后再進行。在需要把許多新記錄插入某個數(shù)據(jù)表的場合,DELAY_KEY_WRITE選項的作用將非常明顯。另外,索引還會在硬盤上占用相當大的空間。因此應(yīng)該只為最經(jīng)常查詢和最經(jīng)常排序的數(shù)據(jù)列建立索引。注意,如果某個數(shù)據(jù)列包含許多重復(fù)的內(nèi)容,為它建立索引就沒有太大的實際效果。從理論上講,完全可以為數(shù)據(jù)表里的每個字段分別建一個索引,但MySQL把同一個數(shù)據(jù)表里的索引總數(shù)限制為16個。
1.InnoDB數(shù)據(jù)表的索引
與InnoDB數(shù)據(jù)表相比,在InnoDB數(shù)據(jù)表上,索引對InnoDB數(shù)據(jù)表的重要性要大得多。在InnoDB數(shù)據(jù)表上,索引不僅會在搜索數(shù)據(jù)記錄時發(fā)揮作用,還是數(shù)據(jù)行級鎖定機制的苊、基礎(chǔ)?!皵?shù)據(jù)行級鎖定”的意思是指在事務(wù)操作的執(zhí)行過程中鎖定正在被處理的個別記錄,不讓其他用戶進行訪問。這種鎖定將影響到(但不限于)SELECT、LOCKINSHAREMODE、SELECT、FORUPDATE命令以及INSERT、UPDATE和DELETE命令。出于效率方面的考慮,InnoDB數(shù)據(jù)表的數(shù)據(jù)行級鎖定實際發(fā)生在它們的索引上,而不是數(shù)據(jù)表自身上。顯然,數(shù)據(jù)行級鎖定機制只有在有關(guān)的數(shù)據(jù)表有一個合適的索引可供鎖定的時候才能發(fā)揮效力。
2.限制
如果WHERE子句的查詢條件里有不等號(WHEREcoloum!=),MySQL將無法使用索引。類似地,如果WHERE子句的查詢條件里使用了函數(shù)(WHEREDAY(column)=),MySQL也將無法使用索引。在JOIN操作中(需要從多個數(shù)據(jù)表提取數(shù)據(jù)時),MySQL只有在主鍵和外鍵的數(shù)據(jù)類型相同時才能使用索引。
如果WHERE子句的查詢條件里使用比較操作符LIKE和REGEXP,MySQL只有在搜索模板的第一個字符不是通配符的情況下才能使用索引。比如說,如果查詢條件是LIKE'abc%‘,MySQL將使用索引;如果查詢條件是LIKE'%abc’,MySQL將不使用索引。
在ORDERBY操作中,MySQL只有在排序條件不是一個查詢條件表達式的情況下才使用索引。(雖然如此,在涉及多個數(shù)據(jù)表查詢里,即使有索引可用,那些索引在加快ORDERBY方面也沒什么作用)。如果某個數(shù)據(jù)列里包含許多重復(fù)的值,就算為它建立了索引也不會有很好的效果。比如說,如果某個數(shù)據(jù)列里包含的凈是些諸如“0/1”或“Y/N”等值,就沒有必要為它創(chuàng)建一個索引。
alter table questionlib modify id?int(11) auto_increment;
注意事項:
修改后從下一條記錄開始自動增長。如果想讓原來的自動增長就得復(fù)制現(xiàn)有表的結(jié)構(gòu)(無id),添加id并加上AUTO_INCREMENT,然后通過循環(huán),添加n條空記錄,然后對應(yīng)先前表的id,依次插入數(shù)據(jù)。
擴展資料:
mysql自動增長開始值設(shè)置總結(jié)
1、創(chuàng)建表,設(shè)置表主鍵id自動增長,默認自動增長的起始值為1開始。
2、當表數(shù)據(jù)不為空的時候,重新去修改自動增長id開始值,mysql會主動去核對你設(shè)置的起始值是否是當前數(shù)據(jù)庫已有id的最大值+1; 若是則修改成功,若不是則修改不成功 (默認還是id最大值+1)
3、要設(shè)置自動增長為1開始,需要清空表數(shù)據(jù)才行。alter table table_name AUTO_INCREMENT=1
4、若每次直接在數(shù)據(jù)庫里面插入數(shù)據(jù),則會自動的去修改當前表的自動增長起始值(設(shè)置自動增長起始值為當前插入成功的數(shù)據(jù)的id)
如何在MYSQL插數(shù)據(jù)ID自增的方法。
如下參考:
1.在添加字段之前,第一個應(yīng)該首先檢查當前tb1表的結(jié)構(gòu),如下圖所示。
2.實例字段列添加到表,如下所示。
3.再次看表結(jié)構(gòu)和比較之前和之后的情況添加字段,如下圖所示。
4.最后,插入新的數(shù)據(jù)行看到的樣子,最后添加自動增長的字段,如下所示。
注意事項:
MySQL使用的SQL語言是訪問數(shù)據(jù)庫最常用的標準語言。MySQL軟件采用雙重許可政策,分為社區(qū)版,商業(yè)版,由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特性,一般中小網(wǎng)站開發(fā)選擇MySQL作為數(shù)據(jù)庫。
設(shè)置自增列
MYSQL的自增列一定要是有索引的列,設(shè)置種子值要在表的后面設(shè)置
--mysql
-- 設(shè)置自增ID從N開始
CREATE TABLE empautoinc(
ID INT PRIMARY KEY AUTO_INCREMENT
) AUTO_INCREMENT = 100 ; --(設(shè)置自增ID從100開始)
insert into empautoinc(id) values(null);
Query OK, 1 row affected (0.00 sec)
mysql select * from empautoinc;
+-----+
| ID |
+-----+
| 100 |
+-----+
1 row in set (0.00 sec)
show table status like 'empautoinc'G;
*************************** 1. row ***************************
Name: empautoinc
Engine: InnoDB
Version: 10
Row_format: Compact
Rows: 1
Avg_row_length: 16384
Data_length: 16384
Max_data_length: 0
Index_length: 0
Data_free: 0
Auto_increment: 101
Create_time: 2016-10-27 01:50:32
Update_time: NULL
Check_time: NULL
Collation: utf8_general_ci
Checksum: NULL
Create_options:
Comment:
1 row in set (0.00 sec)
設(shè)置自增列的步長,可以分為全局級別和會話級別
如果是會話級別,那么當用戶新建一個會話的時候,那么步長又回到了全局級別,所以mysql的步長跟sqlserver的步長有很大的不同
mysql不能設(shè)置為 表級別 的步長
私信666領(lǐng)取資料
1、如果是已經(jīng)建好的表:
id列自增的話,先給id列加索引
alter table 表名 add index id(id);
再設(shè)置自增屬性:
alter table modify id int auto_increment;
2、如果是未建立的表,直接建立的時候設(shè)置就好.給了id主鍵
create table t(id int not null primary key auto_increment)
以插入語句的方法來解決此問題。
如下參考:
1.在添加字段之前,第一個zd應(yīng)該首先檢查tb1表的當前結(jié)構(gòu)。
2.將字段列instance添加到表中,如下圖。
3.再次查看表結(jié)構(gòu),比較添加字段之前和之后的情況。
4.最后,插入新的數(shù)據(jù)行,看看它是什么樣子,最后就加入了自動增長字段如下圖。
注意事項:
MySQL使用的SQL語言是訪問數(shù)據(jù)庫最常用的標準化語言。MySQL軟件采用雙重許可政策,分為社區(qū)版和商業(yè)版,由于其體積小,速度快,整體擁有成本低,尤其是開源這一特點,一般中小型網(wǎng)站開發(fā)都選擇MySQL作為網(wǎng)站數(shù)據(jù)庫。