vlambda博客
学习文章列表

Mysql(一) 基础及常用函数



Mysql基础

所有的sql语句后面必须加上;

1.查看所有数据库:

show databases;

2.创建数据库:

create database day_01;

3.使用数据库:use数据库名;

4.创建表:

语法:Create table 表名( 字段1 类型, 
字段2 类型, 字段3 类型

); 案例:(java中String对应mysql中的varchar): Create table student( Name varchar(50), Sex varchar(5), Age int );

5.查看数据库中所有的表(先使用use数据库):show tables;

6.数据类型:

1.整数:int

2.字符:

  char() :定长字符,不管储存数据占多少字符,实际都占()多少字符

  varchar() :变长字符,储存数据占多少字符,实际都占()多少字符

  text:文本

3.时间:

     Date:yyyy-MM-dd 例子:2020-02-04

     Time:HH:mm:ss 时分秒

     Datetime:yyyy-MM-dd HH:mm:ss 例子:2020-02-04 17:06:30

     Timestamp:时间戳(数字),从固定的开始时间到现在时间的一个毫秒

     一:数据完整性:

         为了保证数据的一致性,正确性,可靠性

         数据完整性包括:实体完整性、域完整性、参照完整性

       1.实现实体完整性

         实体完整性是为了保证表里面的每条数据都是唯一的

          1>设置主键:非空且唯一

          2>设置唯一索引:

            如果违反了唯一约束:


          3>设置自增

       2.域完整性

       3.参照完整性

         参照完整性是定义一张表的外键和另外一张表的主键的引用规则,来约束两张表之间的联系。来控制数据的一致性和完整性。

 主表:学生表 被参照列:学号     学生表:学号(主键) 学号 姓名 年龄 101 张三 18 102 李四 19 从表:成绩表  参照列:学号 成绩表:学号(外键)     成绩表: 成绩编号 学号 成绩 1 101 100 2 102 50 3 103 99

添加数据违反外键约束:


当表添加了外键约束,由于级联约束,不能对主表的数据随便进行更改(删除,修改)


7.删除表:drop table 表名;

8.主键:PRIMARY KEY

(每一个表都必须要建主键,主键健在没有逻辑意义的一列)

用法:(1)在定义列的同时指定主键

       (2) 在定义完所有列之后指定主键

9.主键的自动增长AUTO_INCREMENT

用法: Create table student( id int primary key AUTO_INCREMENT, Name varchar(50), Sex varchar(5), Age int ); Create table student( id int AUTO_INCREMENT, Name varchar(50), Sex varchar(5), Age int, primary key(id) );

10.外键:FOREIGN key

还需要声明是关联(references)哪一个表里面的那一个字段



   用法(先创建外键关联的表):

create table classes( id int primary key AUTO_INCREMENT,--序号 name varchar(100)--班级名 ); create table classes( id int primary key AUTO_INCREMENT,--序号 name varchar(100),--人名 sex varchar(5),--性别 age int,--年龄 birthday date,--生日 score float(4,1),--成绩 cid int,--外键,关联的是classes表中的ID,用途就是标记学生属于哪个班级 foreign key(cid) references classes(id) );

11.sql语句 中的新增(int类型的字段不用单引号引起来,varchar类型就需要使用单引号引起来)

   (1)默认全部字段的新增(按照创建表时候的字段顺序每个都要赋值,不能少一个,不然就报错):insert into 表名 values(需要的值 );

   (2)选择字段新增:insert into 表名(字段1,字段2)values(字段1 的值,字段2 的值);

   (3)批量新增:insert into 表名(字段1,字段2)values(字段1的值,字段2的值),


12.sql语句中的修改

语法:update 表名 set 字段名 = 要修改的值

缺点:表中所有的字段值都会修改,不能修改单条

优点:可以快速修改一个字段的所有值。


语法:update 表名 set 字段名 = 要修改的值 where 条件

缺点:要修改表中多个字段,就无法实现

优点:根据咱们的条件进行修改(修改id=2)。


语法:update 表名 set 字段名1 = 要修改的值1,字段名2= 要修改的值2

      where 条件

语法(适用于多个条件都需要满足的):update 表名 set 字段名1 = 要修改的值1,字段名2= 要修改的值2 where 条件1 and 条件2

语法(适用于多个条件满足其中一个的):update 表名 set 字段名1 = 要修改的值1,字段名2= 要修改的值2 where 条件1 or 条件2

·1.修改表名: alter table 旧表名 rename 新表名;·2.修改字段的数据类型: alter table 表名 modify 字段名 数据类型; ·3.修改字段名:alter table 表名 change 旧字段名 新字段名 数据类型(不变); ·4.添加字段:alter table 表名 add 字段名 数据类型 约束(根据需求是否添加约束); ·5.删除字段:alter table 表名 drop字段名;·6.删除外键约束:alter table 表名 drop foreing key 外键约束名;·7.修改表时给表添加外键: 语法:alter table 表名 add constraint 外键名 foreing key(从表的外键) references 主表(主表的id)

13.sql语句中的查询

(1)查询表中所有字段 (*默认显示被查询表中的所有字段)

     语法:select*from 表名;

(2)查询表中个别字段

     语法:select 字段名1,字段2 from 表名;

(3)满足多条件查询

     语法:select * from 表名 where 条件1 and 条件2;

(4)满足多个条件中的一个

     语法:select * from 表名 where 条件1 or 条件2;

(5)>=,<=,!=

     语法:select * from 表名 where 条件1;

14.sql语句中的删除

(1)删除表中的所有数据

     语法:delete from 表名;

(2)根据条件删除

     1)多条件删除:delete from 表名 where 条件1 and 条件2;

     2)满足其余条件:delete from 表名 where 条件 1 or条件2;

15.sql语句创建表中的约束

(1)非空约束:not null

     作用:限制表中的字段,必须要输入值,不能为空值

     

用法: create table 表名( 字段名1 类型 约束 ); 案例: create table student( Id int primary key AUTO_INCREMENT, Name varchar(50) not null, );

(2)默认值约束:default 值

     作用:当添加值时,没有添加该字段时,采取默认值

     

用法: create table 表名( 字段名1 类型 约束 ); 案例: create table student( Id int primary key AUTO_INCREMENT, Name varchar(50) not null, Sex varchar(2) default'男' );

(3)避免重复的约束:UNIQUE

     作用:自动监测设置了避免重复的字段的添加值是否重复

    

 用法: create table 表名( 字段名1 类型 约束 ); 案例: create table student( Id int primary key AUTO_INCREMENT, Name varchar(50) not null, Sex varchar(2) default'男' ids varchar(30) unqiue );

16.别名

(1)语法

select 字段 as ‘别名名字’from 表名;

select 字段‘别名名字’from 表名;

17.函数

(1)求平均数avg() 通过对表中行数计数并计算指定字段的数据总和,求得该字段的平均值。

语法:select avg(字段名)from 表名 where 条件;

(2)count()函数

     字段可以为"*",为*时代表所有记录数,与字段数不同的时,记录数包括某些字段为null的记录,而字段数不包括为null的记录。

语法:SELECT COUNT(*) AS "男生数" FROM student WHERE gender ="male"

;

(3)最大 max(字段)函数

     如果指定字段的数据类型为字符串类型,先按字符串比较,然后返回最大值。

    

     max() 函数忽略列值为 null的行

语法:SELECT MAX(age) AS "年龄最大值" FROM student WHERE gender ="male";

(4)最小 min(字段)函数

     如果指定字段的数据类型为字符串类型,先按字符串比较,然后返回最大值。

    

     min() 函数忽略列值为 null的行

语法:SELECT MIN(age) AS "年龄最大值" FROM student WHERE gender ="male";

(5)求和sun()

语法:SELECT SUM(age) AS "年龄之和" FROM student WHERE gender ="male"

18.模糊查询

关键字:like

%表示任意多个任意字符

_:_表示一个任意字符

用法:select * from 表名 where 条件

例子: select * from 表名 where name like ‘张%’; -查询姓张的

select * from 表名 where name like ‘张_’; -查询名字为两个字的,并且姓张的

select * from 表名 where name like ‘%张%’;-查询名字中只要出现张字的

19.范围查询

(1)in:查询其中符合要求的值

语法:select*from 表名 where score in(80,90);-查询成绩要么是80要么是90

(2)Between and

语法:select * from 表名 where score Between 80 and 90;-查询成绩在80-90之间

20.判断空值

(1)is null:为空

用法:select*from student where name is null;-查询没有输入姓名的人员信息

(2)is not null:不为空

用法:select*from student where name is not null;-查询输入姓名的人员信息

21.分组

关键字:group by 字段名

注意:没有条件:group by 直接跟在查询语句的表名之后

有条件:group by 跟在查询语句中条件的后面

例子:

select cid, COUNT(*) AS'人数' from student GROUP BY cid; 

-根据cid分组,查询cid所属人员数量

select cid, COUNT(*) AS'人数' from student where sex='男' GROUP BY cid;

-根据cid分组,查询cid所属人员中男性人员的数量 

22.排序

关键字:order by 字段 【asc/desc】  -【】中的可写可不写,默认使用asc

ASC:升序,从小到大

DESC:降序,从大到小

例子:select * from student ORDER BY score DESC;

      select * from student ORDER BY score ASC;

      select * from student ORDER BY score;

注意:排序和分组同时都需要话,分组在前面,排序在后面

例子:

select cid, COUNT(*) AS'人数' from student GROUP BY cid  ORDER BY cid;

23.内连接查询

(1)关键字:inner join

(2)语法:select*from 左表 inner join 右表 on 左表.关联字段 = 右表.被关联字段

(3)进阶语法:select*from 左表 as 别名1 inner join 右表 as 别名2 on 别名1.关联字段 = 别名2.被关联字段

(4)带条件语法:select*from 左表 as 别名1 inner join 右表 as 别名2 on 别名1.关联字段 = 别名2.被关联字段 where 别名1.字段=值;

     注意:内连接显示有关的所有信息,表中关联字段为null的,不显示

24.左外连接查询

(1)关键字:left join

(2)语法:select*from 左表 left join 右表 on 左表.关联字段 = 右表.被关联字段

(3)进阶语法:select*from 左表 as 别名1 left join 右表 as 别名2 on 别名1.关联字段 = 别名2.被关联字段

(4)带条件语法:select*from 左表 as 别名1 left join 右表 as 别名2 on 别名1.关联字段 = 别名2.被关联字段 where 别名1.字段=值;

     注意:左连接显示left join 左边的所有信息,左边表的关联字段如果为空,那被关联表中的字段以null值显示

25.右外连接查询

(1)关键字:right join

(2)语法:select*from 左表 right join 右表 on 左表.关联字段 = 右表.被关联字段

(3)进阶语法:select*from 左表 as 别名1 right join 右表 as 别名2 on 别名1.关联字段 = 别名2.被关联字段

(4)带条件语法:select*from 左表 as 别名1 right join 右表 as 别名2 on 别名1.关联字段 = 别名2.被关联字段 where 别名1.字段=值;

    注意:右连接显示right join 右边表的所有信息,那左表要是没有关联右表,那左表的数据全部以null显示。

26.交叉连接

关键字:cross join

语法1:select*from classes,student;

语法2:select*from classes cross join student

注意:一般不使用

27.分页

关键字:limit 数字,数字

注意:第一个数字控制从哪开始,第二个数字控制几行


========================================================================================

-- 查询今天的数据


select * from `user` where to_days(birthday) = to_days(CURDATE());


-- 查询昨天的数据


select * from `user` where to_days(CURDATE()) - to_days(birthday)<=1;


-- 查询最近7天的数据


select * from `user` where birthday > DATE_SUB(CURDATE(),INTERVAL 7 DAY);


-- 查询最近一个季度的数据


select * from `user` where birthday > DATE_SUB(CURDATE(), INTERVAL 3 MONTH)


-- 最近一年的数据


select * from `user` where birthday > DATE_SUB(CURDATE(), INTERVAL 1 YEAR);


-- 本季度的数据


select * from `user` where quarter(birthday) = quarter(CURDATE());


-- 上季度的数据


select * from `user` where quarter(birthday) = quarter(DATE_SUB(CURDATE(), INTERVAL 1 QUARTER));


-- 查询今年的数据


select * from `user` where year(CURDATE()) - year(birthday) = 28 ;


-- 查询第几月的数据


select * from `user` where month(birthday) = 8 ;


-- 查询某年某月某日的数据


select * from `user` where date_format(birthday,'%Y-%m-%d')='2017-07-07';


-- 查询制定时间段内的数据(只写到月,会出错)


select * from `user` where birthday between '1888-5-1 00:00:00' and '2017-9-3 00:00:00';


-- 查询制定时间段内的数据(只写到月,会出错)


select * from `user` where birthday > '1989-5-1' and birthday < '2017-5-1';


Mysql(一) 基础及常用函数

show databases;use day_001;Create table students( Name varchar(50), Sex varchar(5), Age int );Create table student( Name varchar(50), Sex varchar(5), Age int, birthday date,score FLOAT(4,1) );Create table student( id int AUTO_INCREMENT, Name varchar(50), Sex varchar(5), Age int, birthday date, score FLOAT(4,1), PRIMARY key (id) );use day_001;CREATE table classes( id int PRIMARY key AUTO_INCREMENT, name varchar(100));CREATE table student( id int PRIMARY key AUTO_INCREMENT, Name varchar(50), Sex varchar(5), Age int, birthday date, score FLOAT(4,1), cid int,constraint foreign key(cid) references classes (id));



USE day_001;-- 查询语句INSERT INTO classes VALUES (1,'高软');INSERT INTO classes VALUES (2,'高软');INSERT INTO classes (name) VALUES ('高软HP1901');INSERT INTO classes (name) VALUES ('高软HP1902');INSERT INTO classes (name) VALUES ('高软HP1903');INSERT INTO classes (name) VALUES ('高软HP1904');

INSERT into classes (name) VALUES ('高软HP1911'),('高软HP1912'),('高软HP1913');





insert into student (name,sex,age,birthday,score,cid) VALUES ('张三','男',18,'2020-01-01',78.5,1),('张四','男',18,'2020-01-01',78.5,2),('张五','男',18,'2020-01-01',78.5,3);-- 修改ID为2的成绩,修改为90分-- sql 语句中的修改语句 id=2

UPDATE student set score = 90;

-- 条件 ID=2where id = 2

UPDATE student set score = 91 where id = 2;

-- 修改名字为张三的学生性别为女

update student set sex = '女' where name = '张三';

-- 修改 名字为李四 的学生 性别为男 成绩为100

update student set sex = '女', score = 10 where name = '张四';

-- 修改成绩为50 ,要求名字叫张四 并且性别为女的

update student set score = 50 where name ='张四' and sex = '女';

-- 修改成绩60 要求id=1或者性别为男的

update student set score = 60 where id = 1 or sex = '男';





查询不重复(distinct)----select distinct 字段 from 表名;-- 需要查询姓名为张三的信息-- 基本的查询语句-- sql语句中的 * 代表了表中所有的字段SELECT * FROM student;

SELECT name, score FROM student;-- name = '张三'SELECT * FROM student where name = '张三';

-- 需要查询姓名为张三 性别为女的信息SELECT * FROM student where name = '张三' and sex = '女';-- 需要查询姓名为张三或者姓名为张四的信息SELECT * FROM student where name = '张三' or name = '张四';

-- 查询姓名不为张三的人员信息-- !=SELECT * FROM student where name != '张三';

-- 查询成绩大于60的人员信息-- >SELECT * FROM student where score > 60;-- 查询成绩大于等于60的人员信息-- >=SELECT * FROM student where score >= 60;

-- 删除-- 删除id=1的学生

DELETE FROM student where id = 1;

-- 删除表中所有数据DELETE FROM student;


-- 查询insert into student (name,sex) VALUES ('张三','男');

-- 添加学生信息时 成绩和所属班级 不能为空



-- 不能为空,not NULLcreate table student( id int primary key AUTO_INCREMENT, name varchar(100), sex varchar(5), age int, birthday date, score float(4,1) not NULL, cid int not NULL, foreign key(cid) references classes(id) );

insert into student (score,cid) VALUES (87.5,2);

-- 默认值约束:DEFAULT具体值-- 当我添加学生信息时,没有添加性别字段时,默认的性别为男create table student ( id int primary key AUTO_INCREMENT, name varchar(100), sex varchar(5) DEFAULT'男', age int, birthday date, score float(4,1) not NULL, cid int not NULL, foreign key(cid) references classes(id) );

insert into student (score,cid) VALUES (87.5,2);

create table student ( id int primary key AUTO_INCREMENT, name varchar(100), sex varchar(5) DEFAULT'男', age int, birthday date, score float(4,1) not NULL, ids varchar (30), cid int not NULL, foreign key(cid) references classes(id) );insert into student (ids,score,cid) VALUES ('123456',87.5,2);

-- 身份证不能重复-- 不能重复 UNIQUEcreate table student ( id int primary key AUTO_INCREMENT, name varchar(100), sex varchar(5) DEFAULT'男', age int, birthday date, score float(4,1) not NULL, ids varchar (30) UNIQUE, cid int not NULL, foreign key(cid) references classes(id) );insert into student (name,ids,score,cid) VALUES ('张三','123456',87.5,2);insert into student (name,ids,score,cid) VALUES ('张1','1234567',87.5,2);



-- avg 平均值

SELECT avg(score) FROM student;

-- 显示需要的列名-- 别名-- 一:字段 as '1起的名字'-- 二:字段 '起的名字'

SELECT avg(score) as '平均成绩' FROM student;SELECT avg(score) '平均成绩' FROM student;

-- 求记录-- count

-- 求性别为男的人数select count(*) FROM student where sex ='男';

-- max(字段 )-- 查询成绩最高的人select MAX(score),name,age,birthday FROM student;

-- min(字段)select MIN(score),name,age,birthday FROM student; -- 求和-- SUM(字段)select SUM(score) FROM student where sex = '男';



-- 查询姓张的select * from student where name = '张三';-- 模糊查询-- LIKEselect * from student where name like '张%';select * from student where name like '张_';-- 人名中出现三的全部查询出来select * from student where name like '%三%';-- 查询成绩在80-90之间的学生 信息select * from student where score>=80 and score<=90;-- inselect * from student where score in(80,90);-- 查询生日不为空的人select * from student where birthday is not null;select * from student where birthday not null;-- 分组-- group by 字段-- 查询个个班级id,和所拥有的人数select cid, COUNT(*) AS'人数' from student GROUP BY cid; select cid, COUNT(*) AS'人数' from student where sex='男' GROUP BY cid; -- 排序-- order by 字段 (后面不跟desc或者asc默认asc)-- DESC降序,asc升序select * from student ORDER BY score DESC;select * from student ORDER BY score ASC;select * from student ORDER BY score;select cid, COUNT(*) AS'人数' from student GROUP BY cid  ORDER BY cid; -- 查询身份证为123456人员的班级名称select cid from student where ids='123456';SELECT * from classes where id = (select cid from student where ids='123456');select * from student;SELECT * FROM classes;-- 连接查询select student.*,classes.name from student INNER JOIN classes ON student.cid = classes.id;select stu.*,cla.name as cname from student as stu INNER JOIN classes as cla ON stu.cid = cla.id;select stu.*,cla.name as cname from student as stu INNER JOIN classes as cla ON stu.cid = cla.id where cla.name='高软';select stu.*,cla.name as cname from student as stu INNER JOIN classes as cla ON stu.cid = cla.id where stu.name='张三';-- 外连接-- left JOINselect stu.*,cla.name as cname from student as stu left JOIN classes as cla ON stu.cid = cla.id;select stu.*,cla.name as cname from student as stu right JOIN classes as cla ON stu.cid = cla.id;-- 交叉连接select * from student,classes;-- 分页-- limit 数字,数字select*from student LIMIT 0,2;select*from student LIMIT 2,2;select*from student LIMIT 4,2;

1.ABS(X):绝对值函数

2.PI():圆周率函数

3.SQRT(X):返回非负数x的二次方根

4.MOD(x,y):返回x被y除后的余数

5.Random():获取随机数的函数:

6.round():四舍五入函数

7.sign():符号函数

8.幂运算函数

1.pow(x,y)返回x的y次乘方的结果值。

2.exp(x)返回e的x乘方后的值

9.对数运算函数

LOG(x) 返回x的自然对数,x相对于基数e的对数

LOG10(x) 返回x的基数为10的对数

10.角度与弧度相互转换

RADIANS(x) 将参数x由角度转化为弧度

DEGREES(x) 将参数x由弧度转换为角度

11.正弦函数和反正弦函数

SIN(x) 返回x正弦,其中x为弧度值

ASIN(x) 返回x的正弦值,即正弦为x的值

12.余弦函数和反余弦函数

COS(x) 返回x的余弦,其中x为弧度值

ACOS(x) 返回x的反余弦值,即余弦是x的值

13.正切,反正切,余切函数

TAN(x) 返回x的正切,其中x为给定的弧度值

ATAN(X) 返回x的反正切,即正切为x的值

COT(x) 返回x的余切

14.计算字符串字符数和字符串长度的函数

    1.CHAR_LENGTH(str):返回值为字符串str所包含的字符个数,一个多字节字符算作一个单字符

    2.LENGTH(str)返回值为字符串的字节长度,一个汉字是3个字节,一个数字或字母算一个字节15.合并字符串函数

     1.CONCAT(s1,s2,…)返回结果为连接参数产生的字符串,有一个或多个参数,如若有一个参数为NULL,

   则返回值为NULL

     2. CONCAT_WS(x,s1,s2,…):x是其他参数的分隔符,如果x参数为null,则结果为null

16.替换字符串函数

     INSERT(s1,x,len,s2):返回字符串s1,从s1的x位置开始替换,len是替换的长度,s2为替换的值

17.字母大小写函数

LOWER(str) 将str中的字母转换为大写

LCASE(STR) 将str中的字母转换为小写

18.获取指定长度的字符串的函数

LEFT(s,n) 返回字符串s开始的最左边n个字符

RIGHT(s,n) 返回字符串s开始的最右边n个字符

19.填充字符串的函数

LPAD(s1,len,s2) 返回字符串s1,其左边由字符串s2填补到len字符长度

RPAD(s1,len,s2) 返回字符串s1,其右边由字符串s2填补到len字符长度

20.删除空格的函数

LTRIM(s) 返回字符串s,字符串左侧空格字符被删除

RTRIM(s) 返回字符串s,字符串右侧空格字符被删除

TRIM(s) 删除字符串s两侧的空格

21.删除指定字符串的函数

TRIM(s1 FROM s) 删除字符串s两段所有的字符串s1

22.重复生成字符串的函数REPEAT(s,n) 返回一个由重复的字符串s组成的字符,字符串s的数目等于n

23.空格函数和替换函数

SPACE(n) 返回一个由n个空格组成的字符串

REPLACE(S,S1,S2) 使用字符串s2代替字符串s中所有的字符串s1

24.比较字符串大小的函数

STRCMP(s1,s2) 若所有的字符串相同,则返回0,s1<s2:-1;s1>s2:1

25.获取字串的函数

SUBSTRING(s,n,len) 从字符串s返回一个长度同len字符相同的字符串,起始于位置n

MID(s,n,len) 作用于与SUBSTRING(s,n,len)相同

26.匹配子串开始位置的函数

LOCATE(str1,str) 返回字符串str1在字符串str中的开始位置

POSITION(str1,str)

INSTR(str1,str)

27.获取当前日期和时间值

:now()

28.获取月份

1.MONTH(date)

2.MONTHNAME(date):返回对应月份的英文名

29.获取星期的函数

1.DAYNAME()返回指定日期的工作日名称

2.WEEK()查询指定日期是一年中的第几周


30.获取天数的函数

DAYOFYEAR(d) 返回d是一年中的第几天,范围1-366

DAYOFMONTH(d) 返回d是一个月中的第几天,范围1-31

31.获取年份,季度,。小时,分钟和秒钟的函数

YEAR(date) 返回指定日期对应的年份(1970-2069)

QUARTER(date) 返回date对应的一年中的季度值(1-4)

MINUTE(time) 返回time对应的分钟数(0-59)

SECOND(time) 返回time对应的秒数(0-59)

32.将日期和时间格式化的函数DATE_FORMAT(date,format):根据format指定的格式显示date值33.条件判断函数

1.IF(expr,v1,v2):如果表达式expr是true,则返回值为v1,否则返回v2。 2.IFNULL(v1,v2):加入v1不为NULL,则返回值为v1;否则返回值为v2 。

1. VERSION():返回数据库的版本号

2. CONNECTION_ID() :返回服务器的连接数,也就是到现在为止MySQL服务的连接次数。

3. DATABASE() , SCHEMA() :返回当前数据库名

4. USER()、SYSTEM_USER()、SESSION_USER()、CURRENT_USEs()和CURRENT_USER :返回当前用户的名称。

5. CHARSET(str) :返回字符串str的字符集

6. LAST_INSERT_ID() :返回最后一个新增修改的第一个发生的值

34.加密函数

1. PASSWORD(str) :返回加密后的字符串密码,注意这个函数的加密是单向的(不可逆)

2. CONV(N,from_base,to_base) :不同进制数之间的转换,返回值为数值N的字符串表示,由from_base

进制转换为to_base进制

5. BENCHMARK(count,expr) :重复执行count次表达式expr,它可以用于计算MySQL处理表达式的速度,

结果值通常是0(0只是表示很快,并不是没有速度)。另一个作用是用

它在MySQL客户端内部报告语句执行的时间

6. CONVERT(str USING charset) :使用字符集charset表示字符串str