Loading

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,参看数据库的修改。

posted @ 2019-03-04 13:25  FishLight  阅读(486)  评论(0编辑  收藏  举报