正文之前
以后是要做大數(shù)據(jù)的人,如果連結(jié)構(gòu)化的數(shù)據(jù)庫都不會(huì)的話,那豈不是笑死人舟奠?所以果斷靠著當(dāng)年興趣盎然的時(shí)候?qū)W的那點(diǎn)基礎(chǔ)來復(fù)習(xí)一下,發(fā)現(xiàn)果然學(xué)過一遍再來復(fù)習(xí)那基本就是高中學(xué)一段內(nèi)容看書與翻書的區(qū)別房维,當(dāng)文字顯現(xiàn)剎那沼瘫,內(nèi)心就浮出這個(gè)命令的用法與局限,很爽的有木有咙俩?
正文
Mysql 連接(登錄):
[root@host]# mysql -u root -p
Enter password:******
Mysql 退出(斷開連接):
mysql> exit
Bye
Mysql 創(chuàng)建數(shù)據(jù)庫:
[root@host]# mysqladmin -u root -p create test
Enter password:******
或者是登陸之后:
create database test
create database if not exists test DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
逆推即可得到刪除數(shù)據(jù)庫:
[root@host]# mysqladmin -u root -p drop test
Enter password:******
drop database RUNOOB
Mysql 選擇數(shù)據(jù)庫進(jìn)行操作:
[root@host]# mysql -u root -p
Enter password:******
mysql> use RUNOOB;
Database changed
mysql>
Mysql在數(shù)據(jù)庫中創(chuàng)建數(shù)據(jù)表:
create table table_name (column_name column_type);
具體的示例如:
create table if not exists `runoob_tbl`(
`runoob_id` INT UNSIGNED AUTO_INCREMENT,
`runoob_title` VARCHAR(100) NOT NULL,
`runoob_author` VARCHAR(40) NOT NULL,
`submission_date` DATE,
PRIMARY KEY ( `runoob_id` )
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
//那些`是為了標(biāo)注column 而特意加的耿戚,實(shí)操的時(shí)候不需要的,看圖
如果你不想字段為 NULL 可以設(shè)置字段的屬性為 NOT NULL阿趁, 在操作數(shù)據(jù)庫時(shí)如果輸入該字段的數(shù)據(jù)為NULL 膜蛔,就會(huì)報(bào)錯(cuò)。
AUTO_INCREMENT定義列為自增的屬性脖阵,一般用于主鍵皂股,數(shù)值會(huì)自動(dòng)加1。
PRIMARY KEY關(guān)鍵字用于定義列為主鍵命黔。 您可以使用多列來定義主鍵呜呐,列間以逗號分隔。
ENGINE 設(shè)置存儲(chǔ)引擎纷铣,CHARSET 設(shè)置編碼卵史。
Mysql 刪除數(shù)據(jù)表:
drop table table_name ;
Mysql 插入數(shù)據(jù):
insert INTO table_name ( field1, field2,...fieldN ) VALUES ( value1, value2,...valueN );
Mysql 查詢數(shù)據(jù):
select column_name,column_name from table_name [where Clause]
[OFFSET M ][LIMIT N]
查詢語句中你可以使用一個(gè)或者多個(gè)表,表之間使用逗號(,)分割搜立,并使用where語句來設(shè)定查詢條件以躯。
select 命令可以讀取一條或者多條記錄。
你可以使用星號(*)來代替其他字段啄踊,select語句會(huì)返回表的所有字段數(shù)據(jù)
你可以使用 where 語句來包含任何條件忧设。
你可以通過OFFSET指定select語句開始查詢的數(shù)據(jù)偏移量。默認(rèn)情況下偏移量為0颠通。偏移量的意思就是說前面查詢的多少條直接跳過址晕,從偏移量設(shè)置的那一條記錄開始查詢。
你可以使用 LIMIT 屬性來設(shè)定返回的記錄數(shù)顿锰。就限定了最后需要返回多少條數(shù)據(jù)谨垃,配合offset可以很好的優(yōu)化mysql的使用启搂。
Mysql where 是個(gè)神器:
select field1, field2,...fieldN from table_name1, table_name2...
[where condition1 [and [or]] condition2.....
查詢語句中你可以使用一個(gè)或者多個(gè)表,表之間使用逗號, 分割刘陶,并使用where語句來設(shè)定查詢條件胳赌。
你可以在 where 子句中指定任何條件。
你可以使用 and 或者 or 指定一個(gè)或多個(gè)條件匙隔。
where 子句也可以運(yùn)用于 SQL 的 delete 或者 update 命令疑苫。
where 子句類似于程序語言中的 if 條件,根據(jù) MySQL 表中的字段值來讀取指定的數(shù)據(jù)纷责。
PS:MySQL 的 where 子句的字符串比較是不區(qū)分大小寫的捍掺。 你可以使用 BINARY 關(guān)鍵字來設(shè)定 where 子句的字符串比較是區(qū)分大小寫的。
mysql> select * from runoob_tbl where BINARY runoob_author='runoob.com';
Mysql update 查詢
update table_name SET field1=new-value1, field2=new-value2
[where Clause]
你可以同時(shí)更新一個(gè)或多個(gè)字段再膳。
你可以在 where 子句中指定任何條件挺勿。
你可以在一個(gè)單獨(dú)表中同時(shí)更新數(shù)據(jù)。
Mysql delete 語句刪除某條記錄
delete from table_name [where Clause]
如果沒有指定 where 子句饵史,MySQL 表中的所有記錄將被刪除满钟。
你可以在 where 子句中指定任何條件。
您可以在單個(gè)表中一次性刪除記錄。
Mysql like 語句進(jìn)行模糊搜索:
我們知道在 MySQL 中使用 SQL select 命令來讀取數(shù)據(jù), 同時(shí)我們可以在 select 語句中使用 where 子句來獲取指定的記錄婉烟。
where 子句中可以使用等號 = 來設(shè)定獲取數(shù)據(jù)的條件蹲蒲,如 " tableid = 3"。
但是有時(shí)候我們需要獲取tablename字段含有 "able" 字符的所有記錄,這時(shí)我們就需要在 where 子句中使用 SQL like 子句。
SQL like 子句中使用百分號 %字符來表示任意字符,類似于UNIX或正則表達(dá)式中的星號 泥兰。
如果沒有使用百分號 %, like 子句與等號 = 的效果是一樣的。
select field1, field2,...fieldN from table_name where field1 like condition1 [and [or]] filed2 = 'somevalue'
MySQL UNION 操作符
select expression1, expression2, ... expression_n from tables [where conditions]
UNION [ALL | DISTINCT]
select expression1, expression2, ... expression_n from tables [where conditions];
expression1, expression2, ... expression_n: 要檢索的列题禀。
tables: 要檢索的數(shù)據(jù)表鞋诗。
where conditions: 可選, 檢索條件迈嘹。
DISTINCT: 可選削彬,刪除結(jié)果集中重復(fù)的數(shù)據(jù)。默認(rèn)情況下 UNION 操作符已經(jīng)刪除了重復(fù)數(shù)據(jù)秀仲,所以 DISTINCT 修飾符對結(jié)果沒啥影響融痛。
ALL: 可選,返回所有結(jié)果集神僵,包含重復(fù)數(shù)據(jù)雁刷。
正文之后
告一段落,過幾天繼續(xù)保礼,今天先學(xué)到這兒沛励,想必大家都看得出來了责语。這個(gè)教程來自Mysql - 菜鳥教程 ,這個(gè)網(wǎng)站真的是個(gè)好東西侯勉,太喜歡了鹦筹!