mysql数据类型和运算符
- 格式:ppt
- 大小:165.00 KB
- 文档页数:17
mysql位运算符
在 MySQL 中,位运算符用于对整数类型的数据进行位操作。
下面是 MySQL 中常用的位运算符:
按位与 (&):
语法:a & b
描述:对两个整数的每一位执行与操作。
如果对应位都为1,则结果为1;否则为0。
SELECT 29 & 14; -- 结果为12
按位或 (|):
语法:a | b
描述:对两个整数的每一位执行或操作。
如果对应位中至少有一个为1,则结果为1;否则为0。
SELECT 29 | 14; -- 结果为31
按位异或 (^):
语法:a ^ b
描述:对两个整数的每一位执行异或操作。
如果对应位相异,则结果为1;否则为0。
SELECT 29 ^ 14; -- 结果为19
按位取反 (~):
语法:~a
描述:对整数的每一位执行取反操作。
0 变为1,1 变为0。
SELECT ~29; -- 结果为-30
在使用位运算符时,需要注意以下几点:
位运算通常用于处理一些底层的位级别的操作,如权限控制、集合运算等。
位运算符的操作数通常是整数。
要理解位运算符在二进制中的工作原理,对于每一位是否为1或0都要有清晰的了解。
在实际应用中,位运算符常用于一些特殊的需求,而在通常的查询和数据操作中,较少使用。
MySQL(⼆)数据库数据类型详解 序⾔ 今天去健⾝了,感觉把⾝体练好还是不错的,闲话不多说,把这个数据库所遇到的数据类型今天统统在这⾥讲清楚了,以后在看到什么数据类型,咱度应该认识,下⾯就跟着我的节奏去把这个拿下吧。
---WZY⼀、数据类型 MySQL的数据类型有⼤概可以分为5种,分别是整数类型、浮点数类型和定点数类型、⽇期和时间类型、字符串类型、⼆进制类型。
现在可以来看看你对这5种类型的熟悉程度,哪个看起来懵逼了,那就说明⾃⼰哪个不熟悉,不理解。
注意:整数类型和浮点数类型可以统称为数值数据类型,这不难理解。
数值数据类型 整数类型:TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT 浮点数类型:FLOAT、DOUBLE 定点⼩数:DECIMAL ⽇期/时间类型 YEAR、TIME、DATE、DATETIME、TIMESTAMP 字符串类型 CHAR、VARCHAR、TEXT、ENUM、SET等 ⼆进制类型 BIT、BINARY、VARBINARY、BLOB 1、整数类型 不管你学什么语⾔,在基础⽅⾯,都应该知道 1个字节= 8位⼆进制数。
每个类型的取值范围也就能够知道,⽐如TINYINT占⽤1个字节,也就是8位,2的8次⽅减1等于255,也就是说如果代表没符号的整数,该取值范围为0~255,如果是有符号的,最⾼位为符号号位,也就是2的7次⽅减1,也就是127,取值范围为-128~127,为什么需要减1,这个问题就需要考虑临界值的问题了。
⽽考虑临界值问题⼜有需要讨论原码补码反码的知识,这些度不是我们讨论的重点,所以在这就⾃⾏百度。
给出⼀张范围表,给⼤家做参考。
不同整数类型的取值范围 根据⾃⼰所需去选取不同的类型名称, 例如: CREATE TABLE aaa( id INT(10) PRIMARY KEY, age INT(6) ); 这个例⼦中INT(10)、INT(6) 括号中的数字表⽰的是该数据类型指定的显⽰宽度,指定能够显⽰的数值中数字的个数。
MySql数据库的列类型(字段类型)MySQL数据库的表是一个二维表,由一个或多个数据列构成。
每个数据列都有它的特定类型,该类型决定了MySQL如何看待该列数据,我们可以把整型数值存放到字符类型的列中,MySQL则会把它看成字符串来处理。
MySQL中的列类型有三种:数值类、字符串类和日期/时间类。
从大类来看列类型和数值类型一样,都是只有三种。
但每种列类型都还可细分。
下面对各种列类型进行详细介绍。
数值类的数据列类型数值型的列类型包括整型和浮点型两大类。
TINYINT:1字节非常小的正整数,带符号:-128~127,不带符号:0~255SMALLINT:2字节小整数,带符号:-32768~32767,不带符号:0~65535MEDIUMINT:3字节中等大小的整数,带符号:-8388608~8388607,不带符号:0~16777215INT:4字节标准整数,带符号:-2147483648~2147483647,不带符号:0~4294967295BIGINT:8字节大整数,带符号:-9223372036854775808~9233372036854775807,不带符号:0~18446744073709551615FLOAT:4字节单精度浮点数,最小非零值:+-1.175494351E-38,最大非零值:+-3.402823466E+38 DOUBLE:8字节双精度浮点数,最小非零值:+-2.2250738585072014E-308,最大非零值:+-1.7976931348623157E+308DECIMAL:M+2字节以字符串形式表示的浮点数,它的取值范围可变,由M和D的值决定。
整型数据列类型MySQL有五种整型数据列类型,即TINYINT,SMALLINT,MEDIUMINT,INT和BIGINT。
它们之间的区别是取值范围不同,存储空间也各不相同。
在整型数据列后加上UNSIGNED属性可以禁止负数,取值从0开始。
Mysql 三大列类型1. 数值型整型Tinyint 、Smallint、Mediumint 、Int、Bigint小数型Float(D,M),Decimal(D,M)2. 字符串型Char(M)Varchar(M)Text 文本类型3. 日期时间类型Date 日期Time 时间Datetime 时间类型Year年类型一.整型列的字节与存储范围从数学上讨论tinyint ,建表时既能足够存放,又不浪费空间。
即:(1). 占据空间(2). 存储范围通过占用字节和所存范围分关系合理的选择类型例:Tinyint经测试,Tinyint 的默认为有符号-128~127之间,当越界时自动取相应 的边界值。
若要存0~255无符号时:列的可选属性:Tinyin t (M ) un sig ned zerofill.M :宽度(在0填充的时候才有意义)Un sig ned:无符号类型(非负),影响存储范围 Zerofill :0填充(默认无符号)1> insert into test-> (name,age3)-> ualu&s->「赵六'/S');u QIC, 1 row aff©et&d (0.00 soc)箕from t&st;I id I name I age I agel I age2 I age3 I卜--------- + ------------- + --------------- + -------------- + --------------- + ----------------- +rows in at (0.07 SEC)列可以声明默认值,而且推荐声明默认值not null default 0; ysql> alter table test add tinyint(3j not null default 0;uery 0IC, 9 rows affected (0.13 $ec)ecords: 9 Duplicates: 0 Uarnings: O小数型/浮点型、定点型Float(M,D):M代表总位数,D代表小数位(6,2)为例:-9999.99 ->9999.99 12345G789一一一一张张张张李张李王制LLuNi NULLLLuNLLJNI NULL NULLLLuN三四三四五六6NULL NULL I NULL ILLuNNULL | 2G0 | NULL | NULL !NULL I 0 I NULL I NULL |NULL I NULL I 127 I NULL Iy$ql> t M from 七。
mysql存储过程之WHILE循环,LOOP循环以及REPEAT循环在MySQL存储过程的语句中有三个标准的循环⽅式:WHILE循环,LOOP循环以及REPEAT循环。
还有⼀种⾮标准的循环⽅式:GOTO,不过这种循环⽅式最好别⽤,很容易引起程序的混乱,在这⾥就不错具体介绍了。
这⼏个循环语句的格式如下:WHILE……DO……END WHILEREPEAT……UNTIL END REPEATLOOP……END LOOPGOTO下⾯⾸先使⽤第⼀种循环编写⼀个例⼦。
mysql> create procedure pro10()-> begin-> declare i int;-> set i=0;-> while i<5 do-> insert into t1(filed) values(i);-> set i=i+1;-> end while;-> end;//Query OK, 0 rows affected (0.00 sec)在这个例⼦中,INSERT和SET语句在WHILE和END WHILE之间,当变量i⼤于等于5的时候就退出循环。
使⽤set i=0;语句是为了防⽌⼀个常见的错误,如果没有初始化,i默认变量值为NULL,⽽NULL和任何值操作的结果都是NULL。
执⾏⼀下这个存储过程并产看⼀下执⾏结果:mysql> delete from t1//Query OK, 0 rows affected (0.00 sec)mysql> call pro10()//Query OK, 1 row affected (0.00 sec)mysql> select * from t1//+——-+| filed |+——-+| 0 || 1 || 2 || 3 || 4 |+——-+5 rows in set (0.00 sec)以上就是执⾏结果,有5⾏数据插⼊到数据库中,证明存储过程编写正确⽆误^_^。
如何使用MySQL中的函数与操作符实现数据计算使用MySQL中的函数与操作符实现数据计算导言:MySQL是一种流行的关系型数据库管理系统,广泛应用于各个行业的数据存储和处理中。
在数据存储和处理中,经常需要进行一些简单或复杂的计算操作,如求和、平均值、最大值、最小值等。
本文将介绍如何使用MySQL中的函数与操作符实现这些数据计算。
一、基本数学函数与操作符1. 加法与减法:MySQL提供了'+ '和'- '操作符用于实现基本的加法和减法运算。
例如,假设我们有一个表格'products',其中包含了产品销售额的数据,我们可以使用如下SQL语句计算产品销售额的总和:SELECT SUM(sales) AS total_sales FROM products;2. 乘法和除法:MySQL提供了'* '和'/ '操作符用于实现基本的乘法和除法运算。
例如,假设我们有一个表格'orders',其中包含了订单数量和单价的数据,我们可以使用如下SQL语句计算订单总金额:SELECT SUM(quantity * price) AS total_amount FROM orders;3. 绝对值:MySQL提供了'ABS()'函数用于计算一个数的绝对值。
例如,假设我们有一个表格'students',其中包含了学生的成绩数据,我们可以使用如下SQL语句计算平均分数的绝对值:SELECT AVG(ABS(score)) AS avg_abs_score FROM students;4. 平方和开方:MySQL提供了'POW()'和'SQRT()'函数用于计算一个数的平方和开方。
例如,假设我们有一个表格'prices',其中包含了商品的价格数据,我们可以使用如下SQL语句计算价格的标准差:SELECT SQRT(SUM(POW(price - avg_price, 2))/COUNT(price)) ASstandard_deviation FROM prices;二、统计函数与操作符1. 求和:MySQL提供了'SUM()'函数用于计算一列数据的总和。
四、MySQL数据类型和运算符 数据库表由多列字段构成,每⼀个字段指定了不同的数据类型。
指定字段的数据类型之后,也就决定了向字段插⼊的数据内容。
不同的数据类型也决定了MySQL在存储它们的时候使⽤的⽅式,以及在使⽤它们的时候选择什么运算符号进⾏运算。
⼀、MySQL数据类型介绍 MySQL⽀持多种数据类型,主要有数值类型、⽇期/时间类型和字符串类型。
(1)数值数据类型:包括整数类型TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT,浮点⼩数数据类型FLOAT和DOUBLE,定点⼩数类型DECIMAL。
(2)⽇期/时间类型:包括YEAR、TIME、DATE、DATETIME和TIMESTAMP。
(3)字符串类型:包括CHAR、VARCHAR、BINARY、VARBINARY、BLOB、TEXT、ENUM和SET等。
字符串类型⼜分为⽂本字符串和⼆进制字符串。
1.1 整数类型 数值型数据类型主要⽤来存储数字,MySQL提供了多种数值数据类型,不同的数据类型提供不同的取值范围,可以存储的值范围越⼤,其所需的存储空间也会越⼤。
MySQL主要提供的整数类型有:TINYINT、SMALLINT、MEDIUMINT、INT(INTEGER)、BIGINT。
整数类型的属性字段可以添加AUTO_INCREMENT⾃增约束条件。
下表列出了MySQL中的数值类型:MySQL中的整数型数据类型数据名称说明存储需求默认宽度值TINYINT很⼩的整数1个字节4SMALLINT⼩的整数2个字节6MEDIUMINT中等⼤⼩的整数3个字节9INT(INTEGER)普通⼤⼩的整数4个字节11BIGINT⼤整数8个字节20 根据占⽤字节数可以求出每⼀种数据类型的取值范围,例如TINYINT需要1个字节(8bits)来存储,那么TINYINT⽆符号数的最⼤值为28-1,即255;TINYINT有符号数的最⼤值为27-1,即127。
MySQL的数据类型⽬录MySQL的数据类型数据库中的每个列都应该有适当的数据类型,⽤于限制或允许该列中存储的数据。
例如,列中存储的为数字,则相应的数据类型应该为数值类型。
如果使⽤错误的数据类型可能会严重影响应⽤程序的功能和性能,所以在设计表时,应该特别重视数据列所⽤的数据类型。
更改包含数据的列不是⼀件⼩事,这样做可能会导致数据丢失。
因此,在创建表时必须为每个列设置正确的数据类型和长度。
MySQL中定义数据字段的类型对你数据库的优化是⾮常重要的。
MySQL⽀持所有标准SQL数值数据类型。
MySQL⽀持多种类型,⼤致可以分为三类:数值⽇期/时间字符(串)类型。
数据类型分类1. 数值类型(整数类型和⼩数类型)整数类型:包括 TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT。
⼩数类型:浮点数类型包括 FLOAT 和 DOUBLE。
定点数类型为 DECIMAL。
2. ⽇期/时间类型包括 YEAR、TIME、DATE、DATETIME 和 TIMESTAMP。
3. 字符类型(⽂本字符串和⼆进制字符串)字符串类型:包括 CHAR、VARCHAR、BINARY、VARBINARY、BLOB、TEXT、ENUM 和 SET 等。
⼆进制类型:包括 BIT、BINARY、VARBINARY、TINYBLOB、BLOB、MEDIUMBLOB 和 LONGBLOB。
数值类型MySQL⽀持所有标准SQL数值数据类型。
这些类型包括严格数值数据类型(INTEGER、SMALLINT、DECIMAL和NUMERIC),以及近似数值数据类型(FLOAT、REAL和DOUBLEPRECISION)。
关键字INT是INTEGER的同义词,关键字DEC是DECIMAL的同义词。
BIT数据类型保存位字段值,并且⽀持MyISAM、MEMORY、InnoDB和BDB表。
作为SQL标准的扩展,MySQL也⽀持整数类型TINYINT、MEDIUMINT和BIGINT。
⼿把⼿教你MySQL运算符⽬录⼀、算术运算符⼆、⽐较运算符三、逻辑运算符四、位运算符五、运算符的优先级总结⼀、算术运算符主要⽤于数学运算,其可以连接运算符前后的两个数值或表达式,对数值或表达式进⾏加(+)、减(-)、乘(*)、除(/)和取模(%)运算1.加法与减法运算符⼀个整数类型的值对整数进⾏加法和减法操作,结果还是⼀个整数⼀个整数类型的值对浮点数进⾏加法和减法操作,结果是⼀个浮点数在Java中,+的左右两边如果有字符串,那么表⽰字符串的拼接。
但是在MySQL中+只表⽰数值相加。
如果遇到⾮数值类型,先尝试转成数值,如果转失败,就按0计算2.乘法与除法运算符⼀个数乘以整数1和除以整数1后仍得原数⼀个数除以整数后,不管是否能除尽,结果都为⼀个浮点数⼀个数除以另⼀个数,除不尽时,结果为⼀个浮点数,并保留到⼩数点后4位乘法和除法的优先级相同,进⾏先乘后除操作与先除后乘操作,得出的结果相同在数学运算中,0不能⽤作除数,在MySQL中,⼀个数除以0为NULL3、求模(求余)运算符#筛选出employee_id是偶数的员⼯SELECT * FROM employeesWHERE employee_id MOD 2 = 0;⼆、⽐较运算符⽤来对表达式左边的操作数和右边的操作数进⾏⽐较,⽐较的结果为真则返回1,⽐较的结果为假则返回0,其他情况则返回NULL⽐较运算符经常被⽤来作为SELECT查询语句的条件来使⽤,返回符合条件的结果记录4.等号运算符等号运算符(=)判断等号两边的值、字符串或表达式是否相等,若相等则返回1,不相等则返回0在使⽤等号运算符时,遵循如下规则○如果等号两边的值、字符串或表达式都为字符串,则MySQL会按照字符串进⾏⽐较,其⽐较的是每个字符串中字符的ANSI编码是否相等○如果等号两边的值⼀个是整数,另⼀个是字符串,则MySQL会将字符串转化为数字进⾏⽐较○如果等号两边的值、字符串或表达式中有⼀个为NULL,则⽐较结果为NULL5.安全等于运算符安全等于运算符(<=>)与等于运算符(=)的作⽤是相似的,唯⼀的区别是‘<=>’可以⽤来对NULL进⾏判断。