1. SQL 使用单引号来环绕文本值(大部分数据库系统也接受双引号)。如果是数值,请不要使用引号。
2. DELETE FROM table_name 可以在不删除表的情况下删除所有的行。(不要加*)这意味着表的结构、属性和索引都是完整的
3. 修改表名称alter table test2 rename to test3;或 rename table test3to test4;
4. Between A and B (边界A是包括的B是不包括的,不同的数据库对边界的处理不一样),我实际操作中两边都是包括的
5. 表的复制:
1、既复制表结构也复制表内容的SQL语句:CREATE TABLE tab_new AS SELECT * FROM tab_old; (as可以不写)
2、只复制表结构不复制表内容的SQL语句:CREATE TABLE tab_new AS SELECT * FROM tab_old WHERE 1=2; (创建一个结构一样的表,as可以不写)
3、将一个表的部分内容复制到另一个表中:
insertinto B(id,name,rate) select id,name,rate from A ;
查询内容插入另一张表:insertinto tablename(id,poNum,poCd,poType) select * from test limit 2600,100;
limit:第一个数是从某个数的下一个(2601)开始,不写就是前多少条,第二个数是限制取多少条.MySQL不支持top关键字而是用limit来实现top的功能
6. UNION 操作符用于合并两个或多个SELECT 语句的结果集。UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。UNION命令只会选取不同的值。如果允许重复的值,请使用UNION ALL。
SELECTcolumn_name(s) FROM table_name1
UNION ALL
SELECTcolumn_name(s) FROM table_name2
7. SELECT INTO 语句从一个表中选取数据,然后把数据插入另一个表中。IN 子句可用于向另一个数据库中拷贝表:
SELECT *
INTOPersons_backup IN 'Backup.mdb'
FROMPersons
8. CREATE DATABASE my_db ,SQL中char容纳固定长度的字符串,varchar容纳可变长度的字符串.
CREATETABLE Persons
(
Id_P intNOT NULL,
LastNamevarchar(255),
FirstNamevarchar(255),
Addressvarchar(255),
Cityvarchar(255),
Primary key(Id_P)
)
9. Constraints约束,约束用于限制加入表的数据的类型。可以在创建表时规定约束(通过 CREATE TABLE 语句),或者在表创建之后也可以(通过 ALTER TABLE 语句)。主要的约束有NOT NULL、UNIQUE、PRIMARY KEY、FOREIGN KEY、CHECK、DEFAULT
10. 每个表可以有多个 UNIQUE 约束,但是每个表只能有一个 PRIMARY KEY 约束。可以给约束起名字,创建表后添加约束ALTER TABLE Persons ADDCONSTRAINT uc_PersonID UNIQUE (Id_P,LastName),不同数据库的操作语句不太一样
11. 添加和删除主键 alter table person addprimary key (id); alter table person drop primary key;
12. 表已经存在设置默认值ALTER TABLE Persons ALTERCity SET DEFAULT 'SANDNES';删除默认值ALTER TABLE Persons ALTER City DROP DEFAULT(MySQL为例)ALTERTABLE Persons ALTER COLUMN City DROP DEFAULT(其他数据库)
13. 创建索引:CREATE INDEX poNo ON Person (LastName DESC);(索引在DDL中是用key表示)删除索引:altertable Person drop index poNo;删除表和数据库drop table name;drop database name;
14. 添加、修改、删除列、改变列属性
Alter table Person add birthday date(50)
Alter table person change birthday birth date(50);
Alter table person drop column birthday;
Alter table Person modify column birthday varchar(50);(其他数据库用alter)
15. COUNT(DISTINCTcolumn_name) 函数返回指定列的不同值的数目SELECT COUNT(DISTINCT column_name) FROMtable_name
16. 在 SQL 中增加 HAVING 子句原因是WHERE 关键字无法与合计函数一起使用。
视图view的作用(为了安全性,可以隐藏不必要显示的数据)