我会尽量让你走上正轨。你的问题表明你是一个新手,但如果你是一个有某种感觉的新手,你会抓住而不是抱怨。
MySQL 是 SQL 的一种变体。不幸的是,甲骨文(商业界的邪恶微软——认为供应商锁定)收购了 Sun Microsystems(一家本应被捍卫至死或近在咫尺的非邪恶公司)。有一些政治担忧是 MySQL 正逐渐被 Oracle 淘汰,所以如果你可以选择 PostgreSQL。
使用数据库,您有两件事:数据库和用户。
数据库部分很简单,即存储信息的地方。
用户部分还是很简单的,不同的用户有不同的权限。示例中的这些权限是可以执行的 SQL 命令。
数据库的结构基本上是......
数据库 --> 表 --> 列/行
数据库表类似于 HTML 表,列是数据集(“名称”列、“地址”列等)。每一行都是一个条目。Bob 的信息可能在第 34 行,Sally 的信息在第 35 行,等等。
您将使用的四个最常用的命令:SELECT
、INSERT
和. 使用我的软件,除非网站管理员以较低级别的特权 SQL 用户登录,否则只能访问这四个基本 SQL 命令。DELETE
UPDATE
使用 SQL 有两种情况:构建和使用它。我不是专家,但我普遍接受的是,在不同变体(例如 MySQL 和 PostgreSQL)中使用SQL 进行日常使用(访问、更新、删除、编辑数据)会利用标准化的 SQL 命令。当然,有些公司可能会每天甚至每小时定期更改其数据库的结构,但一般来说并非所有人。更改数据库结构的命令,例如ALTER
可能不是交叉变体标准。为什么这很重要?如果您不了解所涉及的政治,那么您将不了解所涉及的内容。所以我确保我能够通过避免供应商特定的语法轻松地从 MySQL 迁移到 PostgreSQL。第一次多花 20% 的时间做正确的事,您将节省 80% 的其他人浪费在维护上的时间。
如果您想加入并开始使用 MySQL,请获取XAMPP的副本。它需要最少的努力并且非常适合本地测试(本地意味着您的计算机只能由您/您的 LAN 访问,现场意味着通常在网络上可用)。我不确定 xcode,但一般说明至少应该为您提供基本指南,以便在数据库方面保持正常。
如果你想通过 GUI 学习,你会想要使用 phpMyAdmin(包含在 XAMPP 中),但我不建议下载最新的副本,因为它们在 phpMyAdmin 中的某些东西太过分了。PostgreSQL 有它的等价物。它将向您展示命令的工作(尽管非常混乱)示例。以下是我在控制台中使用的一些命令供您参考...
SQL 中的最高权限用户通常称为“root”(不带引号)。除非您是某种 1337 haxorz,否则您将在您的 localhost(本地)和专用服务器(也可能是 VPS)上拥有 root 访问权限,但在共享服务器上却没有。
四个最常用的命令...
用于SELECT
检索数据...
SELECT * FROM database_table;
SELECT id, name FROM database_table WHERE cool_factor='exact matching text';
用于DELETE
删除记录...
DELETE FROM database_table WHERE id='1';
用于INSERT
添加单个新记录...
INSERT INTO email_filters (age, name) VALUES ('Bob');
用于INSERT
添加多个新记录...
INSERT INTO email_filters (name) VALUES ('Bob','23'), ('Sally','24'), ('Susan','25'), ('Irate Yeti','9001');
用于UPDATE
更新现有记录...
UPDATE accounts SET name='Mr. Yeti', profession='eating people' WHERE id='234';
顺便说一句,将语法大写以区分特定于 SOL 的语法和您的内容是一种常见的做法。
帮助您在 SQL 中创建和使用的重要命令...m
登录:这将提示您输入密码...
mysql -uroot -p
显示数据库列表(phpMyAdmin 将让您创建数据库)...
show databases;
选择要使用的数据库...
USE mysql;
选择一个 SQL 用户...
SELECT User FROM user;
SELECT User FROM mysql.user;
创建一个用户(使用普通和管理员示例)...
CREATE USER 'example_v10'@'localhost' IDENTIFIED BY 'my_!1337_p@ss';
CREATE USER 'example_v10a'@'localhost' IDENTIFIED BY 'my_!1337_p@ss';
在 SQL 用户可以访问数据库之前,它必须被授予权限,这是一个有限权限示例...
GRANT SELECT, INSERT, UPDATE, DELETE ON `example_mysite_database`.* TO 'example_v10'@'localhost';
...并且授予管理用户所有权限(谨慎使用)...
GRANT ALL PRIVILEGES ON `example_mysite_database`.* TO 'example_v10a'@'localhost';
将 SQL 文件导入现有数据库...
SOURCE C:\path1\path2\the.sql
描述一个数据库...
DESCRIBE table_name;
更改 SQL 用户的密码...
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('lulz_bad_password');
从长远来看,非常重要的是要意识到您将编写 SQL 查询,永远不要将它们转储到循环中。您的目标是创建更大更优雅的 SQL 查询,尽可能在更少的查询中执行更多操作,如果不是单个查询的话。例如,我网站软件上的典型页面请求使用大约 8~12 个对部分/页面/权限/等主观的查询。像 WordPress 这样写得不好的软件会使用几十个甚至更多的请求。
如果不学习如何做 RELATIONAL SQL,你绝对无法有效地使用数据库做任何事情;这只是说你知道如何使用INNER JOIN
和LEFT JOIN
(有些人使用OUTER JOIN
)的奇特方式。AJOIN
允许您将一条信息存储在整个数据库中一次,例如帐户名。如果您建立一个论坛并想要提取论坛帖子,您将加入用户帐户表并通过动态引用它们来简单地提取用户名,您实际上不会每次都存储他们的用户名。然而,那是另一天。我花了几个月的时间学习 SQL,一旦我学会了关系 SQL,我就在三周内创建了一个博客,一个月内创建了一个论坛,三周内创建了一个聊天室,等等。
随意将其用作备忘单,并让您了解如何参考一些技术术语。当您提出问题时,您需要使用尽可能简洁准确的术语。问非常大的问题(如何不做任何工作就制作 facebook?)是不好的,问一个特定的问题是好的(如何让我的编程语言连接到具有有限权限的特定用户的数据库?)