《Mysql实例MySQL表达式学习小结》要点: 本文介绍了Mysql实例MySQL表达式学习小结,希望对您有用。如果有疑问,可以联系我们。
导读:在mysql数据库中,一个表达式是直接量、列名、运算符和函数的组合,然后得到一个值.例如: 5-2 这是一个表达式; LEFT(this,2) 也是一...
在mysql数据库中,然后得到一个值. 例如: ??? 5-2 ??? 这是一个表达式; ??? LEFT('this',2) ??? 也是一个表达式. ? 1,表达式别名 对于SELECT查询语句,MySQL必须为每个SELECT子表达式分配一个名字,这个名字叫做列标题.如果子表达式是一列,那么列名就是列标题,如果子表达式是一个表达式,那么列标题就是这个表达式.MYSQL必读
例如: SELECT column1,salary*2 FROM tablename; 那么列标题就是column1和salary*2. ? 可以为子表达式指定一个列标题,如下:? SELECT column1,salary*2 AS double FROM tablename; 那么列标题变成了column1和double. ? 有一种情况必须指定列标题,就是在order和group by子句中用到了子表达式的. 例如: ?MYSQL必读
SELECT column1,salary*2 AS double FROM tablename ORDER BY double; ?
而不能写成:??? ?MYSQL必读
SELECT column1,salary*2 FROM tablename ORDER BY salary*2; ?
指定的列标题不能出现在同一条SELECT子句中,例如: SELECT column1,salary*2 AS double,double+2 FROM tablename; 是错误的. ? 2,列指定表达式 列指定表达式是最常用的SELECT子表达式.列指定表达式指定从数据表里查出一列. 例如: ?MYSQL必读
SELECT columnname1 FROM tablename; ?
columnname1就是一个列指定表达式. 列指定表达式可以在列名前面加上表名,还可以加上数据库名.一个完整的列指定是: database.table.column ? 3,用户变量表达式 用户变量表达式的格式为@加上变量名,如创建一个用户变量并初始化: SET @AGE = 18 用户变量的类型派生自标量值的类型,上面的赋值为整数18,则变量的类型也为整型.MYSQL必读
变量创建后可用于SELECT子句和其他子句中,如WHERE. 例如:??? SELECT @AGE 将得到值18. ? 4,系统变量表达式 系统变量分为全局系统变量和会话系统变量.全局系统变量会影响到所有连接到MySQL服务器的用户,而系统全局变量仅影响当前的连接用户.系统变量以@@开始,跟变量名.MYSQL必读
设置一个全局系统变量: ?MYSQL必读
SET @@GLOBAL.SQL_WARNINGS = TRUE ?
GLOBAL是全局系统变量的关键字. 设置一个会话系统变量: ?MYSQL必读
SET @@SESSION.SQL_SELECT_LIMIT = 10 ?
SESSION是会话系统变量的关键字. ? 5,CASE表达式 CASE是一个条件表达式,类似于变成预言的IF-ELSE.MYSQL必读
CASE表达式用于如下情况: 比如有一张学生表(student),里面的行存放每一个学生的信息,有一列是sex,存放的是学生的性别. 存数据的时候是M代表男,F代表女.但是我想查出来的结果是:如果是男的就显示“男”,如果是女的就显示“女”怎么办呢? ?MYSQL必读
SELECT CASE sex ?????????? WHEN 'M' THEN '男' ?????????? ELSE '女' ?????? END ?????? AS sex FROM student; ?
CASE表达式的格式为: ?MYSQL必读
CASE 待检测值 ? WHEN 条件1 THEN 值1 ? WHEN 条件2 THEN 值2 ? ELSE 值3 END ? ?
CASE表达式还可以嵌套,嵌套针对的是需要对两列进行判断的情况下.MYSQL必读
比如除了对性别判断外,还需要对成绩(score)进行判断: ?MYSQL必读
SELECT CASE sex ???????? WHEN 'M' THEN ?????????? CASE score ???????????? WHEN 100 THEN '男一百分' ???????????? WHEN 0 THEN '男零分' ???????????? ELSE '男普通' ?????????? END ???????? WHEN 'F' THEN ?????????? CASE score ???????????? WHEN 100 THEN '女一百分' ???????????? WHEN 0 THEN '女零分' ???????????? ELSE '女普通' ?????????? END ??????? END FROM student ?
??? CASE表达式还可以将待检测值放入WHEN的条件中. ? 6,函数表达式 ? 函数表达式是一个函数,例如: SELECT UCASE('database') ? UCASE(database)是一个函数表达式.用于将字符串标量值转换成大写. 函数表达式也可以嵌套.一个函数表达式可以是另一个函数表达式的参数. ? 7,复合数值表达式 复合数值表达式就是数值的运算.例如: ?MYSQL必读
SELECT 10*8 ??? 10*8是一个复合数值表达式. ??? 其它的数值运算符还有: ??? *? 乘法 ??? /? 除法 ??? +? 加法 ??? -? 减法 ??? %? 求余 ??? DIV? 除法并舍入 ?
8,复合日期表达式 复合日期表达式是一个日期标量表达式与一个时间间隔量的运算. 比如一个日期标量表达式加上10天.MYSQL必读
例如: ?MYSQL必读
SELECT '1990-10-12' + INTERVAL 10 DAY
'1990-10-12' + INTERVAL 10 DAY 是一个复合日期表达式. ?MYSQL必读
INTERVAL 10 DAY 是一个日期间隔量,表示10天,其它类似还有: INTERVAL 10 YEAR? 表示10年 INTERVAL 10 MONTH? 表示10个月 INTERVAL 10 WEEK? 表示10星期 INTERVAL 10 DAY? 表示10天 ?
当一个日期加上一个几天的日期间隔量时,这个日期会先转换为一个从0年开始的一个天数的顺序号,然后这个顺序号加上天数的日期间隔量,然后再转换成日期. 当一个日期加上一个几月的日期间隔量时,月份会直接加上月数的日期间隔量,如果新生成的日期不存在,则向下舍入到相应月份的上一日期.MYSQL必读
例如: SELECT '2010-01-31' + INTERVAL 1 MONTH 2010年1月31日加上一个月后的日期是2010年2月31日,由于2月份只有28天,所以结果会转化成2010年2月28日. ? 以上介绍MySQL表达式的相关知识,希望对大家有一定的赞助.MYSQL必读 编程之家PHP培训学院每天发布《Mysql实例MySQL表达式学习小结》等实战技能,PHP、MYSQL、LINUX、APP、JS,CSS全面培养人才。 (编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|