1 |
自动增长 |
|
|
|
mysql规定,一个字段设置了自动增长,这个字段必须是主键,自动增长是主键约束数据的一种手段,每个表中只允许一个自动增长字段 |
2 |
一次插入多条数据 |
|
|
|
insert into student (name,sex,age) values ('zhangsan', 'male', 18), ('lisi', 'fmale', 24); |
3 |
修改表数据 |
|
|
|
查询语句,DISTINCT表示不可重复,就是说如果有多个记录拥有一样的值,那么只出一个,多个条件用逗号分割,如下: select distinct name,sex from student; |
4 |
排序 |
|
|
a)order by |
order by id asc|desc排序关键字,asc表升序,desc表示降序,id表示要排序的字段.要养成排序的习惯,并不见得插入的早的id就小 |
|
b)limit |
筛选数据(对结果集进行筛选) limit 5 表示返回前5行 limit 5,10 返回从第6行开始数10行 |
5 |
常用运算符 |
|
|
|
AND OR LIKE NOT LIKE 查询出特定字段不带有某些字符且不为空的记录 IN SELECT * FROM student WHERE age in (20,21,27); NOT IN IS NULL IS NOT NULL BETWEEN MIN AND MAX 包括最小值和最大值 NOT BETWEEN MIN AND MAX |
6 |
常用函数 |
|
|
|
count() 取得总行数 as 起别名 select count(*) as 总人数 from student; 需要注意的是php会将字段名作为数组下标,php数组下表不支持中文,所以别名最好不要用中文 select count(name) as name,count(age) as age from student;取别名的意义在于方便php取值 max() select max(age) from student; min() sum() 取得总和 rvg() 取得平均数 |
7 |
修改表结构 |
|
|
a)添加字段 |
alert table 表名 add 字段名数据类型位置(first|after字段名) 默认新添加字段是放在最后 |
|
b)修改字段 |
alert table 表名 change 原字段名新字段名数据类型 |
|
c)删除字段 |
alert table 表名 drop 字段名 |
|
d)修改字段名 |
alert table 旧表名 rename 老表名 |
|
e)修改表名 |
alert table 老表名新表名 |
|
f)删除表 |
drop table 表名 |
8 |
表关联 |
|
|
|
一般完成表关联任务,表关联条件数等于表数目-1 |
|
a)内连接 |
select 表1,表2.字段 from 表1 inner join 表2 on 条件 where 条件; 表前后顺序无关紧要,二表完全匹配条件才选出 select 表1,表2.字段 from 表1,表2 where 条件; |
|
b)左连接 |
select 表1,表2.字段 from 表1 left join 表2 on 条件 where 条件; 以左边为准,即左边的条目都会列出来,即使右边没有匹配 |
|
c)右连接 |
select 表1,表2.字段 from 表1 right join 表2 on 条件 where 条件; 以右边为准,即右边的条目都会列出来,即使左边没有匹配 |
9 |
子查询 |
|
|
|
使用子查询能做的使用表连接基本都能做,单子查询无法输出多个表中的字段 select 最终显示的字段 form 表名 where 字段 =(或in,=匹配一个值,in匹配多个值) (select 字段 from 表名 where 条件); 外面要什么,里面才查什么,否则匹配不上 |
10 |
批处理 |
|
|
|
需要在mysql bin目录下创建sql脚本,扩展名随意,建议使用.sql,一眼就知道这个文件是sql批处理文件
|
|
a)执行sql脚本 |
mysql -uroot -p < 脚本文件 |
|
b)执行并输出 |
mysql -uroot -p < 脚本文件 > 保存到的文件 可以使用xls后缀,看起来更直观 |
11 |
用户操作 |
|
|
a)添加用户 |
(如果没有设置登陆主机,就会认为是所有主机%) create user 用户名@登陆主机 identified by 密码,用户名2@登陆主机 identified by 密码; |
|
b)删除用户 |
drop user 用户名@登陆主机; |
|
c)修改密码 |
set password for 用户名@登陆主机 = password(新密码) |
12 |
权限管理 |
|
|
a)添加权限 |
grant 权限列表(用,分割.全部用all) on 数据库.数据表 to 用户名@主机 |
|
b)取消权限 |
revoke 权限列表(用,分割.全部用all) on 数据库.数据表 from 用户名@主机 |
|
c)查看权限 |
show grants for 用户名@主机 |
13 |
数据库相关函数 |
|
|
|
resource mysql_list_dbs ( [resource link_identifier] )
返回值为资源(结果集资源) 功能:查看服务器上所有数据库 [resource link_identifier]:上一次已经打开的连接资源
int mysql_num_rows (result result) 返回值:结果集资源行数 result result:结果集资源
string mysql_db_name ( result result, int row ) 从结果集资源中读取第row行数据,返回值为数据库名称 |
14 |
数据表相关函数 |
|
|
|
resource mysql_list_tables ( string database [,resource link_identifier] ) 返回值为资源 功能:查看某个数据库下的所有数据表 string database :数据库名 [,resource link_identifier]:某个mysql服务器
int mysql_num_rows (resource result) 返回值为整型 功能:查询结果集总行数
string mysql_tablename (resource result, int i) 返回值为字符串(表名) 功能:取得结果集的值 resource result:结果集 int i:第i行 |
15 |
表结构相关函数 |
|
|
|
resource mysql_list_fields ( string database_name, string table_name [, resource link_identifier] ) 查询所有字段 功能:返回指定表的所有字段 string database_name:数据库名称 string table_name:表名 [, resource link_identifier]:连接资源
int mysql_num_fields (resource result) 返回结果集总行数 resource result:mysql_list_fields的返回值
string mysql_field_name ( resource result, int i ) 取得结果集的值 resource result:mysql_list_fields的返回值 int i:第i行 |
原创作品,请勿转载,如确需转载请保持文章完整并注明出处,谢谢合作。
(许坤,php工程师,PHP工程师,互联网研发工程师,软件工程师)
原文地址:http://www.cnblogs.com/quinnxu/archive/2012/07/18/2597298.html