mysql常见

一.mysql安装
1.yum 安装
yum install mysql-server mysql-devel

2.rpm安装
https://dev.mysql.com/downloads/mysql/下载rpm包
rpm -ivh XXX.rpm

3.源码安装
https://dev.mysql.com/downloads/mysql/ 下载源码包
解压mv改名字,创建mysql组和用户groupadd mysql 和useradd -r -g mysql mysql
更改权限 chown -R mysql mysql/ chgrp -R mysql mysql/
安装/mysql_install_db --user=mysql --datadir=/usr/local/mysql/   --datadir=/usr/local/mysql/data

首次启动
把服务加到系统服务中
cp support-files/my.server /etc/init.d/mysql
添加软连接
ln -s /usr/local/mysql/bin/mysql  /usr/bin/mysql
启动服务
service mysql start 
登录
mysql -uroot -p root
更改root用户密码和权限
update user set Password=PASSWORD("vipshop") where user='root';
grant all privileges on *.* to 'root'@'%' with grant option;
flush privileges;

二.创建用户
create user 'username'@'host' identified by 'password';
username:创建的用户
host:指定该用户在哪台主机上可以登录,如果本地用户使用localhost,如果想从任意远程主机登录,可使用通配符%
password 用户登录的密码,密码可以为空,为空表示不需要密码登录服务器
如:create user 'viptest'@'%' identified by '123456'

用户授权
grant privileges on databasename.tablename to 'username'@'host'
privileges用户的操作权限,如select insert update 如果要授予所有的,使用all
table 若用授予用户所有数据库所有表的操作权限可用*表示,*.*表示所有数据库所有表

grant all on *.* to 'viptest'@'%'
授权之后刷新全新 flush privileges;


三.数据库操作
查看:show databases;
创建:create database test_new;
删除:drop database test_new;

表操作
创建表:create table test_table(id bigint(20),name varchar(100),number int(12),PRIMARY KEY(id));
表插入数据:insert into test_table(id,name,number) values("1","张三",160000);
表修改数据:update test_table set number=150000 where id="1";
删除表数据:delete test_table test_table where id="1";
删除整个表:drop table test_table;

列操作
添加列:alter table test_table add city varchar(100) after name;
删除列:alter table test_table drop city; 
重命名列:alter table test_table change city newcity varchar(11);
重命名表:alter table test_table rename test_table_new

查询
排序 order by
升序: select * from test_table order by id asc;
降序:select * from test_table order by id desc;
多个字段排序:select * from test_table order by id,number;

模糊查询 %
select * from test_table where name like "%风";

去重查询
select distinct name from test_table;
分组查询
select  name from test_table group by name having count(*)>1 查询所有数量大于1的

统计函数(聚合函数)
select count(*) from test_table 查询表中有多少条数据
select max(number) from test_table 取number最大值
select min(number) from test_table 取最小值
select sum(number) from test_table 取number的和
select avg(number) from test_table 取平均数

查询结果优化

SELECT CONCAT(Name, '的总分为', Math + English) 总分统计 FROM tab_student;

限制数据记录查询数量

select * from test_table limit 10
mysql 备份与还原
备份:mysqldump -u用户名 -p 数据库名[dbname] > [backupfile.sql]
mysqldump -uroot -p test_base > test_base.sql
还原:mysql -h[ip] -P端口 -u用户名 -p数据库名 < d:xx.mysql[路径+备份文件]
mysql -uroot -p test_base_new < /root/test_base.sql

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章