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

  • 相关阅读:
    您还在用下一步下一步的方式安装SQLSERVER和SQLSERVER补丁吗?
    SQLSERVER误删除了Windows登录用户验证方式使用Windows身份验证的解决方法
    批量解密SQLSERVER数据库中的各种对象的工具dbForge SQL Decryptor
    SQLSERVER将数据移到另一个文件组之后清空文件组并删除文件组
    SQLSERVER群集故障转移笔记
    兼容,原来在这里就已经開始--------Day34
    Objective-C的对象模型和runtime机制
    CF B. Kolya and Tandem Repeat
    循环队列的实现
    LintCode 子树
  • 原文地址:https://www.cnblogs.com/quinnxu/p/2597298.html
Copyright © 2011-2022 走看看