程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> MYSQL的常用命令和增刪改查語句和數據類型,mysql常用命令

MYSQL的常用命令和增刪改查語句和數據類型,mysql常用命令

編輯:MySQL綜合教程

MYSQL的常用命令和增刪改查語句和數據類型,mysql常用命令


連接命令:<a href="http://lib.csdn.net/base/mysql" class='replace_word' title="MySQL知識庫" target='_blank' style='color:#df3434; font-weight:bold;'>MySQL</a> -h[主機地址] -u[用戶名] -p[用戶密碼]
創建<a href="http://lib.csdn.net/base/mysql" class='replace_word' title="MySQL知識庫" target='_blank' style='color:#df3434; font-weight:bold;'>數據庫</a>:create database [庫名]
顯示所有數據庫: show databases;
打開數據庫:use [庫名]
當前選擇的庫狀態:SELECT DATABASE();
創建數據表:CREATE TABLE [表名]([字段名] [字段類型]([字段要求]) [字段參數], ......);
顯示數據表字段:describe 表名;
當前庫數據表結構:show tables;
更改表格 
ALTER TABLE [表名] ADD COLUMN [字段名] DATATYPE
說明:增加一個欄位(沒有刪除某個欄位的語法。
ALTER TABLE [表名] ADD PRIMARY KEY ([字段名])
說明:更改表得的定義把某個欄位設為主鍵。
ALTER TABLE [表名] DROP PRIMARY KEY ([字段名])
說明:把主鍵的定義刪除。
顯示當前表字段:show columns from tablename;
刪庫:drop database [庫名];
刪表:drop table [表名];
數據操作
添加:INSERT INTO [表名] VALUES('','',......順序排列的數據);
查詢: SELECT * FROM [表名] WHERE ([條件]);
建立索引:CREATE INDEX [索引文件名] ON [表名] ([字段名]);
刪除:DELETE FROM [表名] WHERE ([條件]);
修改:UPDATE [表名] SET [修改內容如name = 'Mary'] WHERE [條件];

導入外部數據文本:
1.執行外部的sql腳本
當前數據庫上執行:mysql < input.sql
指定數據庫上執行:mysql [表名] < input.sql
2.數據傳入命令 load data local infile "[文件名]" into table [表名];
備份數據庫:(dos下)
mysqldump --opt school>school.bbb



提示:常用MySQL命令以";"結束,有少量特殊命令不能加";"結束,如備份數據庫
一. 增刪改查操作

=================================================================================
1. 增:
insert into 表名 values(0,'<a href="http://lib.csdn.net/base/softwaretest" class='replace_word' title="軟件測試知識庫" target='_blank' style='color:#df3434; font-weight:bold;'>測試</a>');
注:如上語句,表結構中有自動增長的列,也必須為其指定一個值,通常為0
insert into 表名(id,name) values(0,'尹當')--同上
2.刪數據:
delete from 表名;
delete from 表名 where id=1;
刪除結構:
刪數據庫:drop database 數據庫名;
刪除表:drop table 表名;
刪除表中的列:alter table 表名 drop column 列名;
3. 改:
修改所有:updata 表名 set 列名='新的值,非數字加單引號' ;
帶條件的修改:updata 表名 set 列名='新的值,非數字加單引號' where id=6;
4.查:
查詢所有的數據:select *from 表名;
帶條件的查詢:
select *from 表名 where 列名=條件值;
Select * from 表名 where 列名 not like(like) '字符值'
分頁查詢:select *from 表名 limit 每頁數量 offset 偏移量;



二.操作命令

=================================================================================
1. 查看數據庫信息:show databases;
2.查看表信息:show tables;
3.查看表的結構:desc 表名
4. 新建數據庫:create database 數據庫名;
5.操作指定數據庫:use 數據庫名;
6.新建數據表(先use 操作庫);
create table 表名(規范為tbl_表名)
(
id int auto_increment primary key,( auto_increment為自動增長)
name varchar(20) primary key
)ENGINE=InnoDB DEFAULT CHARSET=gbk//支持事務和設置表的編碼
6.2添加主外鍵:
alter table 外表名 add constraint FK_名稱 foreign key(外列) references 主表名(主列)
如現有兩表 主表tbl_order 子表tbl_orderdetail 現子表tbl_orderdetail的oid列引用了主表tbl_order的oid列
則命令如下:
alter table tbl_orderdetail add constraint FK_oid foreign key(oid) references tbl_order(oid)
7.導出表,備份到一個文件中,如.txt,.doc
cmd命令窗口:mysqldump -u 用戶名 -p 需要備份的數據庫名 >備份的文件的保存路徑和文件名
注:如指定的文件不存在,mysql會自動添加一個文件,此命令不能加分號結尾(文件沒有備份建數據庫操作)
8.導入數據庫備份文件:
(1).在mysql命令窗口
(2).新建一個要導入的數據庫(因為備份中沒有備份建數據庫操作)
(3).use 當前庫名
(4).source 備份的文件的保存路徑和文件名(此命令不能加分號結尾)


三:系統操作

=================================================================================
1. 打開服務:net start mysql(mysql為配置時,可自定名稱)
2.關閉服務:net stop mysql
3.從cmd 模式進入mysql
(1).mysql -u 用戶名 -p 回車>輸入正確密碼>進入歡迎
(2).mysql -h IP(本機localhost) -u 用戶名 -p 回車>輸入正確密碼>進入歡迎
3.退出:exit/quit;
4.修改用戶密碼:mysqladmin -u 用戶名 -p password 新密碼
5.處理中文亂碼:
(1).在D:/MySQL /MySQL Server 5.0/data的操作數據為文件中查看是否為以下:
default-character-set=gbk
default-collation=gbk_chinese_ci

(2).查看安裝文件默認編碼:D:/MySQL/MySQL Server 5.0>my>default-character-set=gbk

=================================================================================


啟動:net start mySql;
進入:mysql -u root -p/mysql -h localhost -u root -p databaseName;
列出數據庫:show databases;
選擇數據庫:use databaseName;
列出表格:show tables;
顯示表格列的屬性:show columns from tableName;
建立數據庫:source fileName.txt;
匹配字符:可以用通配符_代表任何一個字符,%代表任何字符串;
增加一個字段:alter table tabelName add column fieldName dateType;
增加多個字段:alter table tabelName add column fieldName1 dateType,add columns fieldName2 dateType;
多行命令輸入:注意不能將單詞斷開;當插入或更改數據時,不能將字段的字符串展開到多行裡,否則硬回車將被儲存到數據中;
增加一個管理員帳戶:grant all on *.* to user@localhost identified by "password";
每條語句輸入完畢後要在末尾填加分號';',或者填加'/g'也可以;
查詢時間:select now();
查詢當前用戶:select user();
查詢數據庫版本:select version();
查詢當前使用的數據庫:select database();

1、刪除student_course數據庫中的students數據表:
rm -f student_course/students.*

2、備份數據庫:(將數據庫test備份)
mysqldump -u root -p test>c:/test.txt
備份表格:(備份test數據庫下的mytable表格)
mysqldump -u root -p test mytable>c:/test.txt
將備份數據導入到數據庫:(導回test數據庫)
mysql -u root -p test

3、創建臨時表:(建立臨時表zengchao)
create temporary table zengchao(name varchar(10));

4、創建表是先判斷表是否存在
create table if not exists students(……);

5、從已經有的表中復制表的結構
create table table2 select * from table1 where 1<>1;

6、復制表
create table table2 select * from table1;

7、對表重新命名
alter table table1 rename as table2;

8、修改列的類型
alter table table1 modify id int unsigned;//修改列id的類型為int unsigned
alter table table1 change id sid int unsigned;//修改列id的名字為sid,而且把屬性修改為int unsigned

9、創建索引
alter table table1 add index ind_id (id);
create index ind_id on table1 (id);
create unique index ind_id on table1 (id);//建立唯一性索引

10、刪除索引
drop index idx_id on table1;
alter table table1 drop index ind_id;

11、聯合字符或者多個列(將列id與":"和列name和"="連接)
select concat(id,':',name,'=') from students;

12、limit(選出10到20條)<第一個記錄集的編號是0>
select * from students order by id limit 9,10;

13、MySQL不支持的功能
事務,視圖,外鍵和引用完整性,存儲過程和觸發器


14、MySQL會使用索引的操作符號
<,<=,>=,>,=,between,in,不帶%或者_開頭的like

15、使用索引的缺點
1)減慢增刪改數據的速度;
2)占用磁盤空間;
3)增加查詢優化器的負擔;
當查詢優化器生成執行計劃時,會考慮索引,太多的索引會給查詢優化器增加工作量,導致無法選擇最優的查詢方案;

16、分析索引效率
方法:在一般的SQL語句前加上explain;
分析結果的含義:
1)table:表名;
2)type:連接的類型,(ALL/Range/Ref)。其中ref是最理想的;
3)possible_keys:查詢可以利用的索引名;
4)key:實際使用的索引;
5)key_len:索引中被使用部分的長度(字節);
6)ref:顯示列名字或者"const"(不明白什麼意思);
7)rows:顯示MySQL認為在找到正確結果之前必須掃描的行數;
8)extra:MySQL的建議;

17、使用較短的定長列
1)盡可能使用較短的數據類型;
2)盡可能使用定長數據類型;
a)用char代替varchar,固定長度的數據處理比變長的快些;
b)對於頻繁修改的表,磁盤容易形成碎片,從而影響數據庫的整體性能;
c)萬一出現數據表崩潰,使用固定長度數據行的表更容易重新構造。使用固定長度的數據行,每個記錄的開始位置都是固定記錄長度的倍數,可以很容易被檢測到,但是使用可變長度的數據行就不一定了;
d)對於MyISAM類型的數據表,雖然轉換成固定長度的數據列可以提高性能,但是占據的空間也大;

18、使用not null和enum
盡量將列定義為not null,這樣可使數據的出來更快,所需的空間更少,而且在查詢時,MySQL不需要檢查是否存在特例,即null值,從而優化查詢;
如果一列只含有有限數目的特定值,如性別,是否有效或者入學年份等,在這種情況下應該考慮將其轉換為enum列的值,MySQL處理的更快,因為所有的enum值在系統內都是以標識數值來表示的;

19、使用optimize table
對於經常修改的表,容易產生碎片,使在查詢數據庫時必須讀取更多的磁盤塊,降低查詢性能。具有可變長的表都存在磁盤碎片問題,這個問題對blob數據類型更為突出,因為其尺寸變化非常大。可以通過使用optimize table來整理碎片,保證數據庫性能不下降,優化那些受碎片影響的數據表。 optimize table可以用於MyISAM和BDB類型的數據表。實際上任何碎片整理方法都是用mysqldump來轉存數據表,然後使用轉存後的文件並重新建數據表;

20、使用procedure analyse()
可以使用procedure analyse()顯示最佳類型的建議,使用很簡單,在select語句後面加上procedure analyse()就可以了;例如:
select * from students procedure analyse();
select * from students procedure analyse(16,256);
第二條語句要求procedure analyse()不要建議含有多於16個值,或者含有多於256字節的enum類型,如果沒有限制,輸出可能會很長;

21、使用查詢緩存
1)查詢緩存的工作方式:
第一次執行某條select語句時,服務器記住該查詢的文本內容和查詢結果,存儲在緩存中,下次碰到這個語句時,直接從緩存中返回結果;當更新數據表後,該數據表的任何緩存查詢都變成無效的,並且會被丟棄。
2)配置緩存參數:
變量:query_cache _type,查詢緩存的操作模式。有3中模式,0:不緩存;1:緩存查詢,除非與 select sql_no_cache開頭;2:根據需要只緩存那些以select sql_cache開頭的查詢; query_cache_size:設置查詢緩存的最大結果集的大小,比這個值大的不會被緩存。

22、調整硬件
1)在機器上裝更多的內存;
2)增加更快的硬盤以減少I/O等待時間;
尋道時間是決定性能的主要因素,逐字地移動磁頭是最慢的,一旦磁頭定位,從磁道讀則很快;
3)在不同的物理硬盤設備上重新分配磁盤活動;
如果可能,應將最繁忙的數據庫存放在不同的物理設備上,這跟使用同一物理設備的不同分區是不同的,因為它們將爭用相同的物理資源(磁頭)。







一、連接MYSQL。

格式: mysql -h主機地址 -u用戶名 -p用戶密碼

1、例1:連接到本機上的MYSQL。

首先在打開DOS窗口,然後進入目錄 mysqlbin,再鍵入命令mysql -uroot -p,回車後提示你輸密碼,如果剛安裝好MYSQL,超級用戶root是沒有密碼的,故直接回車即可進入到MYSQL中了,MYSQL的提示符是:mysql>

2、例2:連接到遠程主機上的MYSQL。假設遠程主機的IP為:110.110.110.110,用戶名為 root,密碼為abcd123。則鍵入以下命令:

mysql -h110.110.110.110 -uroot -pabcd123

(注:u與root可以不用加空格,其它也一樣)

3、退出MYSQL命令: exit (回車)

二、修改密碼。

格式:mysqladmin -u用戶名 -p舊密碼 password 新密碼

1、例1:給root加個密碼ab12。首先在DOS下進入目錄mysqlbin,然後鍵入以下命令

mysqladmin -uroot -password ab12

注:因為開始時root沒有密碼,所以-p舊密碼一項就可以省略了。

2、例2:再將root的密碼改為djg345。

mysqladmin -uroot -pab12 password djg345

三、增加新用戶。(注意:和上面不同,下面的因為是MYSQL環境中的命令,所以後面都帶一個分號作為命令結束符)

格式:grant select on 數據庫.* to 用戶名@登錄主機 identified by /"密碼/"

例1、增加一個用戶test1密碼為abc,讓他可以在任何主機上登錄,並對所有數據庫有查詢、插入、修改、刪除的權限。首先用以root用戶連入MYSQL,然後鍵入以下命令:

grant select,insert,update,delete on *.* to test1@/"%/" Identified by /"abc/";

但例1增加的用戶是十分危險的,你想如某個人知道test1的密碼,那麼他就可以在internet上的任何一台電腦上登錄你的mysql數據庫並對你的數據可以為所欲為了,解決辦法見例2。

例 2、增加一個用戶test2密碼為abc,讓他只可以在localhost上登錄,並可以對數據庫mydb進行查詢、插入、修改、刪除的操作(localhost指本地主機,即MYSQL數據庫所在的那台主機),這樣用戶即使用知道test2的密碼,他也無法從 internet上直接訪問數據庫,只能通過MYSQL主機上的web頁來訪問了。

grant select,insert,update,delete on mydb.* to test2@localhost identified by /"abc/";

如果你不想test2有密碼,可以再打一個命令將密碼消掉。

grant select,insert,update,delete on mydb.* to test2@localhost identified by /"/";

在上篇我們講了登錄、增加用戶、密碼更改等問題。下篇我們來看看MYSQL中有關數據庫方面的操作。注意:你必須首先登錄到MYSQL中,以下操作都是在MYSQL的提示符下進行的,而且每個命令以分號結束。

一、操作技巧

1、如果你打命令時,回車後發現忘記加分號,你無須重打一遍命令,只要打個分號回車就可以了。也就是說你可以把一個完整的命令分成幾行來打,完後用分號作結束標志就OK。

2、你可以使用光標上下鍵調出以前的命令。但以前我用過的一個MYSQL舊版本不支持。我現在用的是mysql- 3.23.27-beta-win。

二、顯示命令

1、顯示數據庫列表。

show databases;

剛開始時才兩個數據庫:mysql和test。mysql庫很重要它裡面有MYSQL的系統信息,我們改密碼和新增用戶,實際上就是用這個庫進行操作。

2、顯示庫中的數據表:

use mysql; //打開庫,學過FOXBASE的一定不會陌生吧

show tables;

3、顯示數據表的結構:

describe 表名;

4、建庫:

create database 庫名;

5、建表:

use 庫名;

create table 表名 (字段設定列表);

6、刪庫和刪表:

drop database 庫名;

drop table 表名;

7、將表中記錄清空:

delete from 表名;

8、顯示表中的記錄:

select * from 表名;

三、一個建庫和建表以及插入數據的實例

drop database if exists school; //如果存在SCHOOL則刪除

create database school; //建立庫SCHOOL

use school; //打開庫SCHOOL

create table teacher //建立表TEACHER

(

id int(3) auto_increment not null primary key,

name char(10) not null,

address varchar(50) default ’深圳’,

year date

); //建表結束

//以下為插入字段

insert into teacher values(’’,’glchengang’,’深圳一中’,’1976-10-10’);

insert into teacher values(’’,’jack’,’深圳一中’,’1975-12-23’);

注:在建表中(1)將ID設為長度為3的數字字段:int(3)並讓它每個記錄自動加一:auto_increment並不能為空:not null而且讓他成為主字段primary key(2)將NAME設為長度為10的字符字段(3)將ADDRESS設為長度50的字符字段,而且缺省值為深圳。varchar和char有什麼區別呢,只有等以後的文章再說了。(4)將YEAR設為日期字段。

如果你在mysql提示符鍵入上面的命令也可以,但不方便調試。你可以將以上命令原樣寫入一個文本文件中假設為 school.sql,然後復制到c://下,並在DOS狀態進入目錄//mysql//bin,然後鍵入以下命令:

mysql -uroot -p密碼 < c://school.sql

如果成功,空出一行無任何顯示;如有錯誤,會有提示。(以上命令已經調試,你只要將//的注釋去掉即可使用)。

四、將文本數據轉到數據庫中

1、文本數據應符合的格式:字段數據之間用tab鍵隔開,null值用//n來代替.

例:

3 rose 深圳二中 1976-10-10

4 mike 深圳一中 1975-12-23

2、數據傳入命令 load data local infile /"文件名/" into table 表名;

注意:你最好將文件復制到//mysql//bin目錄下,並且要先用use命令打表所在的庫。

五、備份數據庫:(命令在DOS的//mysql//bin目錄下執行)
mysqldump --opt school>school.bbb

注釋:將數據庫school備份到school.bbb文件,school.bbb是一個文本文件,文件名任取,打開看看你會有新發現。



mysql命令行常用命令

第一招、mysql服務的啟動和停止
net stop mysql
net start mysql
第二招、登陸mysql
語法如下: mysql -u用戶名 -p用戶密碼
鍵入命令mysql -uroot -p, 回車後提示你輸入密碼,輸入12345,然後回車即可進入到mysql中了,mysql的提示符是:
mysql>
注意,如果是連接到另外的機器上,則需要加入一個參數-h機器IP
第三招、增加新用戶
格式:grant 權限 on 數據庫.* to 用戶名@登錄主機 identified by "密碼"
如,增加一個用戶user1密碼為password1,讓其可以在本機上登錄, 並對所有數據庫有查詢、插入、修改、刪除的權限。首先用以root用戶連入mysql,然後鍵入以下命令:
grant select,insert,update,delete on *.* to user1@localhost Identified by "password1";
如果希望該用戶能夠在任何機器上登陸mysql,則將localhost改為"%"。
如果你不想user1有密碼,可以再打一個命令將密碼去掉。
grant select,insert,update,delete on mydb.* to user1@localhost identified by "";
第四招: 操作數據庫
登錄到mysql中,然後在mysql的提示符下運行下列命令,每個命令以分號結束。
1、 顯示數據庫列表。
show databases;
缺省有兩個數據庫:mysql和 test。 mysql庫存放著mysql的系統和用戶權限信息,我們改密碼和新增用戶,實際上就是對這個庫進行操作。
2、 顯示庫中的數據表:
use mysql;
show tables;
3、 顯示數據表的結構:
describe 表名;
4、 建庫與刪庫:
create database 庫名;
drop database 庫名;
5、 建表:
use 庫名;
create table 表名(字段列表);
drop table 表名;
6、 清空表中記錄:
delete from 表名;
7、 顯示表中的記錄:
select * from 表名;
第五招、導出和導入數據
1. 導出數據:
mysqldump --opt test > mysql.test
即將數據庫test數據庫導出到mysql.test文件,後者是一個文本文件
如:mysqldump -u root -p123456 --databases dbname > mysql.dbname
就是把數據庫dbname導出到文件mysql.dbname中。
2. 導入數據:
mysqlimport -u root -p123456 < mysql.dbname。
不用解釋了吧。
3. 將文本數據導入數據庫:
文本數據的字段數據之間用tab鍵隔開。
use test;
load data local infile "文件名" into table 表名;

SQL常用命令使用方法:

(1) 數據記錄篩選:

sql="select * from 數據表 where 字段名=字段值 order by 字段名 [desc]"

sql="select * from 數據表 where 字段名 like '%字段值%' order by 字段名 [desc]"

sql="select top 10 * from 數據表 where 字段名 order by 字段名 [desc]"

sql="select * from 數據表 where 字段名 in ('值1','值2','值3')"

sql="select * from 數據表 where 字段名 between 值1 and 值2"

(2) 更新數據記錄:

sql="update 數據表 set 字段名=字段值 where 條件表達式"

sql="update 數據表 set 字段1=值1,字段2=值2 …… 字段n=值n where 條件表達式"

(3) 刪除數據記錄:

sql="delete from 數據表 where 條件表達式"

sql="delete from 數據表" (將數據表所有記錄刪除)

(4) 添加數據記錄:

sql="insert into 數據表 (字段1,字段2,字段3 …) valuess (值1,值2,值3 …)"

sql="insert into 目標數據表 select * from 源數據表" (把源數據表的記錄添加到目標數據表)

(5) 數據記錄統計函數:

AVG(字段名) 得出一個表格欄平均值
COUNT(*|字段名) 對數據行數的統計或對某一欄有值的數據行數統計
MAX(字段名) 取得一個表格欄最大的值
MIN(字段名) 取得一個表格欄最小的值
SUM(字段名) 把數據欄的值相加

引用以上函數的方法:

sql="select sum(字段名) as 別名 from 數據表 where 條件表達式"
set rs=conn.excute(sql)

用 rs("別名") 獲取統的計值,其它函數運用同上。

(6) 數據表的建立和刪除:

CREATE TABLE 數據表名稱(字段1 類型1(長度),字段2 類型2(長度) …… )

例:CREATE TABLE tab01(name varchar(50),datetime default now())

DROP TABLE 數據表名稱 (永久性刪除一個數據表)



select * from test.text where 1 *表示所有欄目 test指數據庫名text指表名 where指條件
Select remark as r id,uid from test.text where 指id uid 2欄顯示 as 就是給欄目命名
select * from test.text where id>4 指ID大於4的都顯示出來
select * from test.text where id<>4 指ID 不等於4的都出來
select * from test.text where id=1 指ID等於1的出來
select * from test.text where id in(1,3,5) 指找出ID為1 3 5的 not in()則相反
select * from test.text where uid like "%王%" 指UID裡只要帶王字的都出來 %王 表示什麼王 ,王%表示 王什麼。
select * from test.text where remark like "%學%" 指remark裡帶學的都出來
select * from test.text where id between 1 and 10 and uid like "%王%"表示ID 1-10 並且 UID帶王字的出來
select * from test.text where id not between 1 and 4 指ID不在1-4裡面的 出來
(1 and 2 表示滿足1且滿足2 1 or 2 表示滿足1和滿足2 )and or可以連接很多條件
select * from test.text group by remark 顯示列出remark有多少類別 如圖↓ 有5類 group by 就是分組命令

select * from test.text order by regdate asc 把regdate 按從小到大排列
ASC不打就是默認從小到大 DESC表示從大到小 如 order desc
select * from test.text order by regdate asc,id desc 這樣就查詢出日期從小到大 然後在滿足日期的排列後 ID從大到小排列
select * from test.text limit 0,5 表示取5條記錄 如果是3,6 那就是第4-第9條記錄被取出 如圖↓
如過只寫一個6那就等於0,6
select * from test.text group by remark order by regdate limit 6 先分組 再排序 LIMIT放最後 這是語法不能顛倒。
select count(id) from test.text count()表示查詢有多少條信息 這樣根據表顯示出10條
select max(regdate) from test.text max() 查詢最大值 只能針對數字 包括日期 根據表顯示出2008-10-22 14:41:30
select min(regdate)from test.text min() 查詢最小值 只能針對數字 包括日期 根據表顯示出2008-10-07 13:21:32
select avg(id) from test.text avg() 查詢平均值 也只針對數字 包括日期 顯示出5.5 如算平均分數
select sum(id) from test.text sum() 查詢累計值 數字包括日期 顯示出55 1+2+3+。。10=55 如算總分數
insert 插入語句
insert into `text`(`id`,`uid`,`regdate`,`remark`)values(null,'ken',now(),'學生') 其中null就是沒有 now()就是時間日期自動生成
字段的類型要設計好。特別注意!




Update 更改語句
Update 表名 set 字段=值 where 條件 LIMIT(可省略)
update test.text set uid='kenchen' where id=11 意思是把ID是11的UID 改成kenchen

Delete 刪除語句
Delete from 表命 where limit
Delete from text where id=3 意思是把ID=3的信息條刪除!

mysql 字段類型說明- -


MySQL支持大量的列類型,它可以被分為3類:數字類型、日期和時間類型以及字符串(字符)類型。本節首先給出可用類型的一個概述,並且總結每個列類型的存儲需求,然後提供每個類中的類型性質的更詳細的描述。概述有意簡化,更詳細的說明應該考慮到有關特定列類型的附加信息,例如你能為其指定值的允許格式。

由MySQL支持的列類型列在下面。下列代碼字母用於描述中:

M
指出最大的顯示尺寸。最大的合法的顯示尺寸是 255 。
D
適用於浮點類型並且指出跟隨在十進制小數點後的數碼的數量。最大可能的值是30,但是應該不大於M-2。
方括號(“[”和“]”)指出可選的類型修飾符的部分。

注意,如果你指定一個了為ZEROFILL,MySQL將為該列自動地增加UNSIGNED屬性。

TINYINT[(M)] [UNSIGNED] [ZEROFILL]
一個很小的整數。有符號的范圍是-128到127,無符號的范圍是0到255。


SMALLINT[(M)] [UNSIGNED] [ZEROFILL]
一個小整數。有符號的范圍是-32768到32767,無符號的范圍是0到65535。

MEDIUMINT[(M)] [UNSIGNED] [ZEROFILL]
一個中等大小整數。有符號的范圍是-8388608到8388607,無符號的范圍是0到16777215。

INT[(M)] [UNSIGNED] [ZEROFILL]
一個正常大小整數。有符號的范圍是-2147483648到2147483647,無符號的范圍是0到4294967295。

INTEGER[(M)] [UNSIGNED] [ZEROFILL]
這是INT的一個同義詞。
BIGINT[(M)] [UNSIGNED] [ZEROFILL]
一個大整數。有符號的范圍是-9223372036854775808到9223372036854775807,無符號的范圍是0到
18446744073709551615。注意,所有算術運算用有符號的BIGINT或DOUBLE值完成,因此你不應該使用大於9223372036854775807(63位)的有符號大整數,除了位函數!注意,當兩個參數是INTEGER值時,-、+和*將使用BIGINT運算!這意味著如果你乘2個大整數(或來自於返回整數的函數),如果結果大於9223372036854775807,你可以得到意外的結果。一個浮點數字,不能是無符號的,對一個單精度浮點數,其精度可以是<=24,對一個雙精度浮點數,是在25 和53之間,這些類型如FLOAT和DOUBLE類型馬上在下面描述。FLOAT(X)有對應的FLOAT和DOUBLE相同的范圍,但是顯示尺寸和小數位數是未定義的。在MySQL3.23中,這是一個真正的浮點值。在更早的MySQL版本中,FLOAT(precision)總是有2位小數。該句法為了ODBC兼容性而提供。

FLOAT[(M,D)] [ZEROFILL]
一個小(單精密)浮點數字。不能無符號。允許的值是-3.402823466E+38到-1.175494351E-38,0 和1.175494351E-38到3.402823466E+38。M是顯示寬度而D是小數的位數。沒有參數的FLOAT或有<24 的一個參數表示一個單精密浮點數字。
DOUBLE[(M,D)] [ZEROFILL]
一個正常大小(雙精密)浮點數字。不能無符號。允許的值是-1.7976931348623157E+308到-2.2250738585072014E-308、 0和2.2250738585072014E-308到1.7976931348623157E+308。M是顯示寬度而D是小數位數。沒有一個參數的DOUBLE或FLOAT(X)(25 < = X < = 53)代表一個雙精密浮點數字。
DOUBLE PRECISION[(M,D)] [ZEROFILL]
REAL[(M,D)] [ZEROFILL]
這些是DOUBLE同義詞。
DECIMAL[(M[,D])] [ZEROFILL]
一個未壓縮(unpack)的浮點數字。不能無符號。行為如同一個CHAR列:“未壓縮”意味著數字作為一個字符串被存儲,值的每一位使用一個字符。小數點,並且對於負數,“-”符號不在M中計算。如果D是0,值將沒有小數點或小數部分。DECIMAL值的最大范圍與DOUBLE相同,但是對一個給定的DECIMAL列,實際的范圍可以通過M和D的選擇被限制。如果D被省略,它被設置為0。如果M被省掉,它被設置為10。注意,在MySQL3.22裡,M參數包括符號和小數點。


NUMERIC(M,D) [ZEROFILL]
這是DECIMAL的一個同義詞。 DATE
一個日期。支持的范圍是'1000-01-01'到'9999-12-31'。MySQL以'YYYY-MM-DD'格式來顯示DATE值,但是允許你使用字符串或數字把值賦給DATE列。
DATETIME
一個日期和時間組合。支持的范圍是'1000-01-01 00:00:00'到'9999-12-31 23:59:59'。MySQL以'YYYY-MM-DD HH:MM:SS'格式來顯示DATETIME值,但是允許你使用字符串或數字把值賦給DATETIME的列。
TIMESTAMP[(M)]
一個時間戳記。范圍是'1970-01-01 00:00:00'到2037年的某時。MySQL以YYYYMMDDHHMMSS、YYMMDDHHMMSS、YYYYMMDD或YYMMDD格式來顯示TIMESTAMP值,取決於是否M是14(或省略)、12、8或6,但是允許你使用字符串或數字把值賦給TIMESTAMP列。一個TIMESTAMP列對於記錄一個INSERT或UPDATE操作的日期和時間是有用的,因為如果你不自己給它賦值,它自動地被設置為最近操作的日期和時間。你以可以通過賦給它一個NULL值設置它為當前的日期和時間。
TIME
一個時間。范圍是'-838:59:59'到'838:59:59'。MySQL以'HH:MM:SS'格式來顯示TIME值,但是允許你使用字符串或數字把值賦給TIME列。
YEAR[(2|4)]
一個2或4位數字格式的年(缺省是4位)。允許的值是1901到2155,和0000(4位年格式),如果你使用2位,1970-2069( 70-69)。MySQL以YYYY格式來顯示YEAR值,但是允許你把使用字符串或數字值賦給YEAR列。(YEAR類型在MySQL3.22中是新類型。)
CHAR(M) [BINARY]
一個定長字符串,當存儲時,總是是用空格填滿右邊到指定的長度。M的范圍是1 ~ 255個字符。當值被檢索時,空格尾部被刪除。CHAR值根據缺省字符集以大小寫不區分的方式排序和比較,除非給出BINARY關鍵詞。NATIONAL CHAR(短形式NCHAR)是ANSI SQL的方式來定義CHAR列應該使用缺省字符集。這是MySQL的缺省。CHAR是CHARACTER的一個縮寫。
[NATIONAL] VARCHAR(M) [BINARY]
一個變長字符串。注意:當值被存儲時,尾部的空格被刪除(這不同於ANSI SQL規范)。M的范圍是1 ~ 255個字符。 VARCHAR值根據缺省字符集以大小寫不區分的方式排序和比較,除非給出BINARY關鍵詞值。 VARCHAR是CHARACTER VARYING一個縮寫。
TINYBLOB  
TINYTEXT
一個BLOB或TEXT列,最大長度為255(2^8-1)個字符。
BLOB
TEXT
一個BLOB或TEXT列,最大長度為65535(2^16-1)個字符。
MEDIUMBLOB  
MEDIUMTEXT
一個BLOB或TEXT列,最大長度為16777215(2^24-1)個字符。
LONGBLOB  
LONGTEXT
一個BLOB或TEXT列,最大長度為4294967295(2^32-1)個字符。
ENUM('value1','value2',...)
枚舉。一個僅有一個值的字符串對象,這個值式選自與值列表'value1'、'value2', ...,或NULL。一個ENUM最多能有65535不同的值。
SET('value1','value2',...)
一個集合。能有零個或多個值的一個字符串對象,其中每一個必須從值列表'value1', 'value2', ...選出。一個SET最多能有64個成員。

轉自csdn知識庫

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved