往表中添加數據的命令:
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