mysql數據庫是一個很不錯,適合中小型企業的數據庫,實用性很高,而且是開源免費的。
希望大家好好學, 我在聲明一下,一下的所有內容都是我之前一個字一個字記錄下來的,希望大家好好看,沒有抄襲。
mysql的內容
庫管理: 建庫 查庫 刪除庫
表管理: 建表 查表 刪除表
sql查詢
數據的導入導出
用戶的授權和權限的撤銷
數據庫的備份與恢復
binlog日誌 實現增量備份
AD
讀寫分離
mysql集羣
LAMP
service mysqld status 查看服務是否啓動
-------------------------------
mysql
vim /etc/my.cnf 配置文件
ps aux |grep mysqld 查看mysql的安裝信息
cd /var/lib/mysql/ rpm包的mysql 目錄
REFERENCES
登錄mysql -h那個地址的主機 (必須授權之後纔可以遠程地址登錄)
mysql -hlocalhost -uroot -p123
數據庫名字要唯一性
數據庫名區分大小寫
不能用純數字創建庫名
不能用特殊符合創建庫名
不能用關鍵字創建庫名
\c 結束sql的命令 但是一定要在沒有分號的前提下
mysql裏的庫和在系統裏的文件權限是一致的
爲了安全起見 我們可以把mysql用戶的shell改成sbin/nologin 只把他當成一個屬組省得有人用mysql用戶刪除mysql目錄更危險
-------------------------------------
查看庫
show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| discuz |
| farm |
| mysql |
| test |
| ucenter |
+--------------------+
test 庫 是公共庫 隨意授予權限
mysql 授權庫 驗證用戶信息 (這個不能刪出)
information_schema 架構信息庫 虛擬庫 (這裏的表不佔用你的磁盤空間 內容存放在內存裏)
[root@xu db1]# vim yg5.
yg5.frm 表結構
yg5.MYD 表中數據文件
yg5.MYI 表中索引信息
-----------------------------------
創建庫
create database studb;
切換庫 使用那個庫
use studb;
查看當前所在的庫
select database();
查看當前登錄的帳號是
select user();
查看用戶的權限
show grants;
ll -d /var/lib/mysql/ 庫的文件夾必須有寫的權限
----------------------------------
刪庫 (直接刪文件,是否是空的)
drop database studb;
刪出表
drop table yg11;
進庫查看錶
show tables;
---------------------------
創建表 (一列 在數據庫裏叫做字段) 字段名 類型 (類型就是比如男女 姓名) 兼值 (約數條件)
create teble db1.xu(
<字段名字> <類型> (寬度) [約束條件],
<字段名字> <類型> (寬度) [約束條件],
<字段名字> <類型> (寬度) [約束條件]
);
---------------------------------------
mysql下的常見類型
數值類型 分爲 ×××(int) 浮點型(float)
字符類型 char(固定長度) varchar(變化的長度) 最大能存255個字符
日期時間類型 year data time datetime
枚舉類型 menu 單選 set 多選
int (3 )這裏的數值 是顯示寬度 和char 的限制不一樣 (顯示寬度不限制字符的長度)
整數位 是小數的是四捨五入保存的
浮點型 是 單單精度浮點數值和雙精度浮點數值
---------------------------------
創建表裏的字段
mysql> create table db1.game(
-> name char(4),
-> level tinyint(3)
-> );
show tables; 查看錶
1字節=8位
----------------------------------
desc game; 查看錶結構
create table a (id int); 創建表
show create table a; 查看創建表過程
---------------------------
字段中插入內容
mysql> insert into db1.game(name,level)
-> values
-> ("ts",0),("swk,300");
查看錶裏的內容
select * from game;
創建有約束條件的表
create table game2(level tinyint unsigned);
----------------------------
create table f(id int(4) zerofill); 用0補位
數字不用框起來
單引號 和雙引號區別
單無所謂
雙裏面有符號或者空格的
----------------------------
浮點型
創建 小數點共7位 小數點是2位
create table gz(gz float(7.2));
----------------------
創建表結構!
顯示現在的日期和時間
select now();
日期時間類型
mysql> create table yg4(
-> name varchar(10),
-> wrok year,
-> birthday date,
-> worktime time,
-> metting datetime
-> );
通過函數 保存現在的時間 到yg4表裏
insert into yg4 values ("jim",now(),now(),now(),now());
查看
select * from yg4;
手動插入
mysql> insert into yg4 values ("tom",1998,17560101,100000,20130218103000);
查看
mysql> select * from yg4;
插入值
mysql> insert into yg4(name,wrok)values("lucy",98);
01-69 是以20開頭的
70-99 是以19開頭的
插入00是錯誤的
---------------------------------------
枚舉類型 (單選,多選)
name char(4)not null,
age tinyint (2)unsigned default 24,
sex enum(“boy”,“gril“,“no”)default “boy”,
loves set (“a”,“b”,“c”,“d”) default “a,b”
---
創建表結構
mysql> create table yg5(
-> name char(4) not null,
-> age tinyint(2) default 24,
-> sex enum("boy","gril") default "boy",
-> loves set("a","b","c","f") default "a,b"
-> );
添加jim
insert into yg5(name)values("jim");
查看
mysql> select * from yg5
-> ;
+------+------+------+-------+
| name | age | sex | loves |
+------+------+------+-------+
| jim | 24 | boy | a,b |
+------+------+------+-------+
1 row in set (0.00 sec)
插入lili
mysql> insert into yg5 values("lili",21,"gril","a");
查看
mysql> select * from yg5
-> ;
+------+------+------+-------+
| name | age | sex | loves |
+------+------+------+-------+
| jim | 24 | boy | a,b |
| lili | 21 | gril | a |
+------+------+------+-------+
2 rows in set (0.00 sec)
-----------------------------------
刪除表中的記錄
delete from a; 這個代表 把a表中所有的內容刪掉(慎用)
加條件的 刪除匹配NULL的值
mysql> delete from yg5 where name="NULL";
刪除NULL值的字段
mysql> delete from yg5 where age is null;
--------------------------------
查看錶結構
mysql> desc yg5;
修改表結構
alter table 數據名,表名 動作;
動作:
add 字段名 類型 (寬度) 約束條件
添加
mysql> alter table yg5 add stu_id char(8) not null,
-> add mail varchar(30) default "[email protected]";
刪出字段
mysql> alter table yg5 drop sex;
添加到第一行
mysql> alter table yg5 add stu_id char(8) not null first;
把QQ添加到sex下
mysql> alter table yg5 add QQ varchar(8) not null after sex;
---------------------------------
修該字段類型
modify
查看錶結構
desc game;
修改類型
mysql> alter table yg5 modify loves set("muisc","football")not null defalut "muisc";
--------------------------
修改字段名
change
修改字段名 把mail 改爲email
mysql> alter table yg5 change mail email varchar(30) default "[email protected]";
------------------------------
修改ro更新表中的記錄 (一定要加上條件)
uptate 表名 set 字段列表 where 條件
修改
mysql> update yg5 set stu_id="88888888" where name="lucy";
修改多個記錄
mysql> update yg5 set stu_id="99999999",QQ="2348444",loves="book,film" where name="lili";
------------------------------------
複製表 (在複製表的時候,原表key字段不會複製到新表)
mysql> create table yg6 select * from yg5;
複製原表結構(空表) 錯誤的查詢 顯示的是空值
mysql> create table yg7 select * from yg5 where name is null;
-----------------
表改名
mysql> alter table yg7 rename txt;
-------------------------