SQL语句

/*创建表*/
CREATE TABLE table_name(
   name1 type1 PRIMARY KEY,--主键
   name2 type2,
   name3 type3   
);

/*插入数据*/
INSERT 
INTO table_name
VALUES (value1-1,value1-2,value1-3),
             (value2-1,value2-2,value2-3),
             (value3-1,value3-2,value3-3);

/*为表增加一个字段*/
ALTER TABLE table_name ADD name4 type4;
--增加了字段之后,原来的数据并没有该字段的值,这个咋整???

/*删除数据*/
DELETE 
FROM table_name
WHERE column_name=name2;
--删除姓名是name2的所有信息

/*更新数据*/
UPDATE table_name
SET value1-2=value0;
--WHERE column_name=name1,只更新name1中的值
--同时也可以增加WHERE子句来限制更新的范围

/*查询数据*/
SELECT value1-2
FROM table_name;
--WHERE column_name=value
--可以通过WHERE字句来限制查询的范围

/*创建索引*/
--普通索引
CREATE INDEX index_name ON table_name(column_name);
--非空索引
CREATE UNIQUE INDEX index_name ON table_name(column_name);
--主键索引
CREATE PRIMARY KEY INDEX index_name ON table_name(column_name);

/*使用ALTER TABLE语句创建索引*/
ALTER TABLE table_name ADD INDEX index_name(column_list);
ALTER TABLE table_name ADD UNIQUE (column_list);
ALTER TABLE table_name ADD PRIMARY KEY (column_list);

/*删除索引*/
DROP INDEX index_name ON table_name;
ALTER TABLE table_name DROP index index_name;
ALTER TABLE table_name DROP PRIMARY KEY;


/*创建外键*/
--在创建表的时候同时创建
CREATE TABLE table1(
  code int PRIMARY KEY,
  name1 int,
  name2 int        
);
CREATE TABLE table2(
  num int PRIMARY KEY,
  name3 int,
  name4 int FOREIGN KEY REFERENCES table1(code)--创建了一个与table1中的code主键对应的外键  
);

/*增加外键约束*/
ALTER TABLE fk_table_name ADD CONSTRAINT fk_name FOREIGN KEY REFERENCES zhu_table_name(column_name)

/*删除外键*/
ALTER TABLE fk_table_name DROP CONSTRAINT fk_name

--fk_table_name:外键所在的表名,fk_name:外键名
--如果在执行含有创建外键的语句时出现错误:"外键引用了无效的编号",这说明外键依赖的主键所在的表还未创建,所以必须调动它们创建的顺序。
--如果两个表的两个外键相互依赖,最好不要把创建外键的语句放在创建表的内部,因为这会产生矛盾,此时最好在创建两张表之后,再在外边使用外键约束来创建外键
/*创建视图*/
--视图的其他语句,例如"增删改查、约束、WHERE"字句的使用都跟创建一个TABLE的使用方式是一样的,只需要把table_name换成相应的view_name即可
CREATE VIEW view_name(view_column1,view_column2) AS SELECT zhu_column1,zhu_column2 FROM table_name --如果执行该语句出现了错误:”CREATE VIEW必须是批处理中仅有的语句“,可以在创建视图的语句前后加上"GO"语句 GO CREATE VIEW view_name(view_column1,view_column2) AS SELECT zhu_column1,zhu_column2 FROM table_name GO
原文地址:https://www.cnblogs.com/BASE64/p/10970133.html