一個數(shù)據(jù)庫中可以有多個表,每個表都有一個名字,用來標識自己。表名具有唯一性。
表中的數(shù)據(jù)是按行存儲的,一行即為一條記錄。
MySQL下載安裝略過
net start MySQL服務(wù)名 【
】net stop MySQL服務(wù)名 【
mysql -u root -p 【進入數(shù)據(jù)庫】
mysql -h 主機IP地址 -P 端口號 -u 用戶名 -p回車
Enter Password:密碼
除了-p與密碼之間不要空格外,其他的-h,-P,-u與后面的參數(shù)值之間可以有空格
exit; 【 退出】
mysqldump -h主機地址 -P端口號 -u用戶名 -p密碼 --database 數(shù)據(jù)名 > 文件路徑/文件名.sql 【單個數(shù)據(jù)庫備份】
source sql腳本路徑名.sql 【導入執(zhí)行備份的sql腳本】
show create table 表名; 【查看表的引擎,字符集】
show table status\G 【查看全部表的引擎,字符集】
show engines\G 【列出數(shù)據(jù)庫支持的引擎】
alter table 表名 engine=引擎名; 【修改表引擎】
show create database 數(shù)據(jù)庫名; 【 查看字符集】
create database 表名 character set (gbk); 【修改表字符集】
show character set; 【查看字符集校隊】
DCL 數(shù)據(jù)控制
flush privileges; 【刷新權(quán)限】
create user '用戶名' @'IP地址' identified by '密碼'; 【 創(chuàng)建新用戶】
grant 權(quán)限1,... on 數(shù)據(jù)庫名.* to 用戶名 @ IP地址; 【用戶授權(quán)】
[update,instert,delete...權(quán)限名]
revoke 權(quán)限1,... on 數(shù)據(jù)庫名.* from 用戶名 @IP地址; 【撤銷權(quán)限】
所有的數(shù)據(jù)庫 就用*.* 所有的權(quán)限 就用all
show grants for 用戶名 @IP 地址 【查看權(quán)限】
drop user 用戶名 @IP地址 【刪除權(quán)限】
int(M),必須和unsigned zerofill一起使用才有意義
浮點型系列:float,double
定點型系列:decimal
decimal(M,D):表示最長為M位,其中小數(shù)點后D位
字符串類型:char,varchar(M),text
char如果沒有指定寬度,默認為1個字符
varchar(M),必須指定寬度
其他類型:bit, xxBlob, 枚舉,集合等
1、算術(shù)運算符
加:+
減:-
乘:*
除:/ div(只保留整數(shù)部分)
模:% mod
2、比較運算符
大于:>
小于:<
大于等于:>=
小于等于:>=
等于:= 不能用于null判斷
不等于:!= 或 <>
安全等于:<=> 可以用于null值判斷
3、邏輯運算符(建議用單詞,可讀性來說)
邏輯與:&& 或 and
邏輯或:|| 或 or
邏輯非:! 或 not
邏輯異或:^ 或 or
4、范圍
區(qū)間范圍:between x and y
not between x and y
集合范圍:in (x,x,x)
not in(x,x,x)
5、模糊查詢(只針對字符串類型,日期類型)
like 'xxx'
如果想要表示0~n個字符,用%
如果想要表示確定的1個字符,用_
6、位運算符(很少使用)
左移:<<
右移:>>
按位與:&
按位或:|
按位異或:^
7、特殊的null值處理
#(1)判斷時
xx is null
xx is not null
xx <=> null
#(2)計算時
ifnull(xx,代替值) 當xx是null時,用代替值計算
unsigned (無符號)
zerofill (使用0填充)
default (默認值)
comment (字段解釋說明)
not null (非空)
null (空)
unique (唯一索引)
index (普通索引)
primary key (主鍵)
auto_increment (自增)
as (別名)
(1)mysql的sql語法不區(qū)分大小寫
MySQL的關(guān)鍵字和函數(shù)名等不區(qū)分大小寫,但是對于數(shù)據(jù)值是否區(qū)分大小寫,和字符集與校對規(guī)則有關(guān)。
ci(大小寫不敏感),cs(大小寫敏感),_bin(二元,即比較是基于字符編碼的值而與language無關(guān),區(qū)分大小寫)
(2)命名時:盡量使用26個英文字母大小寫,數(shù)字0-9,下劃線,不要使用其他符號
(3)建議不要使用mysql的關(guān)鍵字等來作為表名、字段名等,如果不小心使用,請在SQL語句中使用`(飄號)引起來
(4)數(shù)據(jù)庫和表名、字段名等對象名中間不要包含空格
(5)同一個mysql軟件中,數(shù)據(jù)庫不能同名,同一個庫中,表不能重名,同一個表中,字段不能重名
(6)標點符號:
必須成對
必須英文狀態(tài)下半角輸入方式
字符串和日期類型可以使用單引號'
如果列的別名沒有包含空格,可以省略雙引號,如果有空格雙引號不能省略。
(7)SQL腳本中如何加注釋
單行注釋:#注釋內(nèi)容
單行注釋:--空格注釋內(nèi)容 其中--后面的空格必須有
多行注釋:/* 注釋內(nèi)容 */
show databases; 【查看所有數(shù)據(jù)庫】
use (dataname); 【切換使用數(shù)據(jù)庫】
create database (dataname); 【創(chuàng)建數(shù)據(jù)庫】
create database 數(shù)據(jù)名 charset 'utf8';
drop database (dataname); 【刪除數(shù)據(jù)庫】
--------------------------------------------
show tables ;
show tables from 數(shù)據(jù)庫名; 【查看所有表格】
create table [數(shù)據(jù)名.]表名(
字段名1 數(shù)據(jù)類型 修飾符,
字段名2 數(shù)據(jù)類型 修飾符,
); 【創(chuàng)建表格】
drop table [數(shù)據(jù)庫名.]表名稱; 【刪除表格】
describe [數(shù)據(jù)庫名.]表名稱;
desc [數(shù)據(jù)庫名.]表名稱; 【查看表結(jié)構(gòu)】
alter table 舊表名 rename 新表名;
rename table 舊表名 to 新表名; 【修改表名稱】
------------------------------------------------------
alter table 表名 add 字段名 字段類型 字段修飾; 【添加字段】
alter table 表名 add 字段名 字段類型 字段修飾 first; 【添加字段在首位】
alter table 表名 add 字段名 字段類型 字段修飾 after 字段名; 【添加新字段,并定位】
alter table 表名 drop 字段名; 【刪除字段】
alter table 表名change 舊字段名 新字段名 字段類型 字段修飾; 【修改字段名】
alter table 表名 modify 字段名 字段類型 字段修飾; 【修改字段類型及修飾】
alter table 表名 modify 字段名 字段類型 字段修飾 first; 【修改字段類型設(shè)首位】
alter table 表名 modify 字段名 字段類型 字段修飾 after 字段名; 【修改字段類型并定位】
insert into 表名 values(值1,2,...) 【各列必須以它們在表定義中出現(xiàn)的次序填充】
insert into 表名 (字段名1,2...) values(值1,2,...); 【VALUES必須以其指定的次序匹配指定的列名】
insert into 表名 values(值列表1),(值列表2)...; 【INSERT還存在另一種形式,可以利用它將SELECT語句的結(jié)果插入表中,這就是所謂的INSERT SELECT?!?br>insert into 表名 (部分字段列表) values(值列表1),(值列表2)...; 【添加數(shù)據(jù)】
update 表名 set 被修改字段=值,...[多個,號隔開] where (id=1); [判斷條件id=1] 【修改數(shù)據(jù)】(如果沒有加where條件,表示修改所有行,這個字段的值)
delete from 表名 where id=1; [判斷條件id=1] 【刪除數(shù)據(jù)】(如果沒有where條件,表示刪除整張表的數(shù)據(jù);)
truncate 表名;
truncate速度快、truncate無法回滾
--------------------------------------------------------
select * from [數(shù)據(jù)庫名.]表名; 【查詢整張表所有數(shù)據(jù)】
select 字段列表 from [數(shù)據(jù)庫名.]表名; 【查詢部分列表】
select * from [數(shù)據(jù)庫名.]表名 [where 條件];
select 字段列表 from [數(shù)據(jù)庫名.]表名 [where 條件];
聯(lián)系客服