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<‘1988-12-1’;
select * from db_user where date<‘1988-11-2’ or 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’);
在这里插入图片描述
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)锁详解


  1. A-D ↩︎

你可能感兴趣的:(数据库)