MySQL快速掌握之基礎篇

2021-09-01 03:14:13 字數 3107 閱讀 5740

-- 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 *** varchar(2) not null;

-- 刪除字段

alter table tab1 drop ***;

-- 修改字段

alter table tab1 change name myname varchar(20) not null;

-- 增加主鍵

alter table tab1 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

-- 使用者的許可權及訪問控制

-- 簡單的舉兩個例子

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的基礎知識大概就這麼多,關鍵是勤練,多琢磨,以後記得常回過頭來看看!!!!!!!!!!!!!!!!!!!!

MySQL 基礎篇 之索引

一 索引的引入 索引定義 索引是由資料庫表中一列或者多列組合而成,其作用是提高對錶中資料的查詢速度。類似於圖書的目錄,方便快速定位,尋找指定的內容,如一本1000頁的書,如果沒有目錄,你想要知道指定的內容,必須要1頁1頁翻過去,是不是很浪費時間?二 索引的優缺點 優點 提高查詢資料的速度。缺點 建立...

入門linux基礎之mysql基礎篇

mysql建立使用者?需要注意什麼?如 user3 localhost create user user3 localhost identified by qianfeng 123 mysql刪除用?drop user user3 localhost mysql查詢使用者?select user,h...

MySQL 基礎篇 之Table操作

一 表的簡介 表是資料庫儲存資料的基本單位,乙個表包含若干個欄位和記錄 二 建立表 語法 create table 表名 屬性名 資料型別 約束條件 屬性名 資料型別 約束條件 屬性名 資料型別 約束條件 約束條件 例 建立圖書類別表 t booktype mysql create table t ...