MySQL快速掌握之基礎篇

--  mysql的複習與進階
--  創建一個結構完整的表
create table tab1(
id int(5) not null auto_increment primary key comment "這是ID",
name varchar(20) not null default "ran",
age int(2) not null
);
--  在id不能加default




--  複製表
create  table tab2 select * from tab1;


--  只複製結構,不復制內榮 
create  table tab2 like tab1; 


--  增加字段
alter table tab1 add sex varchar(2) not null;


--  刪除字段
alter table tab1 drop sex;


--  修改字段
alter table tab1 change name myname varchar(20) not null;


--  增加主鍵
alter table tab1 add primary key (id);


--  修改表明
alter table tab1 rename to tab11;


--  插入數據
insert into tab1 values(null,"zhangran","23");


--  查詢數據
--  limit 
select * from tab1 limit 1;


--  從第一個開始顯示,顯示一個
select * from tab1 limit 1,1;


--  排序
--order by asc|desc
select * from tab1 order by name asc;


--  更新數據
update tab1 set name="zhangranran",age="111" where name="zhangran" [order by][limit]


--  刪除數據
delete from tab1 where name="zhangran";
--  此處要注意一點,truncated也可以當delete使用,而且比delete要快,是一種數據定義語言,但是不能擺正數據的安全性
--  truncated之後的自增長是重新開始的。


--  連接
--  交叉連接
select * from tab1,tab2;
--  所有的都能查出來,冗餘的部分特別多


--  內連接
select tab1.name,tab2.myname from tab1 join tab2 on tab1.id=tab2.id;
--  加一個別名select * from tab1 a join tab2 b where tab1.id=tab2.id;




--  左連接跟右連接此處略了啊


--  自連接
--  需要加一個別名
select a.name,b.name from tab1 a,tab1 b where a.id=b.id;


--  子查詢
select * from tab1 where name=(select name from tab2 where name="zhangran");


--  子查詢做派生表
select * e.name from (select name from tab2) as e;


--  查詢中的IN應用
select * from tab1 where name in(select name from tab2);


--  exists的使用,此時子查詢作爲條件,如果有返回值說明是真,無返回值是假
select * from tab1 where exists (select name from tab1 where id=1);


--  事務處理
--  把幾條語句作爲一個整體
--  每一個都執行成功了纔算是事務的成功處理
--  否則返回最初狀態
start transaction 
insert into tab1 values(null,"zhangdayi",22);
update tab1 set age=11 where name="zhangdayi";
commit




--  想要撤銷這個事務
rollback




--  MySQL管理
--  數據備份
--  用戶權限
--  訪問控制
--  性能優化




--  數據備份
--  備份某個數據庫的一個表
mysqldump -u root -p111111 wangluo tab1 >D:/mysql.sql


--  備份某個數據庫裏面的所有的表
mysqldump -u root -p111111 wangluo >D:/mysql.sql


--  一次性備份多個數據庫
mysqldump -u root -p111111 --database db1 db2 >D:/mysql1.sql
--  需要特別注意的是database是單數而且它的前面是雙橫槓


--  將數據庫中的所有的表備份

mysqldump -u root -p111111 --all --database >D:/mysql2.sql


-- 將SQL文件導入到數據庫

source d:/aaa/bbb/ccc.sql;


--  用戶的權限及訪問控制
--  簡單的舉兩個例子
grant all privileges on *.* to 'newuser' identified by '111111' with grant option;



grant update,select on *.* to 'newuser' identified by '111111';


--  性能優化
--  加索引,在查詢操作時優化
--  優化數據庫服務
mysql -verbose -help
--  記住,該指令不是在mysql環境下輸入的是在cmd下輸入的


--  MySQL的基礎知識大概就這麼多,關鍵是勤練,多琢磨,以後記得常回過頭來看看!!!!!!!!!!!!!!!!!!!!
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章