修改密码:首先在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)锁详解
A-D ↩︎