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万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章