在MySQL脚本中,您可以编写:
CREATE TABLE IF NOT EXISTS foo ...;
Run Code Online (Sandbox Code Playgroud)
... 其他的东西 ...
然后您可以多次运行该脚本而无需重新创建表.
你如何在PostgreSQL中做到这一点?
这可能是一个类似(或更糟)的问题.但我一直将模式视为数据库中的表定义.这是错误的或不完全正确的.我对数据库课程的记忆不多.
我经常需要在重建之前删除PostgreSQL数据库中的所有数据.我将如何直接在SQL中执行此操作?
目前我已经设法提出一个SQL语句,它返回我需要执行的所有命令:
SELECT 'TRUNCATE TABLE ' || tablename || ';' FROM pg_tables WHERE tableowner='MYUSER';
Run Code Online (Sandbox Code Playgroud)
但是,一旦拥有它们,我就无法以编程方式执行它们.
如果我想像这样删除我的数据库中的所有表,它会处理外键约束吗?如果没有,我该如何处理?
GO
IF OBJECT_ID('dbo.[Course]','U') IS NOT NULL
DROP TABLE dbo.[Course]
GO
IF OBJECT_ID('dbo.[Student]','U') IS NOT NULL
DROP TABLE dbo.[Student]
Run Code Online (Sandbox Code Playgroud) sql-server constraints foreign-keys drop-table database-table
我一直想知道Facebook如何设计朋友< - >用户关系.
我认为用户表是这样的:
user_email PK
user_id PK
password
Run Code Online (Sandbox Code Playgroud)
我用用户的数据(性别,年龄等通过用户电子邮件连接,我会假设)来计算表格.
它是如何将所有朋友连接到此用户的?
像这样的东西?
user_id
friend_id_1
friend_id_2
friend_id_3
friend_id_N
Run Code Online (Sandbox Code Playgroud)
可能不是.因为用户数量未知并且将会扩展.
sql database-design facebook database-normalization database-table
是否有可能在每个表的每个字段中搜索Oracle中的特定值?
在一些表中有数百个表有数千行,所以我知道这可能需要很长时间才能查询.但我唯一知道的是我想要查询的字段的值是1/22/2008P09RR8.<
我已经尝试使用下面的这个语句根据我认为应该命名的内容找到一个合适的列,但它没有返回任何结果.
SELECT * from dba_objects
WHERE object_name like '%DTN%'
Run Code Online (Sandbox Code Playgroud)
这个数据库绝对没有文档,我不知道该字段的来源.
有什么想法吗?
如何选择一个表中没有出现在另一个表中的所有行?
表格1:
+-----------+----------+------------+
| FirstName | LastName | BirthDate |
+-----------+----------+------------+
| Tia | Carrera | 1975-09-18 |
| Nikki | Taylor | 1972-03-04 |
| Yamila | Diaz | 1972-03-04 |
+-----------+----------+------------+
Run Code Online (Sandbox Code Playgroud)
表2:
+-----------+----------+------------+
| FirstName | LastName | BirthDate |
+-----------+----------+------------+
| Tia | Carrera | 1975-09-18 |
| Nikki | Taylor | 1972-03-04 |
+-----------+----------+------------+
Run Code Online (Sandbox Code Playgroud)
Table1中不在Table2中的行的示例输出:
+-----------+----------+------------+
| FirstName | LastName | BirthDate |
+-----------+----------+------------+
| Yamila | Diaz | 1972-03-04 |
+-----------+----------+------------+
Run Code Online (Sandbox Code Playgroud)
也许这样的事情应该有效:
SELECT * FROM …Run Code Online (Sandbox Code Playgroud) 这个例子来自w3schools.
CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CONSTRAINT pk_PersonID PRIMARY KEY (P_Id,LastName)
)
Run Code Online (Sandbox Code Playgroud)
我的理解是两个列在一起(P_Id和LastName)代表表的主键Persons.它是否正确?
ddl database-design primary-key relational-database database-table
我在MySQL数据库中存储了各种用户详细信息.最初它设置在各种表中,这意味着数据与UserIds链接,并通过有时复杂的调用输出,以根据需要显示和操作数据.建立一个新系统,将所有这些表组合成一个相关内容的大表几乎是有意义的.
这是我的一些表结构的示例:
编辑:到目前为止,我已经提出了所有答案,它们都有基本上回答我问题的元素.
大多数表具有1:1的关系,这是使它们非规范化的主要原因.
如果表格跨越100多列,当这些单元格的大部分可能保持空白时,是否会出现问题?
database-table ×10
mysql ×3
sql ×3
ddl ×2
postgresql ×2
constraints ×1
create-table ×1
csv ×1
database ×1
definition ×1
drop-table ×1
dynamic-sql ×1
facebook ×1
foreign-keys ×1
import ×1
oracle ×1
plpgsql ×1
plsql ×1
primary-key ×1
schema ×1
search ×1
sorting ×1
sql-server ×1
truncate ×1
unique ×1