我的应用程序涉及实现数据并将其显示给用户。我将为您提供应用程序的完整说明以及我正在尝试实现的目标。
基本上,应用程序会找出哪种车最适合用户。上周我决定下拉菜单比普通问卷更简单,更具互动性。我有三个标签,性能,豪华,生态友好和三个按钮,高性能,高奢华和高生态友好。我如何向这些添加数据,以便当用户选择这些首选项时,它会链接到特定的汽车,让我提醒您,这只是众多控制器和问题中的一个。
我读到MYSQL很好,但我不确定它是更容易还是更难。说实话,我还处于初级编程阶段。 youtube上的一些链接和数据库视频也是一个笑话。
答案 0 :(得分:1)
我会尽力让你走得更远。你的问题表明你是一个新手,但如果你是一个有点意义的新手,你会接受而不是抱怨。
MySQL是SQL的变种。不幸的是,甲骨文(商业世界的邪恶微软 - 认为供应商锁定)收购了Sun Microsystems(一个应该被捍卫死亡或接近的邪恶公司)。有一些政治问题是MySQL正在慢慢关闭以支持Oracle,所以如果你有选择选择PostgreSQL。
使用数据库,您有两件事:数据库和用户。
数据库部分很简单,就是存储信息的地方。
用户部分仍然非常简单,不同的用户拥有不同的权限。例子中的那些权限是可以执行SQL命令的。
数据库的结构基本上就是......
数据库 - >表 - >列/行
数据库表就像一个HTML表,列是数据集(一个'名称'列,'地址'列等)。每行都是一个条目。 Bob的信息可能在第34行,Sally在第35行的信息等等。
您将使用的四个最常用命令:SELECT
,INSERT
,DELETE
和UPDATE
。使用我的软件除非网站管理员在较低级别的特权SQL用户中签名,否则只能访问这四个基本SQL命令。
使用SQL有两种情况:构建和使用它。我不是专家,虽然我普遍接受的是在不同变体(例如MySQL和PostgreSQL)中使用 SQL进行日常使用(访问,更新,删除) ,编辑数据)利用标准化的SQL命令。当然,一些公司可能会定期每天甚至每小时更改一次数据库的结构,但一般而言并非每个人都这样。更改数据库结构(例如ALTER
)的命令可能不是跨变量标准。为什么这很重要?如果你不了解所涉及的政治,那么你就不理解所涉及的是什么。所以我确保通过避免供应商特定的语法,我能够轻松地从MySQL迁移到PostgreSQL。第一次花费额外的20%做正确的事情,你可以节省80%的时间浪费在其他人的维护上。
如果您想要跳转并开始使用MySQL,请获取XAMPP的副本。它只需要很少的努力,非常适合LOCAL测试(本地意味着您的计算机只能由您/您的LAN访问,一般在网络上可用的实时方式)。我不确定xcode,但一般说明至少应该为您提供有关数据库的基本指南。
如果您希望使用GUI学习,您会想要使用phpMyAdmin(包含在XAMPP中),但我不建议您下载最新的副本,因为它们已经过时了在phpMyAdmin中有一些东西。 PostgreSQL有它的等价物。它将向您展示命令的工作(虽然非常混乱)。这里有一些我在控制台中使用的命令供你参考...
SQL中最高权限的用户通常称为“root”' (没有引号)。您可以在本地主机(本地)和专用服务器(也可能是VPS)上拥有root访问权限,但不能在共享服务器上访问,除非您使用某种1337 haxorz。
四个最常见的命令......
使用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';
BTW通常的做法是使您的语法大写,以区分特定于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
)。 JOIN
允许您将一条信息存储在整个数据库中一次,如帐户名称。如果您构建一个论坛并希望提取论坛帖子,您将加入用户帐户表并通过动态引用它们来简单地提取用户名,您实际上不会每次都存储其用户名。然而那是另一天。我学了几个月的SQL,一旦我学会了关系SQL,我就在三个星期内爆炸了一个博客,一个月内发了一个论坛,三个星期就开始聊天,等等。
随意使用它作为备忘单,让您对如何引用某些技术术语有所了解。当您提出问题时,您需要尽可能简洁准确地使用术语。提出非常大的问题(如何在不做任何工作的情况下建立Facebook?)很糟糕,问一个特定的问题是好的(如何将我的编程语言连接到具有特权用户的数据库?)