mysql语法及函数_MySQL语法及函数

修改密码:首先在DOS 下进入mysql安装路径的bin目录下,然后键入以下命令:

mysqladmin -uroot -p(原密码) password 新密码;

授权

格式:grant 权限 on 数据库.* to 用户名@登录主机 identified by ‘密码’

SHOW GRANTS FOR name; //查看name用户权限

REVOKE SELECT ON db_name.* TO name;    //GRANT的反操作,去除权限;

如,增加一个用户user密码为password,让其可以在本机上登录,

并对所有数据库有查询、插入、修改、删除的权限。首先用以root用户连入mysql,然后键入以下命令: grant

select,insert,update,delete on . to user@localhost identified by

“password”; 如果希望该用户能够在任何机器上登陆mysql,则将localhost改为"%"。

如果你不想user有密码,可以再打一个命令将密码去掉。 grant select,insert,update,delete on

mydb.* to user@localhost identified by “”; grant all privileges on

db.* to frolf@localhost identified by ‘ppp’; all privileges 所有权限

显示数据库

show databases;

判断是否存在数据库db,有的话先删除drop database if exists db;

创建数据库create database db;

删除数据库drop database db;

使用该数据库use db;

显示数据库中的表

show tables;

先判断表是否存在,存在先删除drop table if exists db_user;

创建表create table db_user(

id int auto_increment primary key,

name varchar(50),

sex varchar(20),

date varchar(50),

content varchar(100)

)default charset=utf8;

删除表drop table db_user;

查看表的结构

describe db_user; #可以简写为desc db_user;

插入数据insert into db_user values();

查询表中的数据select * from db_user;

修改某一条数据update db_user set sex=‘男’ where id=4;

删除数据delete from db_user where id=5;

查询语句:

select * from db_user where date>‘1988-1-2’ and date select * from db_user where date‘1988-12-1’;

select * from db_user where date between ‘1988-1-2’ and ‘1988-12-1’;

select * from db_user where id in (1,3,5); select * from db_user

order by id asc; select max(id),name,sex from db_user group by sex;

select min(date) from db_user; select avg(id) as ‘平均’ from db_user;

select count() from db_user; #统计表中总数 select count(sex) from

db_user; #统计表中性别总数 若有一条数据中sex为空的话,就不予以统计~ select sum(id) from

db_user;

#查询第i条以后到第j条的数据(不包括第i条)select * from db_user limit 2,5; #显示3-5条数据 SELECT * FROM tb_name GROUP BY score HAVING count()>2 SELECT * FROM

tb_name WHERE name REGEXP ‘1’ //找出以A-D 为开头的name create table

test( id int primary key auto_increment, name varchar(10) not null,

sex varchar(50) , #DEFAULT ‘男’ , age int unsigned, #不能为负值(如为负值

则默认为0) NO int unique #不可重复 position_id int not null,unique

(department_id,position_id) #设定唯一值

);

修改表的名字

alter table t_name rename to new_name;

向表中增加一个字段(列)

alter table tablename add columnname type;

alter table test add columnname varchar(20);

修改表中某个字段的名字alter table tablename change columnname newcolumnname type;

表depart 删除主键alter table depart drop primary key;

表depart 增加主键alter table depart add primary key PK_depart_pos

(department_id,position_id);

用文本方式将数据装入数据库表中(例如D:/mysql.txt)load data local infile “D:/mysql.txt” into table MYTABLE;

show variables like ‘query_cache%’;

解析:

query_cache_limit,单条数据量超过,就不会缓存了

query_cache_size,总共可以缓存的数据量

set global query_cache_type =1(完全开启),2(按需开启,sql中有sql_cache,sql_no_cache关键字),0(关闭),

mysql中部分函数的用法

concat(str1,str2,…)

把参数连成一个长字符串并返回(任何参数是null时返回null)

mysql> select concat(‘my’, ‘s’, ‘ql’); -> ‘mysql’

mysql> select concat(‘my’, null, ‘ql’);

45928ea4771501d23a874ee5e76ea8b0.png

mysql> select concat(14.3);   -> ‘14.3’

length(str)

返回字符串str的长度

locate(substr,str)

返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)

mysql> select locate(‘bar’, ‘foobarbar’);

-> 4

mysql> select locate(‘xbar’, ‘foobar’);

-> 0

locate(substr,str,pos)

返回字符串substr在字符串str的第pos个位置起第一次出现的位置(str不包含substr时返回0)

mysql> select locate(‘bar’, ‘foobarbar’,5);

-> 7

instr(str,substr)

返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)

mysql> select instr(‘foobarbar’, ‘bar’);

-> 4

mysql> select instr(‘xbar’, ‘foobar’);

-> 0

lpad(str,len,padstr)

用字符串padstr填补str左端直到字串长度为len并返回

mysql> select lpad(‘hi’,4,’??’);

-> ‘??hi’

rpad(str,len,padstr)

left(str,len)

返回字符串str的左端len个字符

mysql> select left(‘foobarbar’, 5);

-> ‘fooba’

right(str,len)

返回字符串str的右端len个字符

substring(str,pos,len)

返回字符串str的位置pos起len个字符mysql> select substring(‘quadratically’,5,6);

-> ‘ratica’

substring(str from pos)

返回字符串str的位置pos起的一个子串

mysql> select substring(‘quadratically’,5);

-> ‘ratically’

mysql> select substring(‘foobarbar’ from 4);

-> ‘barbar’

substring_index(str,delim,count)

返回从字符串str的第count个出现的分隔符delim之后的子串

(count为正数时返回左端,否则返回右端子串)

mysql> select substring_index(‘www.mysql.com’, ‘.’, 2);

-> ‘www.mysql’

mysql> select substring_index(‘www.mysql.com’, ‘.’, -2);

-> ‘mysql.com’

ltrim(str)

返回删除了左空格的字符串str

mysql> select ltrim(’ barbar’);

-> ‘barbar’

rtrim(str)

trim([[both | leading | trailing] [remstr] from] str)

返回前缀或后缀remstr被删除了的字符串str(位置参数默认both,remstr默认值为空格)

mysql> select trim(’ bar ');

-> ‘bar’

mysql> select trim(leading ‘x’ from ‘xxxbarxxx’);

-> ‘barxxx’

mysql> select trim(both ‘x’ from ‘xxxbarxxx’);

-> ‘bar’

mysql> select trim(trailing ‘xyz’ from ‘barxxyz’);

-> ‘barx’

replace(str,from_str,to_str)

用字符串to_str替换字符串str中的子串from_str并返回

repeat(str,count)

返回由count个字符串str连成的一个字符串(任何参数为null时

返回null,count<=0时返回一个空字符串)

mysql> select repeat(‘mysql’, 3);

-> ‘mysqlmysqlmysql’

reverse(str)

颠倒字符串str的字符顺序并返回

mysql> select reverse(‘abc’);

-> ‘cba’

insert(str,pos,len,newstr)

把字符串str由位置pos起len个字符长的子串替换为字符串

newstr并返回

mysql> select insert(‘quadratic’, 3, 4, ‘what’);

-> ‘quwhattic’

lower(str)

返回小写的字符串str

upper(str)

返回大写的字符串str

floor(n)

返回不大于n的最大整数值

mysql> select floor(1.23);

-> 1

mysql> select floor(-1.23);

-> -2

ceiling(n)

返回不小于n的最小整数值

mysql> select ceiling(1.23);

-> 2

mysql> select ceiling(-1.23);

-> -1

round(n,d)

返回n的四舍五入值,保留d位小数(d的默认值为0)

truncate(n,d)

保留数字n的d位小数并返回

date_format(date,format)

根据format字符串格式化date值

(在format字符串中可用标志符:

%m 月名字(january……december)

%w 星期名字(sunday……saturday)

%d 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)

%y 年, 数字, 4 位

%y 年, 数字, 2 位

%a 缩写的星期名字(sun……sat)

%d 月份中的天数, 数字(00……31)

%e 月份中的天数, 数字(0……31)

%m 月, 数字(01……12)

%c 月, 数字(1……12)

%b 缩写的月份名字(jan……dec)

%j 一年中的天数(001……366)

%h 小时(00……23)

%k 小时(0……23)

%h 小时(01……12)

%i 小时(01……12)

%l 小时(1……12)

%i 分钟, 数字(00……59)

%r 时间,12 小时(hh:mm:ss [ap]m)

%t 时间,24 小时(hh:mm:ss)

%s 秒(00……59)

%s 秒(00……59)

%p am或pm

%w 一个星期中的天数(0=sunday ……6=saturday )

%u 星期(0……52), 这里星期天是星期的第一天

%u 星期(0……52), 这里星期一是星期的第一天

%% 字符% )

mysql> select date_format(‘1997-10-04 22:23:00’,’%w %m %

y’);

-> ‘saturday october 1997’

now()

sysdate()

current_timestamp()

转换函数

cast

用法:cast(字段 as 数据类型) [当然是否可以成功转换,还要看数据类型强制转化时注意的问题]

convert:

用法:convert(字段,数据类型)

上一篇:MySQL在centOS7下的下载安装配置

下一篇:MySQL(InnoDB)锁详解

A-D ↩︎

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值