0

我的应用程序涉及实现数据并将其显示给用户。我会给你一个应用程序的完整解释以及我想要实现的目标。

基本上,该应用程序会找出最适合用户的汽车。上周我决定下拉菜单比普通问卷更容易和更具交互性。我有三个标签,性能、豪华、环保和三个按钮,高性能、高奢华和高环保。我如何向这些添加数据,以便当用户选择这些偏好时,它会链接到特定的汽车,让我提醒您,这只是众多控制器和问题之一。

我读到 MYSQL 很好,但我不确定它是更容易还是更难。老实说,我仍然处于编程的初学者水平。youtube 上的一些链接和数据库视频也是一个笑话。

4

1 回答 1

1

我会尽量让你走上正轨。你的问题表明你是一个新手,但如果你是一个有某种感觉的新手,你会抓住而不是抱怨。

MySQL 是 SQL 的一种变体。不幸的是,甲骨文(商业界的邪恶微软——认为供应商锁定)收购了 Sun Microsystems(一家本应被捍卫至死或近在咫尺的非邪恶公司)。有一些政治担忧是 MySQL 正逐渐被 Oracle 淘汰,所以如果你可以选择 PostgreSQL。

使用数据库,您有两件事:数据库和用户。

数据库部分很简单,即存储信息的地方。

用户部分还是很简单的,不同的用户有不同的权限。示例中的这些权限是可以执行的 SQL 命令。

数据库的结构基本上是......

数据库 --> 表 --> 列/行

数据库表类似于 HTML 表,列是数据集(“名称”列、“地址”列等)。每一行都是一个条目。Bob 的信息可能在第 34 行,Sally 的信息在第 35 行,等等。

您将使用的四个最常用的命令:SELECTINSERT和. 使用我的软件,除非网站管理员以较低级别的特权 SQL 用户登录,否则只能访问这四个基本 SQL 命令。DELETEUPDATE

使用 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 JOINLEFT JOIN(有些人使用OUTER JOIN)的奇特方式。AJOIN允许您将一条信息存储在整个数据库中一次,例如帐户名。如果您建立一个论坛并想要提取论坛帖子,您将加入用户帐户表并通过动态引用它们来简单地提取用户名,您实际上不会每次都存储他们的用户名。然而,那是另一天。我花了几个月的时间学习 SQL,一旦我学会了关系 SQL,我就在三周内创建了一个博客,一个月内创建了一个论坛,三周内创建了一个聊天室,等等。

随意将其用作备忘单,并让您了解如何参考一些技术术语。当您提出问题时,您需要使用尽可能简洁准确的术语。问非常大的问题(如何不做任何工作就制作 facebook?)是不好的,问一个特定的问题是好的(如何让我的编程语言连接到具有有限权限的特定用户的数据库?)

于 2013-08-18T04:57:28.540 回答