SQL命令-部分
SQL 1、对大小写不敏感 2、SQL使用单引号来环绕文本值,如果是数值,不使用引号 -->DML(数据操作语言)执行查询 -->SELECT(从数据库获取数据) select 列名称 from 表名称 select * from 表名称 select distinct 列名称 from 表名称 (列出不重复的项) select 列名称 from 表名称 where 列 运算符 值 (where后面带的是条件) AND OR 将WHERE子语句中把两个或多个条件结合起来(使用()来组成复杂的表达式) ORDER BY 用于对结果集进行排序(指定列/升序)select a,b from table order by a(从table中查询a,b两列,并根据a进行升序排列) select a,b from table order by a,b(满足a,b同时升序) select a,b from table order by a DESC (倒序排列) select a,b from table order by a DESC,b ASC (a倒叙并且b正序) -->UPDATE(更新数据库表中的数据) update 表名称 set 列名称=新值 where 列名称=某值 -->DELETE(从数据库表中删除数据) delete from 表名称 where 列名称=值 -->INSERT INTO(向数据库表中插入数据) INSERT INTO 表名称 VALUES(值1,值2,,) INSERT INTO 表名称 (列名称1,列名称2,,) VALUES(值1,值2,,) -->TOP(用于规定要返回的记录的数目) SQL Server语法:SELECT TOP number|percent column_name(s) FROM table_name mySQL语法:SELECT column_name FROM table_name LIMIT number Oracle语法:SELECT column_name from table_name where rownum<=number -->LIKE(用于在WHERE子句中搜索列中的指定模式) select column_name from table_name where column_name LIKE pattern ('%'可用于定义通配符) select column_name from table_name where column_name NOT LIKE pattern(不包含) -->SQL通配符 1、% 替代一个或多个字符 2、_ 仅替代一个字符 3、[ABC]ABC中任何一个单一字符 (在MYSQL中不适用,必须以正则表达式代替) select * from table_name where column_name regexp '^[ABC]'; select * from table_name where column_name rlike '^[ABC]'; 4、[^ABC]/[!ABC]不是ABC中任何一个 select * from table_name where column_name rlike '^[^ABC]'; -->IN操作符(在WHERE子句中规定多个值,条件中同时带两个值) select * from table_name where column_name in ('a','b') -->BETWEEN 操作符(between..and会选取介于两个值之间的数据范围) select * from table_name where column_name between 'a' and 'c'; --输出a,b,c(MYSQL) 不同的数据库输出的范围不同 select * from table_name where column_name NOT BETWEEN 'a' and 'c'; -->Alias(为列名和表名指定别名) 表名:select column_name from table_name as alias_name ??? 列名:select column_name as alias_name from table_name -->JOIN(用于根据两个或多个表中的列之间的关系,从这些表中查询数据) select column_name(s) from table_name1 inner join table_name2 on table_name1.column_name=table_name2.column_name order by column_name INNER JOIN:
SELECT column_name(s)
FROM table1
INNER JOIN table2 或者 JOIN table2
ON table1.column_name=table2.column_name;
LEFT JOIN:
从左表返回所有的行,即使右表没有匹配
SELECT column_name(s)
FROM table1(左表)
LEFT JOIN table2 或 LEFT OUTER JOIN table2
ON table1.column_name=table2.column_name;
RIGHT JOIN:
SELECT column_name(s)
FROM table1
RIGHT JOIN table2(右表) 或 RIGHT OUTER JOIN table2
ON table1.column_name=table2.column_name;
FULL OUTER JOIN 只要左表和右表存在匹配就返回行
SELECT column_name(s)
FROM table1
FULL OUTER JOIN table2
ON table1.column_name=table2.column_name;
--> Union(用于合并两个或多个select语句的结果集)
[union内部的SELECT语句必须拥有相同数量的列,列也必须是‘相同的数据类型’] select column_name from table_name1 UNION select column_name from table_name2 [UNION ALL重复的值也会显示] --> INTO(1、创建表的备份复件,2、从表中选取数据,将数据插入另一个表中)[MYSQL数据库不支持] select * into new_table_name from old_tablename (将表中的所有的列插入新表) select column_name into new_table_name from old_tablename (将表中的选中的列插入新表) select * into table_name IN 'database' from table_name(将另一个数据库拷贝表) [MYSQL]:create table new_table_name as select * from old_tablename -->INSERT INTO SELECT(从一个表复制数据,然后把数据插入到一个已存在的表中,目标表已存在的不会受影响) INSERT INTO table2 SELECT * FROM table1;(将table1中的所有列都插入到table1中)(表的结构一致) INSERT INTO table2(column_name) SELECT column_name from table1;(表的结构不一致时) +WHERE,加条件 -->DDL(数据定义语言)创建或删除表格 -->CREATE DATABASE 创建数据库 CREATE DATABASE dbname; -->ALTER DATABASE 修改数据库 -->CREATE TABLE 创建新表 create table table_name( column_name1 data_type(size), column_name2 data_type(size), column_name3 data_type(size) ); data_type:varchar,integer,decimal,date.. -->CONSTRAINT(如果存在违反约束的数据行为,会被约束中止) create table table_name( column_name1 data_type(size) constraint_name, column_name2 data_type(size) constraint_name, column_name3 data_type(size) constraint_name ); 约束: NOT NULL:指示某列不能存储NULL值 约束字段始终包含值:不添加值,就无法插入或更新数据 create table table_name(column_name1 data_type(size) NOT NULL);[创建表] alter table table_name modify column_name data_type not null;[修改表] alter table table_name modify column_name data_type null;[删除NOT NULL] UNIQUE:保证某行必须有唯一的值[每一个表可以有多个UNIQUE约束] CREATE: [MYSQL] create table table_name( column_name1 data_type(size) NOT NULL, column_name2 data_type(size) NOT NULL, UNIQUE (column_name1) ); [SQL server/Oracle/MS Access] create table table_name( column_name1 data_type(size) NOT NULL UNIQUE, column_name2 data_type(size) NOT NULL ); 定义多个UNIQUE: create table table_name( column_name1 data_type(size) NOT NULL, column_name2 data_type(size) NOT NULL, CONSTRAINT uc_personid UNIQUE(column_name1,column_name2) ); ALTER: 单个: alter table table_name add unique(column_name) 多个: alter table table_name add constraint uc_personid unique(column_name1,column_name2) 撤销: [MYSQL] alter table table_name drop index uc_personid [SQL server/Oracle/MS Access] alter table table_name drop constraint uc_personid PRIMARY KEY:确定列有唯一标识 FOREIGN KEY:保证一个表中的数据匹配另一表中的值的参照完整性 CHECK:保证列中的值符合指定的条件 DEFAULT:规定没有给列赋值时的默认值 -->ALTER TABLE 变更(改变)数据库表 -->ALTER TABLE table_name TRUNCATE TABLE table_name[改变数据类型] -->ALTER TABLE table_name ADD column_name datatype[表中添加列] -->ALTER TABLE table_name DROP COLUMN column_name[删除表中列] -->DROP TABLE 删除表 -->DROP TABLE table_name[删除表] -->DROP DATABASE database_name[删除数据库] -->TRUNCATE TABLE table_name[删除表中内容] -->CREATE INDEX 创建索引 -->DROP INDEX 删除索引