运维必会之MySQL篇 (5)

1、按规矩指定所有列名,并且每列都插入值
insert into test(id,name)values(1,'nfsnobody');
2、由于id列为自增的,所以,可以只在name列插入值
insert into test(name) values('oldgirl');
insert into test(id,name)values(null,'zhangsan');
3、如果不指定列,就要按规矩为每列都插入恰当的值。
insert into test values(3,'inca');
4、批量插入数据方法,提升效率
insert into testvalues(4,'zuma'),(5,'kaka'); <==批量插入2条记录,提升效率。
delete from test;
INSERT INTO test VALUES(1,'nfsnobody'),(2,'oldgirl'),(3,'inca'),(4,'zuma'),(5,'kaka');

 

查表语句

查询test前2行:

mysql> select * from test limit 2;

运维必会之MySQL篇


查询test前3行:

mysql> select * from test limit 3;

运维必会之MySQL篇


默认升序查询:

mysql> select * from test where id>3or order by id;

运维必会之MySQL篇


按id倒叙查询:

mysql> select * from test where id>3or order by id desc;

运维必会之MySQL篇


查询小结:
1、查看表test中所有数据
(1)直接查询库下面表的数据

select * from nfsnobody.test;                      #方法1:没有进入nfsnobody数据库的情况 select id from nfsnobody.test;                   #查看id列的方法 select name from nfsnobody.test;          #查看name列的方法

(2)进入指定库查询表的数据

use nfsnobody;                                                #方法1:已经进入nfsnobody数据库的情况 select * from test;

(3)查看MySQL数据库的用户与主机

select user,host from mysql.user;                    #仅查看用户与主机 select user,host,password frommysql.user;       #查看用户与主机与密码

2、根据指定条件查询表的部分信息
例子1:查看test表中的前2条信息

select * from test limit 2;

例子2:查看第1条记录后的两条记录

select * from test limit 1,2;

例子3:指定固定的条件查数据

select * from test where id = 1;                       #查看指定行的记录,整型一般不需要加引号,不然会导致不经过索引。 select * from test wherename='oldgirl';       #查询字符串的话要加引号 select * from test where id=2 andname='oldgirl';          #多个条件查询

例子4:指定固定条件范围查数据

select * from test where id>2 andid<5;      #多个条件,and取交集 select * from test where id>2 orid<5;              #多个条件都成立,也就是显示id>2和id<5的所有条件都会显示出来

 
3、其他查询功能
(1)按照id号进行正向排序

select * from test order by id asc;

(2)按照id号进行倒序排序

select * from test order by id desc;

其它查询:其他查询:子查询,join,union,多表关联查询,分组,having

连表查询

练习:
首先创建3个表:
表一:

mysql> create table student( Sno int(10) NOT NULL COMMENT '学号', Sname varchar(16) NOT NULL COMMENT '姓名', Ssex char(2) NOT NULL COMMENT '性别', Sage tinyint(2)  NOT NULL default'0' COMMENT '学生年龄', Sdept varchar(16)  defaultNULL  COMMENT '学生所在系别', PRIMARY KEY  (Sno) , key index_Sname (Sname) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=UTF8; Query OK, 0 rows affected (0.02 sec)

 
表二:

mysql> create table course( Cno int(10) NOT NULL COMMENT '课程号', Cname varchar(64) NOT NULL COMMENT '课程名', Ccredit tinyint(2) NOT NULL COMMENT '学分', PRIMARY KEY  (Cno) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=UTF8; Query OK, 0 rows affected (0.00 sec)

 
表三:

mysql> CREATE TABLE `SC` (         SCid int(12) NOT NULL auto_incrementCOMMENT '主键',        `Cno` int(10) NOT NULL COMMENT '课程号',        `Sno` int(10) NOT NULL COMMENT '学号',        `Grade` tinyint(2) NOT NULL COMMENT '学生成绩',        PRIMARY KEY  (`SCid`) ) ENGINE=InnoDB DEFAULT CHARSET=UTF8; Query OK, 0 rows affected (0.01 sec)

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zgzyzj.html