zoukankan      html  css  js  c++  java
  • 学习笔记: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

  • 相关阅读:
    格式化数字,将字符串格式的数字,如:1000000 改为 1 000 000 这种展示方式
    jquery图片裁剪插件
    前端开发采坑之安卓和ios的兼容问题
    页面消息提示,上下滚动
    可以使用css的方式让input不能输入文字吗?
    智慧农村“三网合一”云平台测绘 大数据 农业 信息平台 应急
    三维虚拟城市平台测绘 大数据 规划 三维 信息平台 智慧城市
    农业大数据“一张图”平台测绘 大数据 房产 国土 农业 信息平台
    应急管理管理局安全生产预警平台应急管理系统不动产登记 测绘 大数据 规划 科教 三维 信息平台
    地下综合管廊管理平台测绘 大数据 地下管线 三维 信息平台
  • 原文地址:https://www.cnblogs.com/quinnxu/p/2597298.html
Copyright © 2011-2022 走看看