mysql基本語句詳細教程
看他們網上的,寫得都是千篇一律,同時,好多也寫得不是很好,下面是我自己總結的有關mysql的使用細節,也是我在學習過程中的一些記錄吧,希望對你有點幫助,后面有關存儲過程等相關操作還沒有總結好,下次總結好了再發給你吧,呵呵~~~~~MySql學習筆記MySql概述:MySql是一個種關聯數據庫管理系統,所謂關聯數據庫就是將數據保存在不同的表中,而不是將所有數據放在一個大的倉庫中。
這樣就增加了速度與提高了靈活性。并且MySql軟件是一個開放源碼軟件。
注意,MySql所支持的TimeStamp的最大范圍的問題,在32位機器上,支持的取值范圍是年份最好不要超過2030年,然后如果在64位的機器上,年份可以達到2106年,而對于date、與datetime這兩種類型,則沒有關系,都可以表示到9999-12-31,所以這一點得注意下;還有,在安裝MySql的時候,我們一般都選擇Typical(典型安裝)就可以了,當然,如果還有其它用途的話,那最好選擇Complete(完全安裝);在安裝過程中,一般的還會讓你進行服務器類型的選擇,分別有三種服務器類型的選擇,(Developer(開發機)、Server Machine(服務器)、Dedicated MySql Server Machine(專用MYSQL服務器)),選擇哪種類型的服務器,只會對配置向導對內存等有影響,不然其它方面是沒有什么影響的;所以,我們如果是開發者,選擇開發機就可以啦;然后接下來,還會有數據庫使用情況對話框的選擇,我們只要按照默認就可以啦;連接與斷開服務器:連接:在windows命令提示符下輸入類似如下命令集:mysql –h host –u user –p例如,我在用的時候輸入的是:mysql –h localhost –u root –p然后會提示要你輸入用戶密碼,這個時候,如果你有密碼的話,就輸入密碼敲回車,如果沒有密碼,直接敲回車,就可以進入到數據庫客戶端;連接遠程主機上的mysql,可以用下面的命令:mysql –h 159.0.45.1 –u root –p 123斷開服務器:在進入客戶端后,你可以直接輸入quit然后回車就可以了;下面就數據庫相關命令進行相關說明你可以輸入以下命令對數據庫表格或者數據庫進行相關操作,在這里就省略了,然后直接進行文字說明了;Select version(),current_date;//從服務器得到當前mysql的版本號與當前日期Select user(); //得到當前數據庫的所有用戶Use databasename; 進入到指定的數據庫當中,然后就可以操作這個數據庫當中的表格了Show databases; //查詢目前數據庫中所有的數據庫,并且顯示出來;Create batabase databasename;創建數據庫,例如:create database manager;Show tables; //查看當前數據庫中的所有表格;Create table tablename(colums);創建表,并且給表指定相關列,例如:create table pet(name varchar(20),owner varchar(20),species varchar(20),sex char(1),birth date,death date);Describe tablename;將表當中的所有信息詳細顯示出來,例如:describe pet;可以用命令一次插入多條記錄,例如:Insert into pet values('Puffball','Diane','hamster','f','1993-12-3',null),( 'Puffball','Diane','hamster','f','1993-12-3',now());Select * from pet; 從pet表當中查詢出所有的記錄,顯示出來;Delete from pet where id=1;刪除ID為1的那一條記錄;Update pet set birth='2001-1-3' where name='Bowser';更新name為Bowser的記錄當中的birth字段的值;Select distinct owner from pet;從pet表中選擇出owner字段的值唯一的行,如果有多行記錄這個字段的值相同,則只顯示最后一次出現這一值的一行記錄;有關日期計算:Select name,birth,curdate(),(year(curdate())-year(birth)) as age from pet;此處,year()函數用于提取對應字段的年份,當然類似的還有month(),day()等;在mysql當中,sql語句可以使用like查詢,可以用”_”配任何單個字符,用”%”配任意數目字符,并且SQL模式默認是忽略大小寫,例如:select * from pet where name like '%fy';當然也可以用正則表達式模式進行配。同時在sql當中,也要注意分組函數、排序函數、統計函數等相關用法,在這里只列舉一二;Select species,count(*) from pet group by speceis;Select * from pet order by birth desc;查詢最大值的相關操作:Select max(age) from pet;取前多少項記錄,這個主要用于分頁查詢操作當中,Select * from pet order by birth desc limit 3;取前三條記錄,Select * from pet order by birth desc limit 0,3;這個可以用于分頁查詢,limit后面的第一個參數,是起始位置,第二個參數是取記錄條數;有關創建表格自增長字段的寫法:Create table person(id int(4) not null auto_increment,name char(20) not null,primary key (id));修改表操作:向表中增加字段:注意,在這個地方,如果是增加多個字段的時候,就要用括號括起來,不然會有問題,如果是單個字段的話,不用括號也沒事;Alter table test add(address varchar(50) not null default 'xm',email varchar(20) not null);將表中某個字段的名字修改或者修改其。
Mysql基礎語句
看他們網上的,寫得都是千篇一律,同時,好多也寫得不是很好,下面是我自己總結的有關mysql的使用細節,也是我在學習過程中的一些記錄吧,希望對你有點幫助,后面有關存儲過程等相關操作還沒有總結好,下次總結好了再發給你吧,呵呵~~~~~MySql學習筆記MySql概述:MySql是一個種關聯數據庫管理系統,所謂關聯數據庫就是將數據保存在不同的表中,而不是將所有數據放在一個大的倉庫中。
這樣就增加了速度與提高了靈活性。并且MySql軟件是一個開放源碼軟件。
注意,MySql所支持的TimeStamp的最大范圍的問題,在32位機器上,支持的取值范圍是年份最好不要超過2030年,然后如果在64位的機器上,年份可以達到2106年,而對于date、與datetime這兩種類型,則沒有關系,都可以表示到9999-12-31,所以這一點得注意下;還有,在安裝MySql的時候,我們一般都選擇Typical(典型安裝)就可以了,當然,如果還有其它用途的話,那最好選擇Complete(完全安裝);在安裝過程中,一般的還會讓你進行服務器類型的選擇,分別有三種服務器類型的選擇,(Developer(開發機)、Server Machine(服務器)、Dedicated MySql Server Machine(專用MYSQL服務器)),選擇哪種類型的服務器,只會對配置向導對內存等有影響,不然其它方面是沒有什么影響的;所以,我們如果是開發者,選擇開發機就可以啦;然后接下來,還會有數據庫使用情況對話框的選擇,我們只要按照默認就可以啦;連接與斷開服務器:連接:在windows命令提示符下輸入類似如下命令集:mysql –h host –u user –p例如,我在用的時候輸入的是:mysql –h localhost –u root –p然后會提示要你輸入用戶密碼,這個時候,如果你有密碼的話,就輸入密碼敲回車,如果沒有密碼,直接敲回車,就可以進入到數據庫客戶端;連接遠程主機上的mysql,可以用下面的命令:mysql –h 159.0.45.1 –u root –p 123斷開服務器:在進入客戶端后,你可以直接輸入quit然后回車就可以了;下面就數據庫相關命令進行相關說明你可以輸入以下命令對數據庫表格或者數據庫進行相關操作,在這里就省略了,然后直接進行文字說明了;Select version(),current_date;//從服務器得到當前mysql的版本號與當前日期Select user(); //得到當前數據庫的所有用戶Use databasename; 進入到指定的數據庫當中,然后就可以操作這個數據庫當中的表格了Show databases; //查詢目前數據庫中所有的數據庫,并且顯示出來;Create batabase databasename;創建數據庫,例如:create database manager;Show tables; //查看當前數據庫中的所有表格;Create table tablename(colums);創建表,并且給表指定相關列,例如:create table pet(name varchar(20),owner varchar(20),species varchar(20),sex char(1),birth date,death date);Describe tablename;將表當中的所有信息詳細顯示出來,例如:describe pet;可以用命令一次插入多條記錄,例如:Insert into pet values('Puffball','Diane','hamster','f','1993-12-3',null),( 'Puffball','Diane','hamster','f','1993-12-3',now());Select * from pet; 從pet表當中查詢出所有的記錄,顯示出來;Delete from pet where id=1;刪除ID為1的那一條記錄;Update pet set birth='2001-1-3' where name='Bowser';更新name為Bowser的記錄當中的birth字段的值;Select distinct owner from pet;從pet表中選擇出owner字段的值唯一的行,如果有多行記錄這個字段的值相同,則只顯示最后一次出現這一值的一行記錄;有關日期計算:Select name,birth,curdate(),(year(curdate())-year(birth)) as age from pet;此處,year()函數用于提取對應字段的年份,當然類似的還有month(),day()等;在mysql當中,sql語句可以使用like查詢,可以用”_”配任何單個字符,用”%”配任意數目字符,并且SQL模式默認是忽略大小寫,例如:select * from pet where name like '%fy';當然也可以用正則表達式模式進行配。同時在sql當中,也要注意分組函數、排序函數、統計函數等相關用法,在這里只列舉一二;Select species,count(*) from pet group by speceis;Select * from pet order by birth desc;查詢最大值的相關操作:Select max(age) from pet;取前多少項記錄,這個主要用于分頁查詢操作當中,Select * from pet order by birth desc limit 3;取前三條記錄,Select * from pet order by birth desc limit 0,3;這個可以用于分頁查詢,limit后面的第一個參數,是起始位置,第二個參數是取記錄條數;有關創建表格自增長字段的寫法:Create table person(id int(4) not null auto_increment,name char(20) not null,primary key (id));修改表操作:向表中增加字段:注意,在這個地方,如果是增加多個字段的時候,就要用括號括起來,不然會有問題,如果是單個字段的話,不用括號也沒事;Alter table test add(address varchar(50) not null default 'xm',email varchar(20) not null);將表中某個字段的名字修改或者修改其對應的相關屬性的時候,要用change對其進行操作;Alter table test change email email 。
mysql的語句和sql語句是一樣的嗎
總體差不多,但有些小區別;我列給你看看:1 mysql支持enum,和set類型,sql server不支持
2 mysql不支持nchar,nvarchar,ntext類型
3 mysql的遞增語句是AUTO_INCREMENT,而mssql是identity(1,1)
4 msms默認到處表創建語句的默認值表示是((0)),而在mysql里面是不允許帶兩括號的
5 mysql需要為表指定存儲類型
6 mssql識別符是[],[type]表示他區別于關鍵字,但是mysql卻是 `,也就是按鍵1左邊的那個符號
7 mssql支持getdate()方法獲取當前時間日期,但是mysql里面可以分日期類型和時間類型,獲取當前日期是cur_date(),當前完整時間是 now()函數
8 mssql不支持replace into 語句,但是在最新的sql20008里面,也支持merge語法
9 mysql支持insert into table1 set t1 = '', t2 = '' ,但是mssql不支持這樣寫
10 mysql支持insert into tabl1 values (1,1), (1,1), (1,1), (1,1), (1,1), (1,1), (1,1)
11 mssql不支持limit語句,是非常遺憾的,只能用top 取代limt 0,N,row_number() over()函數取代limit N,M
12 mysql在創建表時要為每個表指定一個存儲引擎類型,而mssql只支持一種存儲引擎
13 mysql不支持默認值為當前時間的datetime類型(mssql很容易做到),在mysql里面是用timestamp類型
14 mssql里面檢查是否有這個表再刪除,需要這樣:
if exists (select * from *ects where id = object_id(N'uc_newpm') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
但是在mysql里面只需要 DROP TABLE IF EXISTS cdb_forums;
15 mysql支持無符號型的整數,那么比不支持無符號型的mssql就能多出一倍的最大數存儲
16 mysql不支持在mssql里面使用非常方便的varchar(max)類型,這個類型在mssql里面既可做一般數據存儲,也可以做blob數據存儲
17 mysql創建非聚集索引只需要在創建表的時候指定為key就行,比如:KEY displayorder (fid,displayorder) 在mssql里面必須要:create unique nonclustered index index_uc_protectedmembers_username_appid on *_protectedmembers
(username asc,appid asc)
18 mysql text字段類型不允許有默認值
19mysql的一個表的總共字段長度不超過65XXX。
20一個很表面的區別就是mysql的安裝特別簡單,而且文件大小才110M(非安裝版),相比微軟這個龐然大物,安裝進度來說簡直就是。..
21mysql的管理工具有幾個比較好的,mysql_front,和官方那個套件,不過都沒有SSMS的使用方便,這是mysql很大的一個缺點。
22mysql的存儲過程只是出現在最新的版本中,穩定性和性能可能不如mssql。
23 同樣的負載壓力,mysql要消耗更少的CPU和內存,mssql的確是很耗資源。
24php連接mysql和mssql的方式都差不多,只需要將函數的mysql替換成mssql即可。
25mysql支持date,time,year類型,mssql到2008才支持date和time。
mysql基本語句詳細教程怎么辦
"看他們網絡(互聯網)上的,寫得都是千篇一律,同時,好多也寫得不是很好,下邊是我自己總結的有關mysql的用細節,也是我在學習過程中的有些記錄吧,期望對你有點幫助,后面有關存儲過程等相關操作還木有總結好,下次總結好了再發給你吧,呵呵~~~~~MySql學習筆記MySql概述:MySql是1個種關聯數據庫管理系統(System),所謂關聯數據庫就是將數據保存在不一樣的表中,而不是將全部數據放在1個大的倉庫中。
這樣就增加了速度與提高了靈活性。并且MySql軟件是1個開放源碼軟件。
注意,MySql所支持的TimeStamp的最大范圍的問題,在32位機器上,支持的取值范圍是年份最好別超過2030年,之后假如在64位的機器上,年份可以達到2106年,而對于date、與datetime這兩種類型,則木有關系,都可以表示到9999-12-31,因此這一點得注意下;還有,在安裝MySql的時候,我們一般都選取Typical(典型安裝)就可以了,當然,假如還有其它用途的話,那最好選取Complete(完全安裝);在安裝過程中,一般的還會讓你進行服務器類型的選取,分別有三種服務器類型的選取,(Developer(開發機)、Server Machine(服務器)、Dedicated MySql Server Machine(專用MYSQL服務器)),選取哪種類型的服務器,只會對配置向導對內存等有影響,不然其它方面是木有啥影響的;因此,我們假如是開發者,選取開發機就可以啦;之后接下來,還會有數據庫用情形對話框的選取,我們只需要按照默認就可以啦;連接與斷開服務器:連接:在windows命令提醒符下輸入類似如下命令集:mysql –h host –u user –p例如,我在用的時候輸入的是:mysql –h localhost –u root –p之后會提醒要你輸入用戶密碼(PassWORD),這個時候,假如你有密碼(PassWORD)的話,就輸入密碼(PassWORD)敲回車,假如木有密碼(PassWORD),直接敲回車,就可以進到數據庫客戶端;連接遠程主機上的mysql,可以用下邊的命令:mysql –h 159。 0。
45。1 –u root –p 123斷開服務器:在進客戶端后,你可以直接輸入quit之后回車就可以了;下邊就數據庫相關命令進行相關說明你可以輸入以下命令對數據庫表格或數據庫進行相關操作,在這里就省略了,之后直接進行文字說明了;Select version(),current_date;//從服務器得到當前mysql的版本號與當前日期Select user(); //得到當前數據庫的全部用戶Use databasename; 進到指定的數據庫當中,之后就可以操作這個數據庫當中的表格了Show databases; //查找目前數據庫中全部的數據庫,并且顯示出來;Create batabase databasename;創建數據庫,例如:create database manager;Show tables; //查看當前數據庫中的全部表格;Create table tablename(colums);創建表,并且給表指定相關列,例如:create table pet(name varchar(20),owner varchar(20),species varchar(20),sex char(1),birth date,death date);Describe tablename;將表當中的全部信息清楚顯示出來,例如:describe pet;可以用命令一次插入多條記錄,例如:Insert into pet values('Puffball','Diane','hamster','f','1993-12-3',null),( 'Puffball','Diane','hamster','f','1993-12-3',now());Select * from pet; 從pet表當中查找出全部的記錄,顯示出來;Delete from pet where id=1;刪掉ID為1的那一條記錄;Update pet set birth='2001-1-3' where name='Bowser';更新name為Bowser的記錄當中的birth字段的值;Select distinct owner from pet;從pet表中選取出owner字段的值唯一的行,假如有多行記錄這個字段的值相同,則只顯示最后一次出現這一值的一行記錄;有關日期計算:Select name,birth,curdate(),(year(curdate())-year(birth)) as age from pet;此處,year()函數用于提取對應字段的年份,當然類似的還有month(),day()等;在mysql當中,sql語句可以用like查找,可以用”_”配任何單個字符,用”%”配任意數目字符,并且SQL模式默認是忽略大小寫,例如:select * from pet where name like '%fy';當然也可以用正則表達式模式進行配。
同時在sql當中,也要注意分組函數、排序函數、統計函數等相關用法,在這里只列舉一二;Select species,count(*) from pet group by speceis;Select * from pet order by birth desc;查找最大值的相關操作:Select max(age) from pet;取前多少項記錄,這個主要用于分頁查找操作當中,Select * from pet order by birth desc limit 3;取前三條記錄,Select * from pet order by birth desc limit 0,3;這個可以用于分頁查找,limit后面的第1個參數,是起始位置,第二個參數是取記錄條數;有關創建表格自增長字段的寫法:Create table person(id int(4) not null auto_increment,name char(20) not null,primary key (id));修改表操作:向表中增加字段:注意,在這個地方,假如是增加多個字段的時候,就要用括號括起來,不然會有問題,假如是單個字段的話,不用括號也沒事;Alter table test add(address varchar(50) not null default 'xm',email varchar(20) not null);將表中某個字段的名字修改或修改其對應的相關。
MySql 比較全面的sql語句,誰有
SQL分類:DDL—數據定義語言(CREATE,ALTER,DROP,DECLARE)DML—數據操縱語言(SELECT,DELETE,UPDATE,INSERT)DCL—數據控制語言(GRANT,REVOKE,COMMIT,ROLLBACK)首先,簡要介紹基礎語句:1、說明:創建數據庫CREATE DATABASE database-name2、說明:刪除數據庫drop database dbname3、說明:備份sql server--- 創建 備份數據的 deviceUSE masterEXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_*'--- 開始 備份BACKUP DATABASE pubs TO testBack4、說明:創建新表create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..)根據已有的表創建新表:A:create table tab_new like tab_old (使用舊表創建新表)B:create table tab_new as select col1,col2… from tab_old definition only5、說明:刪除新表drop table tabname6、說明:增加一個列Alter table tabname add column col type注:列增加后將不能刪除。
DB2中列加上后數據類型也不能改變,唯一能改變的是增加varchar類型的長度。7、說明:添加主鍵: Alter table tabname add primary key(col)說明:刪除主鍵: Alter table tabname drop primary key(col)8、說明:創建索引:create [unique] index idxname on tabname(col….)刪除索引:drop index idxname注:索引是不可更改的,想更改必須刪除重新建。
9、說明:創建視圖:create view viewname as select statement刪除視圖:drop view viewname10、說明:幾個簡單的基本的sql語句選擇:select * from table1 where 范圍插入:insert into table1(field1,field2) values(value1,value2)刪除:delete from table1 where 范圍更新:update table1 set field1=value1 where 范圍查找:select * from table1 where field1 like '%value1%' ---like的語法很精妙,查資料!排序:select * from table1 order by field1,field2 [desc]總數:select count * as totalcount from table1求和:select sum(field1) as sumvalue from table1平均:select avg(field1) as avgvalue from table1最大:select max(field1) as maxvalue from table1最小:select min(field1) as minvalue from table111、說明:幾個高級查詢運算詞A: UNION 運算符UNION 運算符通過組合其他兩個結果表(例如 TABLE1 和 TABLE2)并消去表中任何重復行而派生出一個結果表。當 ALL 隨 UNION 一起使用時(即 UNION ALL),不消除重復行。
兩種情況下,派生表的每一行不是來自 TABLE1 就是來自 TABLE2。B: EXCEPT 運算符EXCEPT 運算符通過包括所有在 TABLE1 中但不在 TABLE2 中的行并消除所有重復行而派生出一個結果表。
當 ALL 隨 EXCEPT 一起使用時 (EXCEPT ALL),不消除重復行。C: INTERSECT 運算符INTERSECT 運算符通過只包括 TABLE1 和 TABLE2 中都有的行并消除所有重復行而派生出一個結果表。
當 ALL 隨 INTERSECT 一起使用時 (INTERSECT ALL),不消除重復行。注:使用運算詞的幾個查詢結果行必須是一致的。
12、說明:使用外連接A、left outer join:左外連接(左連接):結果集幾包括連接表的匹配行,也包括左連接表的所有行。SQL: select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = *:right outer join:右外連接(右連接):結果集既包括連接表的匹配連接行,也包括右連接表的所有行。
C:full outer join:全外連接:不僅包括符號連接表的匹配行,還包括兩個連接表中的所有記錄。其次,大家來看一些不錯的sql語句1、說明:復制表(只復制結構,源表名:a 新表名:b) (Access可用)法一:select * into b from a where 11法二:select top 0 * into b from a2、說明:拷貝表(拷貝數據,源表名:a 目標表名:b) (Access可用)insert into b(a, b, c) select d,e,f from a;3、說明:跨數據庫之間表的拷貝(具體數據使用絕對路徑) (Access可用)insert into b(a, b, c) select d,e,f from b in '具體數據庫' where 條件例子:..from b in '"&*h(".")&"\*" &"' where..4、說明:子查詢(表名1:a 表名2:b)select a,b,c from a where a IN (select d from b ) 或者: select a,b,c from a where a IN (1,2,3)5、說明:顯示文章、提交人和最后回復時間select *,*me,*e from table a,(select max(adddate) adddate from table where *=*) b6、說明:外連接查詢(表名1:a 表名2:b)select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c7、說明:在線視圖查詢(表名1:a )select * from (SELECT a,b,c FROM a) T where t.a > 1;8、說明:between的用法,between限制查詢數據范圍時包括了邊界值,not between不包括select * from table1 where time between time1 and time2select a,b,c, from table1 where a not between 數值1 and 數值29、說明:in 的使用方法select * from table1 where a [not] in ('值1','值2','值4','值6')10、說明:兩張關聯表,刪除主表中已經在副表中沒有的信息delete from table1 where not exists ( select * from table2 where *1=*1 )11、說明。
高分求問mysql語句啊
$sql="select * from a where hot=1";$result=mysql_query($sql) or die("查詢失敗!錯誤是:".mysql_error()); $count=mysql_num_rows(mysql_query($sql)); while ($row=mysql_fetch_assoc($result)){ echo $row[name]; $sql2="select * from b where id=".$row[id]." limit 5"; $result2=mysql_query($sql2) or die("查詢失敗!錯誤是:".mysql_error()); while ($row2=mysql_fetch_assoc($result2)){ echo $row2[name]; } } 用兩個循環嵌套就可以了。