一、數(shù)據(jù)類型
1佩谷、整型(xxxint)
tinyint(m) 1個字節(jié)表示(-128~127)
smallint(m) 2個字節(jié)表示(-32768~32767)
mediumint(m) 3個字節(jié)表示(-8388608~8388607)
int(m) 4個字節(jié)表示(-2147483648~2147483647)
bigint(m) 8個字節(jié)表示(±9.22*10的18次方)
m表示最大顯示寬度
2盐碱、浮點型(float和double)
float(m,d) 單精度浮點型健无,8位精度(4字節(jié))陶贼,m是十進(jìn)制數(shù)字的總個數(shù)春贸,d是小數(shù)點后面的數(shù)字個數(shù)
double(m,d) 雙精度浮點型,16位精度(8字節(jié))
參數(shù)m只影響顯示效果嘹吨,不影響精度搬味,d卻不同,會影響到精度蟀拷。
3碰纬、定點數(shù)(decimal)
decimal(m,d)定點類型。 浮點型在數(shù)據(jù)庫中存放的是近似值问芬,而定點類型在數(shù)據(jù)庫中存放的是精確值悦析。參數(shù)m是定點類型數(shù)字的最大個數(shù)(精度),范圍為065此衅,d為小數(shù)點右側(cè)數(shù)字的個數(shù)强戴,范圍為030,但不得超過m炕柔。對定點數(shù)的計算能精確到65位數(shù)字酌泰。
4、字符串(char,varchar,xxxtext)
char(n) 固定長度的字符串匕累,最多255個字符
varchar(n) 固定長度的字符串陵刹,最多65535個字符
tinytext 可變長度字符串,最多255個字符
text 可變長度字符串欢嘿,最多65535個字符
mediumtext 可變長度字符串衰琐,最多2的24次方-1個字符
longtext 可變長度字符串也糊,最多2的32次方-1個字符
n為存入位數(shù)
5、二進(jìn)制數(shù)據(jù)(xxxBlob)
xxxBlob和xxxtext是對應(yīng)的羡宙,不過存儲方式不同狸剃,xxxtext是以文本方式存儲的,如果存儲英文的話區(qū)分大小寫狗热,而xxxBlob是以二進(jìn)制方式存儲的不區(qū)分大小寫钞馁。xxxBlob存儲的數(shù)據(jù)只能整體讀出。xxxtext可以指定字符集匿刮,xxxBlob不用指定字符集僧凰。
6、日期時間類型
date 日期'2014-10-14'
time 時間'14:47:56'
datetime 日期時間'2014-10-14 14:47:56'
timestamp 不固定
timestamp比較特殊熟丸,如果定義一個字段的類型為timestamp训措,這個字段的時間會在其他字段修改的時候自動刷新。所以這個數(shù)據(jù)類型的字段可以存放這條記錄最后被修改的時間光羞,而不是真正來存放時間绩鸣。
7、數(shù)據(jù)類型的屬性
NULL 數(shù)據(jù)列可包含NULL值
NOT NULL 數(shù)據(jù)列不允許包含NULL值
DEFAULT xxx 默認(rèn)值纱兑,如果插入記錄的時候沒有指定值呀闻,將取這個默認(rèn)值
PRIMARY KEY 主鍵
AUTO_INCREMENT 遞增,如果插入記錄的時候沒有指定值萍启,則在上一條記錄的值上加1总珠,僅適用于整型
UNSIGNED 無符號
CHARACTER SET name 指定一個字符集
二、基本SQL語句
SQL全稱:結(jié)構(gòu)化查詢語言(Structured Query Language)
1勘纯、MySQL命令行客戶端命令
---登錄MySQL數(shù)據(jù)庫
mysql -u root-p
password
---查看數(shù)據(jù)庫
show databases
---使用數(shù)據(jù)庫
use 數(shù)據(jù)庫名
---查看當(dāng)前數(shù)據(jù)庫表
2、數(shù)據(jù)定義語言(DDL)
---創(chuàng)建數(shù)據(jù)庫
create database 數(shù)據(jù)庫名;
---創(chuàng)建表
create table 表名(字段1,字段2,字段3,…);
例子:
create table teacher(
sid int(11) primary key auto_increment,
name varchar(20),
gender char(1),
age int(2),
birth date);
---查看表結(jié)構(gòu)
desc 表名;
---刪除表
drop table 表名;
//該語句會刪除該表所有的記錄及表結(jié)構(gòu)
---修改表的結(jié)構(gòu)
alter table 表名add columnname varchar(10); ---添加表列
alter table 表名 renamename; ---修改表名
alter table 表名 drop columnname; ---刪除表列
alter table 表名 modifyaddress char(10); ---修改表列類型(修改數(shù)據(jù)類型)
alter table 表名 change address address1 char(40); ---修改表列類型(修改字段名和數(shù)據(jù)類型)
alter table 表名 change column address address1 varchar(30); ---修改表列名(與上個一樣钓瞭,多了column)
========================================
主鍵驳遵,用來唯一代表一條記錄的字段(主鍵值必須是唯一)
3、數(shù)據(jù)操作語言(DML)
---添加數(shù)據(jù)
insert into 表名(字段1,字段2,字段3,…)values(value1,value2,value3,…);
(表名后可以不加括號及字段山涡,但是在values中要將所有的value按對應(yīng)的順序輸入)
---修改數(shù)據(jù)
update 表名set 字段名='值'堤结,字段名='值',字段名='值'where 字段名='值';
---刪除數(shù)據(jù)
delete from 表名;
---刪除ID為1的記錄
delete from 表名where id=1;
4鸭丛、數(shù)據(jù)查詢語言(DRL)
---查詢指定字段竞穷、位置的信息
select 字段1,字段2,字段3,…from 表名where 字段=值; (其他判斷符也可)
select 字段1,字段2,字段3,…from 表名where 字段=值 and 字段=值; (其他判斷符也可)
select 字段1,字段2,字段3,…from 表名where 字段=值 or 字段=值; (其他判斷符也可)
---模糊查詢
select 字段1,字段2,字段3,… from 表名 where 字段 like 值;
例子:
select * from teacherwhere name like '%s';
//查詢字段name里以s結(jié)尾的數(shù)據(jù)
select from teacher where name like 's%';
//查詢字段name里以s開頭的數(shù)據(jù)
select * from teacherwhere* name like '%s%';
//查詢字段name里有s出現(xiàn)的數(shù)據(jù)
---查詢并排序
select 字段1,字段2,字段3,…from 表名where 字段=值 order by 字段 asc; //升序 可以不寫asc,默認(rèn)為升序
select 字段1,字段2,字段3,…from 表名** where** 字段=值** order by** 字段desc; //降序
---多條件排序
select 字段1,字段2,字段3,…from 表名where 字段=值 order by 字段 asc,字段 desc;
---分組查詢
** select** 字段 函數(shù) from 表名group by 字段;
例子:
select gender,count(gender)from teacher group by gender;
//按gender分組并計數(shù)
select gender,count(gender)from teacher group by gender having gender='m';
//按gender分組并統(tǒng)計值為m的個數(shù),having在實際應(yīng)用中應(yīng)用不太多鳞溉,例如本例瘾带,可以用select gender,count(gender)from teacher where gender='m';代替。
---查詢值是否為null的信息
select * from 表名where 字段is (not) null;
========================================
在沒有表被引用的情況下熟菲,只允許指定DUAL作為一個假的表名
select count(字段)as 別名 from 表名 as 別名; //as可省略
select count(字段) as 別名 from 表名 as 別名; //as可省略
select 別名.字段 別名.字段 from 表名 as 別名; //as可省略
select 字段1,字段2,字段3,…from teacherlimit f,n;
//查詢前n個信息 f表示起始位置 n表示查詢信息的個數(shù)
5看政、事務(wù)控制語言(TCL)
事務(wù)是訪問并可能更新數(shù)據(jù)庫中各種數(shù)據(jù)項的一個程序執(zhí)行單元朴恳。在關(guān)系數(shù)據(jù)庫中,一個事務(wù)可以是一條SQL語句允蚣,一組SQL語句或整個程序于颖。事務(wù)應(yīng)該具有4個屬性:原子性(atomicity)、一致性(consistency)嚷兔、隔離性(isolation)森渐、持續(xù)性(durability)。事務(wù)就是對數(shù)據(jù)庫的多步操作冒晰,要么一起成功章母,要么一起失敗。
---設(shè)置默認(rèn)事務(wù)提交方式
** set autocommit=false//設(shè)置事務(wù)提交方式為"手動提交"
** set autocommit=true //設(shè)置事務(wù)提交方式為"自動提交"
=======================================
commit; //手動提交事務(wù)
rollback; //回滾事務(wù)
savepointpoint2; //保存還原點
rollback to point2; //回滾到point2還原點
學(xué)長博客原文http://blog.csdn.net/cc65431362/article/details/40076175
很久以前學(xué)過翩剪,后來很少敲MySQL命令行也就忘了乳怎,不過還是要記著這些基礎(chǔ)操作。前弯。