昨天晚上胰坟,受朋友之托解決一個 sql 問題。
然而泞辐。笔横。。雖然是科班出身咐吼,對于 mysql 用的并不多吹缔。
問題倒是不難,由于對環(huán)境不夠熟悉锯茄,花去了我一點時間厢塘。
如何在一個字段中插入100個 0-10 的隨機數(shù)?
- 這個問題一看是要采用循環(huán)的肌幽,被提示到
存儲過程
這個名詞晚碾。 - 那么,存儲過程怎么建立喂急,怎么調(diào)用呢格嘁?
- 尼瑪,科班不能慫啊廊移。趕緊查查糕簿。
一、 Ubuntu 環(huán)境
昨天晚上回家沒帶 win7画机,win10環(huán)境有點麻煩冶伞,就開了 ubuntu。
沒想到被 mysql 的用戶名密碼給折騰了一下步氏。
控制臺輸入 mysql -uroot -p
响禽,提示輸入密碼,然后怎么都輸不對。
懵逼幾秒中...
好吧芋类,馬上來解決這個問題隆嗅。
問題:Ubuntu 系統(tǒng)忘記了 mysql 的用戶名密碼怎么進入?
解答:讓我們來谷度一下侯繁。
- 查看 /etc/mysql/debian.cnf 文件胖喳,命令為
vi /etc/mysql/debian.cnf
,哇嘎達贮竟!找到了用戶名密碼丽焊! - 命令行輸入
mysql -u剛才的用戶名 -p
,然后輸入密碼咕别。
二技健、 Window7 環(huán)境
為什么又切換環(huán)境了呢?昨晚太困睡著了惰拱,沒解決完問題雌贱。
早上一上班趕緊來弄。
好的偿短,現(xiàn)在 Windows 有圖了欣孤!
廢話少說,先進數(shù)據(jù)庫 mysql -uroot -p
昔逗。
三降传、 命令行的 mysql 咋用?
既然生疏了纤子,重新用用就好了嘛搬瑰。
朋友讓表名寫 ceshibiao
,字段名寫 time
控硼。
提醒一下泽论,以下的 sql 語句都要記得加分號,否則會錯哦卡乾,特殊的我會說翼悴。
- 切換數(shù)據(jù)庫
mysql>use mysql;
- 查看數(shù)據(jù)庫可以用
mysql>show databases;
- 先來建個表(至于英文還是拼音的名稱就不要在意了)
mysql>create table ceshibiao(time real);
- 查看表可以用
mysql>show tables;
- sql 的類型科普:integer 表示整型,real 表示浮點型幔妨,text 表示文本類型
建表過程
這樣鹦赎,mysql 基本的命令行使用就了解了。
四误堡、存儲過程咋寫古话?
我寫完以后的長這樣:
簡單的存儲過程實現(xiàn)
- 先來解釋一下這個
delimiter
。
- 這個詞其實是 `分隔符` 的意思锁施,mysql 中默認為分號陪踩,分號結(jié)尾杖们,回車后自動執(zhí)行。
- 如果寫一句加一個分號立即執(zhí)行了肩狂,那就沒法寫存儲過程啊摘完。
- 所以,`mysql>delimiter //` 這句表示傻谁,將`;`轉(zhuǎn)換為`//`孝治,只有收到 `//` 這個符號時,才認為指令結(jié)束审磁。
- 這樣谈飒,我們在存儲過程內(nèi)部就可以盡情地使用分號啦!
- 然后解釋下取隨機數(shù)的式子
ceiling(rand()*10))
力图。
- `ceiling` 和 `floor` 對應(yīng)步绸,前者表示向上取整(天花板嘛)掺逼,后者表示向下取整(地板咯)吃媒。
- `rand()` 函數(shù)表示在 0 和 1 之間產(chǎn)生一個隨機數(shù)。
- 所以吕喘,這個表達式的意思是赘那,在 1-10 之間產(chǎn)生隨機數(shù)。
- 至于數(shù)據(jù)庫基本的 CURD 操作氯质,這里就不用介紹了吧:)
五募舟、 看一下運行結(jié)果
調(diào)用存儲過程,直接 call 名稱
闻察。
調(diào)用存儲過程