mysql数据库中表记录的玩法,2005判断某个表或某

假如一张表中有如下的数据:

SQLite

/// <summary>
        /// 判断是否存在某表的某个字段
        /// </summary>
        /// <param name="tableName">表名称</param>
        /// <param name="columnName">列名称</param>
        /// <returns>是否存在</returns>
        public static bool ColumnExists(string tableName, string columnName)
        {
            string sql = "select count(1) from syscolumns where [id]=object_id('" tableName "') and [name]='" columnName "'";
            object res = GetSingle(sql);
            if (res == null)
            {
                return false;
            }
            return Convert.ToInt32(res) > 0;
        }

一、增加表记录(相当于插入表记录)

图片 1

特色

1.轻量级
2.独立
3.隔离
4.跨平台
5.多语言接口
6.安全性

 

 

当使用select Count(*) from TableName表示获取表中数据记录的条数; 

如何和数据库打交道

1.如何设计数据库与表
2.对数据库进行增删改查
3.优化
4.对象关系映射‘ORM’、

/// <summary>
        /// 表是否存在
        /// </summary>
        /// <param name="TableName"></param>
        /// <returns></returns>
        public static bool TabExists(string TableName)
        {
            string strsql = "select count(*) from sysobjects where id = object_id(N'[" TableName "]') and OBJECTPROPERTY(id, N'IsUserTable') = 1";
            //string strsql = "SELECT count(*) FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[" TableName "]') AND type in (N'U')";
            object obj = GetSingle(strsql);
            int cmdresult;
            if ((Object.Equals(obj, null)) || (Object.Equals(obj, System.DBNull.Value)))
            {
                cmdresult = 0;
            }
            else
            {
                cmdresult = int.Parse(obj.ToString());
            }
            if (cmdresult == 0)
            {
                return false;
            }
            else
            {
                return true;
            }
        }

 1. 插入完整数据(顺序插入)

    语法一:
    INSERT INTO 表名(字段1,字段2,字段3…字段n) VALUES(值1,值2,值3…值n);
    语法二:
    INSERT INTO 表名 VALUES (值1,值2,值3…值n);

2. 指定字段插入数据
    语法:
    INSERT INTO 表名(字段1,字段2,字段3…) VALUES (值1,值2,值3…);

3. 插入多条记录
    语法:
    INSERT INTO 表名 VALUES
        (值1,值2,值3…值n),
        (值1,值2,值3…值n),
        (值1,值2,值3…值n);

4. 插入查询结果
    语法:
    INSERT INTO 表名(字段1,字段2,字段3…字段n) 
                    SELECT (字段1,字段2,字段3…字段n) FROM 表2
                    WHERE …;

有时候可以通过select Count(列名) from TableName来等价于select Count(*) from TableName,但是下面的情况就不会等价

select 列的列表 from 表的列表 where 条件语句 group by 分组属性 having 分组条件 order by 排序列 asc|desc limit m, n;

 

SELECT COUNT(*),COUNT(Name) FROM dbo.Members

游标:游标的实质使一种能从包括多条数据记录的结果集种每次提取一条记录的机制;##

 

结果是:

游标的使用,Cursor的方法:

  • close(); 关闭游标 ,释放资源;
  • copyStringToBuffer(int columnIndex,CharArrayBuffer buffer); 在缓冲区中检索请求的列的文本,将其存储;
  • getColumnCount(); 返回所有列的行数;
  • getColumnIndex(String columnName); 返回指定的列,如果不存在那么返回-1;
  • getColumnIndexOrThrow(String columnName);从0开始返回指定列的名称,如 果不存在将抛出异常;
  • getColumnName(int columnIndex);从给定的索引返回列名;*getColumnNames(); 返回一个字符串数组的列名;
  • moveToFirst(); 将游标移动到第一条;
  • moveToLast(); 将游标移动到最后一条;
  • move(int offset); 将游标移动到指定ID;
  • moveToNext(); 将游标移动到下一条;
  • moveToPrevious(); 将游标移动到上一条;
  • getCount(); 得到游标总记录条数;
  • isFirst(); 判断当前游标是否为第一条数据; **

二、更新表记录

图片 2

  1、格式:

select Count(columnName) from TableName 表示查询列名columnName不为null的记录条数。

语法:
    UPDATE 表名 SET
        字段1=值1,
        字段2=值2,
        WHERE CONDITION;
示例:
    UPDATE mysql.user SET password=password(‘123’) 
        where user=’root’ and host=’localhost’;

  2、注意:

    update 是用于修改或者说是更新数据记录,而set是设置更新那些字段(列)对应什么值,where是一个限制条件,只要与where连用才能精确的定位某一个数据记录,然后将其修改,如果没有where语句,那么就相当于是修改列下所有的数据记录。

 

 

三、删除表记录

  1、delete from table_name [where 条件字句];  ge:delete from user where password='' '' 这就是所有用户删除密码

  2、truncate table table_name;

  3、注意1和2都是删除表记录的,但是如果想删除表中某一行记录建议选择1,如果想删除表中所有记录选择2,删除表所有数据时1是先读取整张表的数据然后逐条删除,2是直接把表删除然后新建一张字段一样的表。

四、查询表记录

  1、格式:

    select *| 字段名1 [as] [别名],字段名2 [as] [别名],... from table_name where  字段名  字句条件

                          group by 字段名 字句条件

                          having 筛选条件

                          order by 字段名 [desc|asc]

                          limit  限制条件;

  2、where字句中可以使用:

    2.1 > < >= <= <> !=   表示比较运算符:

    2.2 between sum1 and sum2 表示值在sum1和sum2之间的数据

    2.3 in(sum1,sum2......)  表示所要查询在括号内的值

    2.4 like '字符串%‘  表示模糊查询

    2.5 and or not   表示逻辑查询

  3、order by 字句

    3.1 order by 是让查询出来的记录按照顺序有序显示出来,其中默认的是按照asc从小到大排序,也可以按照desc从大到小排序,但必须写在句末。

    3.2格式:

      select * from table_name order by 字段名 [desc|asc];

  4、limit 字句

    4.1用于限制查询出的数据记录条数

    4.2 格式:

      select * from table_name limit sum1[,sum2];

    4.3 eg:

      select * from table_name limi 2,5;    表示跳过前2行从第三行开始显示5行

  5、正则表达式:

    5.1 regexp 可以支持^ {sum} $,其中^表示以什么开头,$表示以什么结尾,{sum}表示出现多少次

    5.2 eg:

      select * from table_name where 字段名 regexp '^x' ;  表示查找以x开头的数据记录

      select * from table_name where 字段名 regexp 'x$' ;  表示查找以x结尾的数据记录

      select * from table_name where 字段名 regexp 'x{2}' ;  表示查找x出现两次的数据记录

  6、聚合函数:

    6.1 count(列名):统计行数,相当于统计一列中有多少行。

        eg: select count(列名) from table_name;

    6.2 sum(列名) : 统计列中的和,相当于把一列中的数据相加起来。

        eg: select sum(列名) from table_name;  

    6.3 avg(列名):统计一列中的平均值,相当于一列中的数据相加再除以一列中的数据的行数。

        eg: select avg(列名) from table_name;

    6.4 max|min(列名):统计一列中的最大|最小值

        eg:select max(列名)|min(列名) from table_name;

  7、group by

    7.1 格式:

      select * from  table_name group by 字段名 [having  逻辑判断条件];

    7.2group by 分组后面可以和having 连用。

  8、having

    8.1 select * from table_name having 逻辑判断条件;

    8.2having和where的区别:

      使用where的地方都可以用having替换

      having可以用在分组的后面也可以在分组前面,而where只能在分组前面

      having可以使用聚合函数,而where不行

本文由星彩网app下载发布于星彩彩票app下载,转载请注明出处:mysql数据库中表记录的玩法,2005判断某个表或某

TAG标签:
Ctrl+D 将本页面保存为书签,全面了解最新资讯,方便快捷。