2019-11-09

显示满足列的行信息

RENAME TABLE 表名1 TO 表名2

select

select * from Websites

SELECT column_name,column_name
FROM table_name;
  • SELECT name,country FROM Websites;
SELECT DISTINCT column_name,column_name
FROM table_name;
  • SELECT DISTINCT country FROM Websites;

where

SELECT * FROM Websites WHERE country='CN';
'CN' 文本字段使用了单引号数值字段,请不要使用引号。
SELECT * FROM Websites WHERE id=1;
运算符 描述
= 等于
<> 不等于。注释:在 SQL 的一些版本中,该操作符可被写成 !=
> 大于
< 小于
BETWEEN 在某个范围内
LIKE 搜索某种模式
IN 指定针对某个列的多个可能值

AND

SELECT * FROM Websites
WHERE country='CN'
AND alexa > 50;

OR

SELECT * FROM Websites
WHERE country='USA'
OR country='CN';

AND OR

SELECT * FROM Websites
WHERE alexa > 15
AND (country='CN' OR country='USA');

ORDER BY

SELECT column_name,column_name
FROM table_name
ORDER BY column_name,column_name ASC|DESC;
  • Note

     ORDER BY 多列的时候,先按照第一个column name排序,在按照第二个column name排序;不写明ASC DESC的时候,默认是ASC。
     desc 或者 asc 只对它紧跟着的第一个列名有效,其他不受影响,仍然是默认的升序
    

INSERT INTO

  • 无需指定要插入数据的列名,只需提供被插入的值即可:
INSERT INTO table_name
VALUES (value1,value2,value3,...);
  • 需要指定列名及被插入的值:
INSERT INTO table_name (column1,column2,column3,...)
VALUES (value1,value2,value3,...);
id 列是自动更新的,表中的每条记录都有一个唯一的数字。
但是gbase中没变

Note

  • 没有指定要插入数据的列名的形式需要列出插入行的每一列数据
  • insert into select 和select into from 的区别
insert into scorebak select * from socre where neza='neza'   

--插入一行,要求表scorebak 必须存在

select *  into scorebak from score  where neza='neza' 

--也是插入一行,要求表scorebak 不存在

update

UPDATE table_name SET column1=value1,column2=value2,...WHERE some_column=some_value;
  • note

     请注意 SQL UPDATE 语句中的 WHERE 子句!WHERE 子句规定哪条记录或者哪些记录需要更新。如果您省略了 WHERE 子句,所有的记录都将被更新!
    

set sql_safe_updates=1;使得update一定需要where 否则无效

delete

DELETE FROM table_name
WHERE some_column=some_value;
  • 删除:DROP、TRUNCATE、 DELETE

DROP:

DROP test;
删除表test,并释放空间,将test删除的一干二净。

TRUNCATE:

TRUNCATE test;
删除表test里的内容,并释放空间,但不删除表的定义,表的结构还在。

DELETE:

1、删除指定数据

删除表test中年龄等于30的且国家为US的数据

DELETE FROM test WHERE age=30 AND country='US';
2、删除整个表

仅删除表test内的所有内容,保留表的定义,不释放空间。

你可能感兴趣的:(2019-11-09)