zoukankan      html  css  js  c++  java
  • mysql常用基础知识

    常用的数据类型

    int:整型

    varchar(n):可变长度的char

    datetime:时间

    float(m,d): 共有m位数,少数点后有d位

    test:最多可以存65535个数

    数据库操作(CRUD)

      C:create,R:read,U:update,D:delete

    具体操作:

      INSERT INTO table_name(列1,列2) VALUES(值1,值2)

      SELECT */列名称 FROM 表名称

      UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值

      DELET FROM 表名称 WHERE 列名称 = 值(实际上公司的开发中,数据库从来不删除DELETE数据,而是用状态字段表示用户采取的措施)。

    不区分大小写

      在windows中所有指令不区分大小写

         如图所示:

      

      

      create==CREate且aa==AA

    不建议用*查询所有字段

      在workbench中用指令操作数据库:

    1 insert into first_db.user(name, password) values('yulang', '123456');
    2 SELECT * FROM first_db.user;

      在实际工作中不要用*,因为数据库有很多列,读取所有列需要占用很大一部分网速。

      结果显示:

      

    select语句进阶

      如下:

    1 //选出某几列
    2 SELECT {COLA, COLB, *} FROM {TABLE}
    3 //只有满足CONDITION条件才显示
    4 WHERE {CONDITION}
    5 //每一行按照某列的大小升序,或降序(desc)排列
    6 ORDER BY {COL} DESC
    7 //取出一定数目的行,OFF表示偏移量,COUNT表示取出的行数
    8 LIMIT {OFF},{COUNT}

     扩展

      condition表达式可以包含一些运算符,例如:

      1.>, <, ==等比较运算符。

      2.in。例子:id in (1, 5, 6) 表示id为1或者5或者6。

      3. and等逻辑运算符。

      4.between。例子:id between 2 and 5;表示在id在[2,5]中。 

      代码:

     1 #insert into first_db.user(id,name, password) values(1,'a1', 'b1');
     2 #insert into first_db.user(id,name, password) values(2,'a2', 'b2');
     3 #insert into first_db.user(id,name, password) values(3,'a3', 'b3');
     4 #insert into first_db.user(id,name, password) values(4,'a4', 'b4');
     5 #insert into first_db.user(id,name, password) values(5,'a5', 'b5');
     6 #insert into first_db.user(id,name, password) values(6,'a6', 'b6');
     7 #SELECT * FROM first_db.user;
     8 SELECT * FROM first_db.user where id > 2;
     9 SELECT * FROM first_db.user where id in (3, 4, 5, 6);
    10 SELECT * FROM first_db.user where id > 2 and id <= 6;
    11 SELECT * FROM first_db.user where id between 3 and 6;

      它们的结果都一样:

      

      还可以使用函数:

      例如:count()等函数。

    SELECT count(id) FROM first_db.user where id > 2;

      结果显示:

      

      

      大综合:

    SELECT * FROM first_db.user where id between 1 and 6 order by id desc limit 2, 3;

      按id降序查询[1,6]的记录,并且偏移量为2,取3条记录。

      显示结果:

      

    Mysql中遇到的坑

    1.把反引号` `误认为时单引号' '

      例如:

      

      而我写成了:

     1 DROP TABLE IF EXISTS 'user';
     2 CREATE TABLE 'user' (
     3     'id' int(11) unsigned NOT NULL AUTO_INCREMENT,
     4     'name' varchar(64) NOT NULL DEFAULT ' ',
     5     'password' varchar(128) NOT NULL DEFAULT ' ',
     6     'salt' varchar(32) NOT NULL DEFAULT ' ',
     7     'head_url' varchar(256) NOT NULL DEFAULT ' ',
     8     PRIMARY KEY ('id'),
     9     UNIQUE KEY 'name' ('name')
    10 )    ENGINE=InnoDB DEFAULT CHARSET=utf8;

      报错:16:30:06 DROP TABLE IF EXISTS 'user' Error Code: 1064. You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''user'' at line 1 0.000 sec各种查资料,结果都不能解释,最后才知道原来这是反引号!!!

      反引号的作用:当有些字段的名字跟关键字的名字相同,用反引号可以避免发生错误。

       修改后:

     1 DROP TABLE IF EXISTS `user`;
     2 CREATE TABLE `user` (
     3     `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
     4     `name` varchar(64) NOT NULL DEFAULT ' ',
     5     `password` varchar(128) NOT NULL DEFAULT ' ',
     6     `salt` varchar(32) NOT NULL DEFAULT ' ',
     7     `head_url` varchar(256) NOT NULL DEFAULT ' ',
     8     PRIMARY KEY (`id`),
     9     UNIQUE KEY `name` (`name`)
    10 )    ENGINE=InnoDB DEFAULT CHARSET=utf8;

      使用脚本后,可以使用右键数据库Refresh All,参看数据库的修改。

  • 相关阅读:
    90个常用词根,30个前缀30个后缀
    七、图形与图像处理(1)
    解决Android SDK下载和更新失败的方法(Win系统) 和离线安装
    IT技术网站汇总
    css padding和margin的百分比
    div无法跟随内容的增加而拉伸
    html元素被隐藏在后面
    cron 执行php文件
    cron 编辑器修改
    Eclipse PHP 代码无法自动提示函数
  • 原文地址:https://www.cnblogs.com/yulianggo/p/10470151.html
Copyright © 2011-2022 走看看