本文实例讲述了mysql数据库基础知识点与操作。分享给大家供大家参考,具体如下:

数据库

一、 修改数据表

添加一列:
ALTERTABLE tab_name ADD col_name column_defi[FIRST|AFTER col_name];
可以指定新列的位置关系,位于最开头(FIRST)或者位于某列之后(AFTER…),否则新列默认位于最后。
添加多列:
ALTERTABLE tab_name ADD(col_name1 column_defi1,col_name2 column_defi2...);
删除一列:
ALTERTABLE tab_name DROP col_name;
删除多列或者删除之后再新增一列,只需在drop col_name之后加逗号,再写drop/add。
添加约束:
ALTERTABLE tab_name ADD PRIMARY KEY (index_column);
其中primary key可以替换为其他约束UNIQUE、FOREIGN KEY,默认约束为SET DEFAULT。
删除约束:
ALTERTABLE tab_name DROP {INDEX|KEY} index_name
删除外键:
ALTERTABLE tab_name DROP FOREIGN KEY fkey_name
其中外键约束名fkey_name可以通过show create table tab_name;查看constraint项得到,例如
CONSTRAINT `users_ibfk_1` FOREIGN KEY (`pid`) REFERENCES
修改列定义:
ALTERTABLE tab_name MODIFY col_name col_defi;
修改列名称:
ALTERTABLE tab_name CHANGE old_colname new_name col_defi;
修改数据表名称:
RENAMETABLE old_name TO new_name;
二、 数据表操作
插入记录:
INSERT tab_name[(col_name)] VALUES (val1,val2...)
其中列名可选,如果不设置列名,默认为对每一列都插入。第二种插入方法:INSERT tab_name SET col_name=val...第三种方法:insert tab_name select…,将查询结果插入数据表。
更新记录:
UPDATE tab_name SET col_name=val [WHERE condition];
where条件如果不填,默认对所有记录进行更新。
删除记录:
DELETE FROM tab_name [WHERE condition];
删除满足条件的记录,如不填where,全删。
查询记录:
SELECT col_name1,col_name2... /*选择需要查询的列名*/
FROM tab_name/*选择需要查询的数据表*/
WHERE condition/*查询条件*/
GROUP BY col_name [ASC|DESC]/*查询结果分组*/
HAVING condition/*对查询分组经行筛选*/
ORDER BY col_name[asc|desc]/*对查询结果经行排序*/
LIMIT [n1,]n2/*返回从n1开始的n2条结果,不填n1默认从开头返回*/

三、 子查询

父查询与子查询的连接由比较符号连接,子查询返回多个结果时还可以由ANY、ALL对结果进行修饰。

多表更新:参照另外一个表来更新本表。

内连接:INNERJOIN ON join_condition,返回左右两表中满足条件的项。
左外连接:LEFTJOIN ON join_condition,返回左表全部与右表中满足条件的项。
左外连接: RIGHT JOIN ON join_condition,返回右表全部与左表中满足条件的项。

四、 数据库函数

CONCAT('a','b'…)
连接a,b多个字符串
CONCAT_WS('s','a','b'…)
以s为连接符连接多个字符串
FORMAT(f,n)
以n位小数显示数字f
LOWER()/UPPER()
将内容转换为小/大写
LEFT/RIGHT(‘s',n)
获取字符串左边/右边前n个字符
LENGTH()
获取字符串长度
LTRIM/RTRIM/TRIM()
去除字符串左边/右边/两边空格
REPLACE(‘s','a','b')
将字符串s中的a字符替换为b
SUBSTRING('s',n,e)
截取字符串从第n位开始的e个字符
IS NULL
判空
n IN(a,b,c…)
判断n是否在列出的值中
n BETWEEN a AND b
判断n是否在a到b之间