我有一个使用select插入的查询:
INSERT INTO courses (name, location, gid)
SELECT name, location, gid
FROM courses
WHERE cid = $cid
Run Code Online (Sandbox Code Playgroud)
是否可以只为插入选择"名称,位置",并将gid设置为查询中的其他内容?
我意识到如果我的所有值都是固定宽度的话,建议使用CHAR.但是,那又怎样?为什么不为所有文本字段选择VARCHAR只是为了安全.
我知道声明:
create table xyz_new as select * from xyz;
Run Code Online (Sandbox Code Playgroud)
哪个复制结构和数据,但如果我只想要结构呢?
如果我有一张桌子
CREATE TABLE users (
id int(10) unsigned NOT NULL auto_increment,
name varchar(255) NOT NULL,
profession varchar(255) NOT NULL,
employer varchar(255) NOT NULL,
PRIMARY KEY (id)
)
Run Code Online (Sandbox Code Playgroud)
我希望获得所有独特的profession字段值,更快(或推荐):
SELECT DISTINCT u.profession FROM users u
Run Code Online (Sandbox Code Playgroud)
要么
SELECT u.profession FROM users u GROUP BY u.profession
Run Code Online (Sandbox Code Playgroud)
?
错误SQL查询:
--
-- Database: `work`
--
-- --------------------------------------------------------
--
-- Table structure for table `administrators`
--
CREATE TABLE IF NOT EXISTS `administrators` (
`user_id` varchar( 30 ) NOT NULL ,
`password` varchar( 30 ) NOT NULL ) ENGINE = InnoDB DEFAULT CHARSET = latin1;
Run Code Online (Sandbox Code Playgroud)
MySQL说:
#1046 - No database selected
Run Code Online (Sandbox Code Playgroud)
这里需要一些帮助.
我想编写一个SQL命令来从一个ALTER TABLE语句中删除单个表中的多个列.
来自MSDN的ALTER TABLE文档 ......
Run Code Online (Sandbox Code Playgroud)DROP { [CONSTRAINT] constraint_name | COLUMN column_name }指定从表中删除constraint_name或column_name.如果兼容级别为65或更早,则不允许使用DROP COLUMN.可以列出多个列和约束.
它说mutliple列可以在语句中列出,但语法不显示可选的逗号或任何甚至暗示语法的东西.
我应该如何编写SQL以在一个语句中删除多个列(如果可能)?
MySQL是否有一种很好的方式来复制SQL Server功能ROW_NUMBER()?
例如:
SELECT
col1, col2,
ROW_NUMBER() OVER (PARTITION BY col1, col2 ORDER BY col3 DESC) AS intRow
FROM Table1
Run Code Online (Sandbox Code Playgroud)
然后,我可以,例如,添加一个限制intRow为1 的条件,以获得col3每(col1, col2)对最高的单行.
使用postgres 8.4,我的目标是更新现有表:
CREATE TABLE public.dummy
(
address_id SERIAL,
addr1 character(40),
addr2 character(40),
city character(25),
state character(2),
zip character(5),
customer boolean,
supplier boolean,
partner boolean
)
WITH (
OIDS=FALSE
);
Run Code Online (Sandbox Code Playgroud)
最初我使用insert语句测试了我的查询:
insert into address customer,supplier,partner
SELECT
case when cust.addr1 is not null then TRUE else FALSE end customer,
case when suppl.addr1 is not null then TRUE else FALSE end supplier,
case when partn.addr1 is not null then TRUE else FALSE end partner
from (
SELECT *
from address) pa
left outer …Run Code Online (Sandbox Code Playgroud) 我在表中有一列可能包含null或空值.如何在表中存在的行中检查列是空还是空.
(e.g. null or '' or ' ' or ' ' and ...)
Run Code Online (Sandbox Code Playgroud) sql ×10
mysql ×6
sql-server ×2
t-sql ×2
alter ×1
copy ×1
database ×1
distinct ×1
group-by ×1
oracle ×1
php ×1
postgresql ×1
rank ×1
row-number ×1
sql-update ×1
subquery ×1