学习笔记:mysql

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 resultmysql_list_fields的返回值

 

string mysql_field_name ( resource result, int i )

取得结果集的值

resource resultmysql_list_fields的返回值

int i:第i

原创作品,请勿转载,如确需转载请保持文章完整并注明出处,谢谢合作。

(许坤,php工程师,PHP工程师,互联网研发工程师,软件工程师)

原文地址:http://www.cnblogs.com/quinnxu/archive/2012/07/18/2597298.html

原文地址:https://www.cnblogs.com/quinnxu/p/2597298.html