zoukankan      html  css  js  c++  java
  • php 总结(9) mysql 字段 编码 相关

    1.修改字符串字符集
         编辑mysql配置文件 my.ini

      [client]

       default-character-set = utf8 

    [wampmysqld]

    character-set-server = utf8 //设置默认新建数据库编码为utf8

    collation-server = utf8_general_ci //更改现有数据库编码

    2.表字段类型
    数值:
    int
    float

    不用加圆括号

    字符串:
    char (255) 最大长度255
    varchar(255): 最大长度65535
    text 65535字节 不能加圆括号

    3.数据表操作
    1.sql条件
     a.数学运算符
    +-*/ /   %

    b.逻辑运算符
    && ||  and  or

     
    c.比较运算符

    =, != ,>=,  <=, > , <,  <>

    d.语句

    DELETE from  user where id in (1,2,3)

    id 在1 或者2 或者3

    DELETE from  user where id>=3 and  id<=5;
    DELETE from  user where id  between 3 and 5;

    select distinct username from user 查询唯一的username

    select * from user where username like '%linux%   用户名含有linux



    排序order by
    select * from user order by id asc 默认升序
    select * from user order by id desc 默认降序
    select * from user where age is null 年龄非空

    SELECT * from patient_13 WHERE age > 20 order by age asc

    mysql 关键字

    使用limit 限定输出个数
    limit 7,3 【从7开始 截取三条】

    随机数rand()
    SELECT * FROM `user` order by rand() limit 3 随机打乱 提前前三条

    随机数concat()
    SELECT concat(name,'-',sex) from user 把数据库name和sex 连接起来


    统计个数 count()
    SELECT count(*) FROM `user` WHERE id>3 查看数据库条数

    求和sum()
    select sum(id)from user

    平均数avg()
    select avg(id) from user

     最大值  最小值
    select max(id) from user
    select min(age)from user

    输出结果
     print_r($arrs[0]['avg(password)']);


    嵌套查询

    查找本月的数量

     $r=mysql_query("SELECT author, count(author) from patient_18 WHERE jiedai !='' && addtime >1551370929 group by author order by count(author) desc ");

    $max=mysql_query("SELECT * from patient_13 WHERE age in (SELECT max(age) from patient_13)");
    $_arrmax=mysql_fetch_assoc($max);
    echo "<pre>";
    print_r($_arrmax);

     分组聚合

    select * from user group by class_id (按照班级分组)
    select class_id from user group by class_id
    select class_id,count(id) from user grou by class_id 统计班级人数

    按年龄分组 并且统计出 相同年龄的人数
    $r=mysql_query("SELECT age, count(id) from patient_13 group by age");
    $num=@mysql_num_rows($r);

    $_arr=mysql_fetch_assoc($r);

    打印出人数
    echo "<li>{$_arr['count(age)']}</li>";

    echo "<li>{$_arr['age']}</li>";

    查找相同年龄的人数

    mysql_query("SELECT age , count(age) from patient_18 WHERE  age > 20 && age < 40 group by age order by count(age)desc"); 

     跨表查询
    $r=mysql_query("SELECT patient_13 .name, patient_15 .name FROM patient_13 , patient_15 WHERE patient_13 .name = patient_15 .name");

     多表查询(查两个表 后面是两个表的条件)
    select * from user,class where user.class_id=class.id
    只展示用户名字和班级
    select user.username,class.classname from user,class where user.class_id=class.id

    一对多 在多的那里留ID

    select(select count(*) from user where score>=60)yes,(select count(*) from user where score<=60)no;

    select a,b;

    select sum(if(score>=60,1,0) ) 及格, sum (if(score<60,1,0)) 不及格 from user;

    SELECT  DISTINCT `name` FROM patient_18 

     

     查询语句

    完全限定语句
    select name from houtaiablyycnbak66.patient_18 where id =8000

    计算次序 ()用包含
    SELECT * FROM patient_18 where (id<5 OR author = 'XX') AND `status` = 1

    不在某个区间
    SELECT * FROM patient_18 where id NOT BETWEEN 5 and 10000

    执行算数计算
    SELECT id,age,id+age AS ia FROM patient_18 where id <100 ORDER BY ia desc

    时间函数
    SELECT id,age ,Now(),month(Now()) FROM patient_18 where id <1000

    表表查询 where 函数
    SELECT author , aa from (SELECT author , count(author) AS aa from patient_18 where status=1 GROUP BY author) as
    tt1 where aa>50 ORDER BY aa desc

    联合查询
    select patient_12.age,patient_12.sex from patient_12,patient_18 where patient_12.sex = patient_18.sex order by patient_12.age desc

     查找年龄出现次数大于10的人   HAVING

    select id ,age,count(age) FROM patient_18 WHERE `status`=1  GROUP BY age HAVING( COUNT(age)>10 )


    常用的文本处理函数
    Left() 返回串左边的字符
    Length() 返回串的长度
    Locate() 找出串的一个子串
    Lower() 将串转换为小写
    LTrim() 去掉串左边的空格
    Right() 返回串右边的字符
    RTrim() 去掉串右边的空格
    Soundex() 返回串的SOUNDEX值
    SubString() 返回子串的字符
    Upper() 将串转换为大写


    常用数值处理函数

    Abs() 返回一个数的绝对值
    Cos() 返回一个角度的余弦
    Exp() 返回一个数的指数值
    Mod() 返回除操作的余数
    Pi() 返回圆周率
    Rand() 返回一个随机数
    Sin() 返回一个角度的正弦
    Sqrt() 返回一个数的平方根
    Tan() 返回一个角度的正切


    SQL聚集函数
    AVG() 返回某列的平均值
    COUNT() 返回某列的行数
    MAX() 返回某列的最大值
    MIN() 返回某列的最小值
    SUM() 返回某列值之和

    from_unixtime(day) 实现时间戳转换日期

  • 相关阅读:
    简明 Vim 练级攻略
    设置命令的别名
    GPIO实验(二)
    GPIO实验(一)
    ubuntu文件夹默认列表显示
    ubuntu 12.04下gedit查看txt中文乱码解决办法
    ubuntu下超强的截图工具scrot
    原码 反码 补码 移码的关系(精简总结)
    内核编译
    [Linux] shell利用sed如何批量更改文件名详解[转载] | 不使用正则表达式,修改未知的文件名|
  • 原文地址:https://www.cnblogs.com/nice2018/p/10441983.html
Copyright © 2011-2022 走看看