mysql 基本增刪改查

往表中添加數據的命令:

mysql>insert into table_name (field1, filed2, ... fieldN) 
    -> values(value1, value2, ...valueN);

如果插入的是字符串類型,需要用引號括起來,單引號和雙引號都可以。例如:

mysql>insert into test (field) values("xyb");

如果要同時插入多條數據,例如插入三條:

mysql>insert into test (field) values("xyb"), ("love"), ("Charlotte");

在表中查詢的命令:

mysql>select field1, field2, ... fieldN from table_name1, table_name2 ...
    -> [where condition1 [and [or]] condition2 ...]
    -> [offset m] [limit n] [order by field1, [...fieldn] [desc]];

字段之間用逗號隔開,表之間用逗號隔開。offset指定偏移,也既是跳過最開始的m條記錄;limit限制輸出記錄最多n條;where後面跟查詢條件,多個查詢條件之間用 and 或 or 連接;order by指定按某字段排序之後返回。
where常用操作符如下:

= != < > <= >=

單純用where和以上操作符查詢字符串會忽略大小寫。如果需要對大小寫敏感,可以加上binary關鍵字。例如:

mysql>select field from table_name where binary field='xyb';

where條件需要模式匹配時使用like操作符。like操作符采用SQL模式匹配,此時”_”匹配任意單個字符,”%”匹配任意多個字符(包括0個)。在mysql中SQL模式匹配默認大小寫敏感。
查找field字段以”b”開頭:

select * from table_name where field like 'b%';

查找field字段以”fy”結尾:

select * from table_name where field like '%fy';

查找field字段包含”w”:

select * from table_name where field like '%w%';

查找field字段正好5個字符:

select * from table_name where field like '_____';

關於rlike和擴展模式匹配內容參見第一條鏈接。

mysql查詢返回值沒有固定順序(一般按照插入順序)。如果需要按照某查詢字段排序返回,在select語句最後加上order by 查詢字段。排序的字段可以是多個,默認排序爲升序,desc關鍵字表示降序排序。當對多個字段排序時,會按照順序先對第一個字段排序,然後對每一組第一個字段相同記錄集合再對第二個字段排序,依此類推。例如:

FirstName LastName YearOfBirth
Thomas Alva Edison 1847
Benjamin Franklin 1706
Thomas More 1478
Thomas Jefferson 1826

使用如下語句:

SELECT * FROM People ORDER BY FirstName DESC, YearOfBirth ASC

結果如下:

FirstName LastName YearOfBirth
Thomas More 1478
Thomas Jefferson 1826
Thomas Alva Edison 1847
Benjamin Franklin 1706

以上參考第二條鏈接sotack overflow的第二個答案。

修改更新表中數據的命令:

mysql>update table_name set field1=value1, field2=value2
    -> [where condition, ...];

刪除表中數據的命令:

mysq>delete from table_name 
   -> [where condition, ...];

如果不指定條件會刪除整張表。

修改表結構的命令:
1)刪除字段(列)
mysql>alter table tabe_name drop column_name;
2)添加字段(列)
mysql>alter table table_name add column_name type;
3)修改字段(列)
mysql>alter table table_name modify column_name new_type;
只是修改原來字段的屬性值,例如數據類型,指定是否爲空,指定默認值等,但不改變字段名
mysql>alter table table_name change column_name new_column_name type;
重新定義原有字段,包括字段名
4)去掉初始值
mysql>alter table table_name alter column_name drop default;
5)表重新命名
mysql>alter table table_name rename to new_table_name;
6)改變表類型(使用不同的數據庫引擎)
mysql>alter table table_name type=new_type;

參考鏈接:
https://dev.mysql.com/doc/refman/5.0/en/pattern-matching.html
http://stackoverflow.com/questions/2051162/sql-multiple-column-ordering

發佈了38 篇原創文章 · 獲贊 27 · 訪問量 18萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章