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

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