操作数据:
操作概述:insert、update、delete、select。 操作过程中,SQL语言不区分大小写,而数据有大小写之区别。
向表中插入数据:insert into table_name values('value1','value20,[null]'……);此时注意单引号的正确应用和字段的顺序对应关系。
insert into table_name (column1,column2,column3……) values('value1','value2','value3'……);此命令可向特定的列中插入数据。
insert into table_name (column1,column2,column3……) select (column1,column2,column3……)from table_name [where conditions];
此命令可以从特定的表格中的特定的列选择插入数据。另外,还需要注意NULL值的插入,null值是不占用内存的。
更新现有数据: update table_name set column_name = ' value ' [column2= 'value',] [column3='value', ]
[ where condition ] ;方括弧如果不包含将改变一列的值,否则只是改变一个值。set关键字只用一次,其他的更改用,号隔开。
删除数据 :delete from table_name [where column_name = 'value' ];如果没where子句,将删除一列。删除的数据在有备份的情况下才可能恢复。
更多的操作见:http://blog.csdn.net/hpli148/article/details/7876630,感谢小海的专栏。
管理数据库事务;
事务是对数据库执行的一个操作单位。由DML完成,是一句或者多句DML语句。事务控制命令: COMMIT(用于把事务做的修改保存到数据库,把上一个commit或者rollback命令之后的事务保存到数据库,语法是;commmit [work],此时可能会有挂起现象),ROLLBACK(用于撤销上一个commit或者rollback命令之后的事务,语法:rollback[work]),SAVEPOINT(savepint point_name,创建唯一的保存点,便于回滚).,ROLLBACK TO SAVEPOINT,release savepoint savepoint_name,set transaction read write /write/read only ;只与insert,delete,update配合使用。 这是修改操作如何应用到关系数据库的例子。
从查询中获得有效的结果:select 、distinct、from、 where 、order by关键字。
语句:select [all / * / column_name1,……] [ distinct ] from table_name where [condition 1 | expresion1 ]
[or \ and condition2 | expresion2 ……]
order by column_name desc / asc;
统计表里的记录数量: select count(*/column_name) from table_name;
从另一个表里选择数据; select column_name from table_name.column_name;注意字段别名的应用。
使用操作符对数据进行分类:比较,逻辑(is null/NULL,两个值是不一样的;between’A‘ AND ’B‘;in('A','B','C'……);like ’_abc%‘;exists;unique;all和any,some),求反(not equal,not between,not in,not like ,is not null,not exists,not unique),算数(+ - * / ,比如:select a*b from table_name where c < a*b*e+d/c),注意优先级。
汇总查询结果;
用法:count [*|distinct all ] (column_name) count()统计的是行数,不涉及数据类型。语法:select count() from table_name;
用法:sum()函数 语法:select sum() from table_name;
用法:avg()函数。 语法:select avg() from table_name; 对精度可能会有要求。
用法:max(),min()函数。 使用是会忽略NULL值。
数组排序和分组(按照逻辑次序将重复的字段进行合并):
group by语句,用法:select column_name from table_name where conditions group by column_name/ 整数(1,2,3……);这里用整数来表示字段名。
group by 和order by的区别:
所有被选中的、非汇总函数的字段必须列在group by子句里,除非需要使用汇总函数,否则没有必要使用GROUP BY 子句进行排序。只有group by可用在create view里面。
最重要的是,在GROUP BY 后面的字段必须全,就是说查询到的字段必须都写到by后面,不能遗漏,不然会出现语法错误。group by在order by之前。
having 语句,用法;select column1,column2 from table_name
where conditions
group by column1,column2
having conditions 注意having必须在group by之后,order by'之前;having 后可接函数等等。
order by column1,column2。
调整数据的外观:
ANSI字符函数:串接(在mysql、oracle、SQL Sever中的写法是不同的)、子串、TRANSLATE、REPLACE、UPPER、LOWER、SUBSTR、INSTR、LTRIM、RTRIM、DECODE、LENGTH 、IFNULL、COALESCE、LPAD、RPAD、ASCII等。
算数函数:绝对值ABS,舍入ROUND,平方根SQRT,符号SIGH,,幂POWER,上限GEIL,下限FLOOR,指数EXP,SIN,COS,TAN等。语法:function(expression)。
转换函数。
日期和时间:
日期和时间的标准SQL标准存储数据类型;DATE (格式:YYYYY-MM-DD), TIME( HH: MI: SS.nn) , TIMESTAMP(YYYYY-MM-DD HH:MI:SS.nn)。
datetime 的元素及其取值范围:year(0001-9999),month(01-12),day(01-31),hour(00-23),minute(00-59),second(00.000-61.999)。
日期时间:当前日期,时区,时间与日期相加。(不同的数据库,时期函数基本不一样,所以要具体分析)。还有日期转换,日期描述等等。具体参考sql入门经典。