SQL中varchar和nvarchar的基本介绍及其区别 varchar(n) 长度为 n 个字节的可变长度且非 Unicode 的字符数据.n 必须是一个介于 1 和 8,000 之间的数值.存储大小为输入数据的字节的实际长度,而不是 n 个字节. nvarchar(n) 包含 n 个字符的可变长度 Unicode 字符数据.n 的值必须介于 1 与 4,000 之间.字节的存储大小是所输入字符个数的两倍. 两字段分别有字段值:我和coffee 那么varchar字段占2×2+6=10个字节…
SQL中distinct的用法   1.作用于单列 2.作用于多列 3.COUNT统计 4.distinct必须放在开头 5.其他 在表中,可能会包含重复值.这并不成问题,不过,有时您也许希望仅仅列出不同(distinct)的值.关键词 distinct用于返回唯一不同的值. 表A: 表B: 1.作用于单列 select distinct name from A 执行后结果如下: 2.作用于多列 示例2.1 select distinct name, id from A 执行后结果如下: 实际上…
0x00 建表准备 相信很多人在刚开始使用数据库的INNER JOIN.LEFT JOIN和RIGHT JOIN时,都不太能明确区分和正确使用这三种JOIN操作,本文通过一个简单的例子通俗易懂的讲解这三者的区别,希望对大家能带来帮助. 首先,我们创建示例数据库和表.同时也要明确一个概念:A INNER/LEFT/RIGHT JOIN B操作中,A表被称为左表,B表被称为右表. 创建示例数据库school,在数据库school下创建两张示例表:STUDENT.PUNISHMENT. 创建学生基本信…
SQL里有四种JOIN语句用于根据某条件合并两个表: (INNER) JOIN: 交集 LEFT (OUTER) JOIN: 左表数据全包括,右表对应的如果没有就是NULL RIGHT (OUTER) JOIN: 右表数据全包括,左表对应的如果没有就是NULL FULL (OUTER) JOIN: 并集       …
left join [表名] on [条件] where [条件] --on表示连接条件 --where表示对结果的过滤条件 两者不尽相同,使用时需注意 例如: select * from  table0 a left join table1 b on a.id = b.aid and b.status = 'Y' where a.status = 'Y' ---往往采用这种写法 select * from  table0 a left join table1 b on a.id = b.aid…
select UserName as 用户名,PassWord as 密码 from user 与 select UserName 用户名,PassWord 密码 from user 中as用于不用的区别 可以省略,是没有任何问题的.要说有点区别的话,加上as可读性会好一点,尤其是比较长的sql语句,这样就不会显得混乱吧. ---------------------------------------------------------------------------------------…
执行效果: 1.  count(1) and count(*) 当表的数据量大些时,对表作分析之后,使用count(1)还要比使用count(*)用时多了! 从执行计划来看,count(1)和count(*)的效果是一样的. 但是在表做过分析之后,count(1)会比count(*)的用时少些(1w以内数据量),不过差不了多少.  如果count(1)是聚索引,id,那肯定是count(1)快.但是差的很小的. 因为count(*),自动会优化指定到那一个字段.所以没必要去count(1),用c…
if() 把salary表中的女改成男,男改成女: update salary set sex = if( sex = '男','女','男'); if(true,a,b),  if(false,a,b) 这个就是第一个如果是true,就等于a,false就等于b,有点像三元表达式 ifnull(null, a),ifnull(a,b),    ifnull里有两个数,如果第一个不是null,是a非null,就都等于a, 如果a=Null,就都为a. eg: SELECT IFNULL(NULL…
连接式指的是对数据的操作在 conn.Open() 与 conn.Close()之间: 断开式连接指的是 conn.Open()打开连接之后,先将数据放入adapter中,然后关闭连接(conn.Close()),接着利用adapter对数据进行操作. 连接式: sqlConn.Open(); SqlDataReader dr=sqlComm.ExcuteReader(); while(dr.Read()) { for (int i=0; i<dr.FieldCount; i++) { Cons…
union  操作符用于合并两个或多个 SELECT 语句的结果集,并且去除重复数据,按照数据库字段的顺序进行排序. 例 SELECT NAME FROM TABLE1UNIONSELECT EMP_NAME FROM TABLE2; union all 操作符用于合并两个或多个 SELECT 语句的结果集,不去除重复数据,不排序. 例 SELECT NAME FROM TABLE1UNION ALLSELECT EMP_NAME FROM TABLE2; 总结 需要连接的表的列名可以不一样,但…