是否有任何命令可以在Postgres中找到所有数据库大小?
我可以使用以下命令找到特定数据库的大小:
select pg_database_size('databaseName');
Run Code Online (Sandbox Code Playgroud) 在ANSI SQL兼容数据库中存储纬度或经度数据时,哪种数据类型最合适?应该float使用,或decimal,或......?
我知道Oracle,MySql和SQL Server已经添加了一些专门用于处理地理数据的特殊数据类型,但我对如何将信息存储在"普通的"SQL数据库中感兴趣.
在其中插入带撇号的值的正确SQL语法是什么?
Insert into Person
(First, Last)
Values
'Joe',
'O'Brien'
Run Code Online (Sandbox Code Playgroud)
我一直收到错误,因为我认为O之后的撇号是值的结束标记.
前几天我学到了一些关于SQL的简单知识:
SELECT c FROM myTbl GROUP BY C
Run Code Online (Sandbox Code Playgroud)
结果与:
SELECT DISTINCT C FROM myTbl
Run Code Online (Sandbox Code Playgroud)
我很好奇,SQL引擎处理命令的方式有什么不同,还是它们真的是同一个东西?
我个人更喜欢不同的语法,但我相信它更多地出于习惯而不是其他任何东西.
编辑:这不是关于聚合的问题.的使用GROUP BY与聚合函数了解.
如何设置动态变量来设置SQL Server中要返回的行数?以下是SQL Server 2005+中无效的语法:
DECLARE @count int
SET @count = 20
SELECT TOP @count * FROM SomeTable
Run Code Online (Sandbox Code Playgroud) 我正在对数据库应用程序进行一些维护工作,并且我发现,欢乐的乐趣,即使来自一个表的值正在使用外键的样式,表上没有外键约束.
我正在尝试在这些列上添加FK约束,但我发现,因为表中的错误数据已经完全加载了以前的错误,这些错误已经被天真地纠正过,我需要找到没有的行.匹配其他表,然后删除它们.
我在网上找到了一些这种查询的例子,但它们似乎都提供了例子而不是解释,我不明白为什么它们起作用.
有人可以向我解释如何构建一个查询,该查询返回在另一个表中没有匹配的所有行,以及它正在做什么,以便我可以自己进行这些查询,而不是为这个混乱中的每个表运行到SO 没有FK约束?
我有以下两个SQL表(在MySQL中):
Phone_book
+----+------+--------------+
| id | name | phone_number |
+----+------+--------------+
| 1 | John | 111111111111 |
+----+------+--------------+
| 2 | Jane | 222222222222 |
+----+------+--------------+
Call
+----+------+--------------+
| id | date | phone_number |
+----+------+--------------+
| 1 | 0945 | 111111111111 |
+----+------+--------------+
| 2 | 0950 | 222222222222 |
+----+------+--------------+
| 3 | 1045 | 333333333333 |
+----+------+--------------+
Run Code Online (Sandbox Code Playgroud)
如何找出调用由人,他们作了phone_number不在Phone_book?期望的输出是:
Call
+----+------+--------------+
| id | date | phone_number |
+----+------+--------------+
| 3 | 1045 …Run Code Online (Sandbox Code Playgroud) 请为我澄清两件事:
据我所知,NULL不应该在外键中使用,但在我的某些应用程序中,我能够NULL在Oracle和SQL Server中输入,我不知道为什么.
所以我试图将外键约束添加到我的数据库作为项目需求,它在不同的表上第一次或第二次工作,但我有两个表,在尝试添加外键约束时我得到一个错误.我得到的错误消息是:
ERROR 1215(HY000):无法添加外键约束
这是我用来创建表的SQL,两个有问题的表是Patient和Appointment.
SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=1;
SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL,ALLOW_INVALID_DATES';
CREATE SCHEMA IF NOT EXISTS `doctorsoffice` DEFAULT CHARACTER SET utf8 ;
USE `doctorsoffice` ;
-- -----------------------------------------------------
-- Table `doctorsoffice`.`doctor`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `doctorsoffice`.`doctor` ;
CREATE TABLE IF NOT EXISTS `doctorsoffice`.`doctor` (
`DoctorID` INT(11) NOT NULL AUTO_INCREMENT ,
`FName` VARCHAR(20) NULL DEFAULT NULL ,
`LName` VARCHAR(20) NULL DEFAULT NULL ,
`Gender` VARCHAR(1) NULL DEFAULT NULL ,
`Specialty` VARCHAR(40) NOT NULL DEFAULT …Run Code Online (Sandbox Code Playgroud) 我只需要选择给定日期时间变量的月份的第一天.
我知道使用这种代码很容易:
select CAST(CAST(YEAR(@mydate) AS VARCHAR(4))
+ '/' + CAST(MONTH(@mydate) AS VARCHAR(2)) + '/01' AS DATETIME)
Run Code Online (Sandbox Code Playgroud)
但这不是很优雅,也可能不是很快.
有一个更好的方法吗?我正在使用SQL Server 2008.
sql ×10
foreign-keys ×3
mysql ×2
sql-server ×2
database ×1
datetime ×1
distinct ×1
geocoding ×1
group-by ×1
oracle ×1
postgresql ×1
sql-insert ×1
sql-update ×1
t-sql ×1