隨筆 - 154  文章 - 60  trackbacks - 0
          <2007年9月>
          2627282930311
          2345678
          9101112131415
          16171819202122
          23242526272829
          30123456

          聲明:

          該blog是為了收集資料,認識朋友,學習、提高技術,所以本blog的內容除非聲明,否則一律為轉載!!

          感謝那些公開自己技術成果的高人們!!!

          支持開源,尊重他人的勞動!!

          常用鏈接

          留言簿(3)

          隨筆分類(148)

          隨筆檔案(143)

          收藏夾(2)

          其他

          學習(技術)

          觀察思考(非技術)

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          查詢MySQL版本,有兩種方法:

          SHOW VARIABLES LIKE 'version';
          or
          SELECT VERSION();
           
          SHOW   TABLES   FROM   database;     查看數據庫里面所有的表,
          執行    desc   table_name;     或者    
          show   columns   from   talbe_name;     查看表中的所有的列

          查看數據庫
          show databases;
          查看表
          show tables;
          show create table table_name;

          統計一個表的字段數

          select   count(*)   from   syscolumns   A   inner   join   sysobjects   B   on   A.id=B.id    
            where   B.name='表名'
          (注:這個lcs沒看懂,有明白的請給解釋一下)

          =======================

          1.如何給標識列插入值

          表中第一個字段id為標識列
          insert into table values (null,'aa',1)

          2.如果表存在刪除表

          drop table if exists tablename

          3.date too long for column 解決方法

          我用的是5.1,昨天把mysql,php,phpmyadmin的字符集都改成utf8后,用load data infile 命令插入數據時總是出現這樣的錯誤提示:data too long for column 'cname' at row 1;網上搜一下,大都說set character_set=utf8之類的,但還是不行,最后找到了一個:
          修改my.ini文件,將
          sql-mode=STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
          注釋掉,ok!
          Update:mysql5在phpmyadmin無法連接時執行的語句:
          SET PASSWORD FOR ‘root’@'localhost’ = OLD_PASSWORD(’[newpassword]‘);

          剛才在導入數據的時候,navicat報錯:
          Data too long for column ‘ip’ at row 1
          提示數據對于ip字段太長

          如果數據類型不正確,也會出錯,而不像4.*那樣自動轉換:
          sendQuery:Incorrect datetime value: ‘未知’ for column ‘date’ at row 1

          如果是數據x (int 11)類型的可能有些奇怪:
          insert into a (x) values (’a')
          出現:
          Out of range value adjusted for column ‘x’ at row 1

          insert into a (x) values (’11a’)
          出現:
          Data truncated for column ‘x’ at row 1

          解決辦法:
          在my.ini里找到
          sql-mode=”STRICT_TRANS_TABLES,NO_AUTO_Create_USER,NO_ENGINE_SUBSTITUTION”
          把其中的
          STRICT_TRANS_TABLES,
          去掉,然后重啟mysql就ok了

          4.分頁語句
          select * from table where ... order by ... limit n,n

          5.mysql 5.0 中文亂碼問題
          解決mysql5.0的中文亂碼問題,只要按下面三步做就可以了:
           1.第一步,修改MySql的配置文件my.ini:
               在安裝好Mysql后,在Mysql所在的目錄下有一個my.ini文件,修改這個my.ini文件,修改方式如下:
             1.1 在[client] 的后面加一條 default-character-set=gb2312
                2.2 把[mysql] 的后面 default-character-set=latin1 改成 default-character-set=gb2312
                2.3 把[mysqd] 的后面 default-character-set=latin1 改成 default-character-set=gb2312
                2.4 在改了上面三處后,后面還一個default-character-set=latin1,這個default-character-set的作用是指定在創建新的表或數據庫

          時,所使用的默認字符編碼,為了方便創建新的表或數據庫,建議把定個 default-character-set也改成gb2312。

            2.第二步,設置與數據庫連接的字符串:
                 在連接字符串(URL)后加上?useUnicode=true&amp;characterEncoding=gb2312這一句,具體如下:
            <bean id="dataSource"
            class="org.springframework.jdbc.datasource.DriverManagerDataSource">
            <property name="driverClassName">
             <value>com.mysql.jdbc.Driver</value>
            </property>
            <property name="url">
             <value>jdbc:mysql://localhost:3306/數據庫名?useUnicode=true&amp;characterEncoding=gb2312</value>
            </property>
            <property name="username">
             <value>用戶名</value>
            </property>
            <property name="password">
             <value>密碼</value>
            </property>
           </bean>
             3.第三步,在java代碼,把SQL語句轉換成gb2312的編碼,然后再執行該SQL.
                 3.1 把字符串轉換成gb2312的編碼的方式如下:
                       public static String GB2312Converter(String str) {
            if (str == null) {
             str = "";
            } else {
             try {
              str = new String(str.getBytes("gb2312"), "gb2312");
             } catch (Exception ex) {
              ex.printStackTrace();
             }
            }
            return str;
                }

                   3.2 獲取gb2312編碼的sql語句:
                         String sql = "select name from user ";
                         sql = GB2312Converter(sql); // 獲取gb2312編碼的sql語句,然后就可以執行該sql語句了。

           



          ===============
          Show index from b (subs)

          ------
          EXPLAIN SELECT *
          FROM items, subs
          WHERE items.channel_id = subs.channel_id
          AND subs.user_id =3
          ORDER BY items.created_at
          LIMIT 20 ;

          =============================
          一句話實現亂序查詢

          select * from a ORDER by rand()

          posted on 2007-09-25 11:48 lk 閱讀(1243) 評論(0)  編輯  收藏 所屬分類: DB
          主站蜘蛛池模板: 长沙县| 石阡县| 镇远县| 温宿县| 广平县| 岳阳市| 德阳市| 东乌| 绥江县| 临西县| 博湖县| 广汉市| 莱西市| 兰考县| 武强县| 林周县| 湘潭市| 阿拉善左旗| 隆化县| 久治县| 仪征市| 紫云| 兰西县| 乐昌市| 正定县| 孙吴县| 射洪县| 仲巴县| 青河县| 景宁| 盐津县| 勐海县| 永兴县| 洛宁县| 姜堰市| 乌拉特后旗| 奉化市| 中阳县| 庄浪县| 武冈市| 海原县|