登陸mysql
網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)公司!專注于網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、小程序設(shè)計(jì)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了大觀免費(fèi)建站歡迎大家使用!
打cmd命令終端,如果已經(jīng)添加了mysql的環(huán)境變量,可以直接使用命令
mysql -uroot
直接回車,之后按提示輸入密碼,
如果未添加mysql的環(huán)境變量,可以切換到mysql的安裝目錄下的bin目錄,再使用
mysq -uroot
你也可以手動(dòng)為mysql添加環(huán)境變量。這里就不介紹怎么添加環(huán)境變量的方法了
密碼輸入正確之后,就會(huì)出現(xiàn)“Welcome to the MySQL monitor. Commands end with ; or \g. ......”字樣,
命令行出現(xiàn)“mysql”字符前綴?,F(xiàn)在你就可以使用命令對(duì)mysql進(jìn)行操作了。曾經(jīng)有沒有過(guò)這樣的經(jīng)歷,原來(lái)看見別人在命令行里面咔咔的猛敲時(shí),就一通的崇拜,覺得這人很牛,現(xiàn)在你也可以讓別一通崇拜了。
mysql的所有命令都以";"或者\(yùn)g為結(jié)束符
2
新建數(shù)據(jù)庫(kù)
在新建數(shù)據(jù)庫(kù)之后,我們先設(shè)置一下字符集
mysqlSET NAMES utf8;
然后再創(chuàng)建數(shù)據(jù)庫(kù)
mysqlCREATE DATABASE lesson
3
顯示所有數(shù)據(jù)庫(kù)
mysqlSHOW DATABASES;
使用數(shù)據(jù)庫(kù)
mysqlUSE 數(shù)據(jù)庫(kù)名;
新建表
mysqlCREATE TABLE study(
id int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '學(xué)生id號(hào)',
username varchar(30) NOT NULL DEFAULT '' COMMENT '學(xué)生名字',
class tinyint(3) unsigned NOT NULL,
sex enum('男','女','保密') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '保密' COMMENT '性別',
addtime int(10) NOT NULL DEFAULT '0',
PRIMARY KEY (id)
)ENGINE=InnoDB COMMENT = '學(xué)生表';
顯示所有表
mysqlSHOW TABLES;
修改表的名稱
mysqlRENAME TABLE study TO study_new ;
或者
mysqlALTER TABLE study_new RENAME TO study;
顯示字段信息
SHOW COLUMNS FROM study或者DESCRIBE study
插入數(shù)據(jù)
mysql insert into study (username,class,sex)VALUES('小王',1,'男'),('小四',2,'女');
查詢數(shù)據(jù)(使concat函數(shù)拼接數(shù)據(jù))
mysql SELECT username,CONCAT(class,'班'),sex FROM study;
刪除數(shù)據(jù)
mysqlDELETE FROM study WHERE id=1;
刪除數(shù)據(jù)表
DROP TABLE study;
刪除數(shù)據(jù)庫(kù)
mysql DROP DATABASE lesson;
在where條件中,每個(gè)條件之間的鏈接可以用and或or。or就是或的意思,但注意要放在最后一個(gè)條件中,不然會(huì)有問(wèn)題的。
在看參考手冊(cè)的時(shí)候看到個(gè)案例
3.6.8 Calculating Visits Per Day
首先要說(shuō)明以下幾個(gè)函數(shù)
bit_count:
就是計(jì)算二進(jìn)制里有多少個(gè)1
10的二進(jìn)制是1010
bit_count(10) = 2
100的二進(jìn)制是1100100
bit_count(123) = 3
bit_or:
按位或,就是如果兩邊一個(gè)位置上存在1,那這個(gè)位置就為1
拿上面10和100舉例
10 | 100 轉(zhuǎn)換為二進(jìn)制就是 1010|1100100
1010
1100100
1101110
1day:
向左位移,向左位移幾位,然后用0填補(bǔ)
比如day=2
12 = 100
day=4
14 = 10000
回到主題,現(xiàn)在要計(jì)算出圖中每天的訪問(wèn)量,可以看到day列中是存在重復(fù)記錄的,所以要去除,一般思路應(yīng)該會(huì)寫出以下SQL:
這個(gè)的確可以得到正確值,但是官方參考文檔里使用了更巧妙的算法
為了演示,現(xiàn)在將day設(shè)定為1,2,2,3好了,那就等于
bit_or(11, 12, 12, 13)
10 | 100 | 100 | 1000 = 110 | 100 | 1000 = 110 | 1000 = 1110
當(dāng)110 | 100的時(shí)候,相同的值就不會(huì)發(fā)生變化,所以最后bit_count的結(jié)果就為3
插入2w條數(shù)據(jù)后,看下執(zhí)行計(jì)劃,第一種SQL執(zhí)行兩遍全表掃描
為了明確看到查詢性能,我們啟用profiling并關(guān)閉query cache:
or就是或者,只要其中一個(gè)成立就成立了。例如成績(jī)表里,查詢語(yǔ)文或者數(shù)據(jù)90分以上的,就可以用OR來(lái)判斷。
項(xiàng)目中可能回遇到or 與? and? 連用,我認(rèn)為or連接的前后是兩個(gè)條件.所以不能一個(gè)條件分開寫.
比如 一張表a? 有 user_code,shared,del,company_id四個(gè)字段? 我想查shared=1 且 del=0 或者del=0的數(shù)據(jù) 且company_id=1, shared是共享的意思,不區(qū)分公司,那么可以這樣寫
例? select? user_code from a where shared=1? and del=0 or del=0