娱乐

mysql使用入门教程

时间:2010-12-5 17:23:32  作者:娱乐   来源:知识  查看:  评论:0
内容摘要:MySQL安装好之后,大多数人第一件事就是打开命令行敲mysql -u root -p,然后对着黑窗口发呆。这很正常,我第一次也是这样。但记住一点,MySQL就是个存数据的仓库,SQL就是跟仓库管理员

MySQL安装好之后,用入大多数人第一件事就是门教打开命令行敲mysql -u root -p,然后对着黑窗口发呆。用入这很正常,门教我第一次也是用入这样。但记住一点,门教MySQL就是用入个存数据的仓库,SQL就是门教跟仓库管理员对话的语言,没那么玄乎。用入

先建库。门教CREATE DATABASE shop CHARACTER SET utf8mb4; 这行命令里的用入utf8mb4必须写,不然中文存进去会变成一堆问号。门教我见过太多新手栽在这上面,用入存进去的门教“苹果”取出来成了“???”,欲哭无泪。用入建完库用USE shop; 切进去,接下来所有操作都在这个库里进行。

建表是重头戏。CREATE TABLE goods (id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(50) NOT NULL, price DECIMAL(10,2), stock INT DEFAULT 0); 这里id设成自增主键,就像给每件商品发了个永久的身份证号。price用DECIMAL而不是FLOAT,因为浮点数算钱会出精度问题,0.1加0.2可能等于0.30000000000000004,这玩笑开不起。stock设默认值0,防止以后插入数据时漏掉这个字段导致报错。

插入数据时有个坑——字符串必须加引号,数字不用。INSERT INTO goods (name, price, stock) VALUES ('苹果', 5.50, 100); 如果你写成VALUES (苹果, 5.50, 100),MySQL会一脸懵,直接报错。还有,别一次插一条,批量插入效率高得多:INSERT INTO goods (name, price, stock) VALUES ('香蕉', 3.20, 200), ('橙子', 4.80, 150), ('西瓜', 2.50, 80);

查询是日常用得最多的操作。SELECT * FROM goods; 这能看全部数据,但生产环境千万别这么干。数据量大时,SELECT * 会把内存撑爆,就像把整个仓库的货全堆在门口,只为了找一支笔。应该用SELECT name, price FROM goods WHERE stock > 0; 先过滤再取列。WHERE后面可以跟各种条件,AND、OR、LIKE这些,用多了自然熟。

更新和删除要格外小心。UPDATE goods SET price = 6.00 WHERE name = '苹果'; 忘了写WHERE,那全表的苹果香蕉橙子西瓜全变成6块钱,这事故我亲眼见过同事犯过。DELETE FROM goods WHERE id = 4; 同样,不带WHERE就是清空整张表。MySQL有个安全模式,默认开启,不允许不带WHERE的UPDATE和DELETE,这是保命符,别关。

索引这东西,等数据量到十万条以上再考虑也不迟。ALTER TABLE goods ADD INDEX idx_name (name); 加了索引后,按name查询会快得多。但索引不是越多越好,每次插入和更新都要同步维护索引,写操作会变慢。就像书的目录,查起来方便,但每加一页内容都得更新目录,麻烦。

备份这事,我吃过亏才长记性。mysqldump -u root -p shop > shop_backup.sql 这行命令在命令行执行,不是在MySQL里面。备份文件就是个纯文本,里面全是SQL语句,哪天数据库崩了,mysql -u root -p shop < shop_backup.sql 就能恢复。我建议每天定时备份一次,放服务器上跑个crontab,成本低得很。

最后说个实用技巧——用EXPLAIN看查询计划。EXPLAIN SELECT * FROM goods WHERE price > 10; 它会告诉你MySQL是怎么执行这条SQL的,有没有走索引,扫描了多少行。刚开始看不懂没关系,但养成这个习惯,慢慢你就能写出高效的SQL了。毕竟MySQL这东西,用起来不难,用得好了,数据再多也不慌。

最近更新
热门排行
copyright © 2026 powered by 力不从心网   sitemap