文章目录

  • 前言
  • 常用查询
    • 一、按关键字排序
    • 1.单字段排序
    • 2.条件查询
    • 3.多字段排序
    • 4.区间判断 AND/OR ——且/或
    • 5.查询不重复记录
    • 二、对结果进行分组
    • 三、限制结果条目(limit)
    • 四、设置别名(alias——>as)
    • 五、通配符
    • 六、子查询
    • 1.子查询—exists
    • 2.子查询—as
    • 3.视图
    • 4.NULL值

前言

  • 准备模板表
mysql -uroot -p123123create database puxin;
#创建库create table xjj (id int(10) primary key not null auto_increment,name varchar(20),score decimal(5,2),address varchar(40),hobby varchar(20));
#创建表insert into xjj values(1,'liuyi',80,'beijing',2);
insert into xjj values(2,'wangwu',90,'shengzheng',2);
insert into xjj values(3,'lisi',60,'shanghai',4);
insert into xjj values(4,'tianqi',99,'hangzhou',5);
insert into xjj values(5,'jiaoshou',98,'laowo',3);
insert into xjj values(6,'hanmeimei',10,'nanjing',3);
insert into xjj values(7,'lilei',11,'nanjing',5);
insert into xjj values(8,'caicai',16,'nanjing',5);
#插入表mysql> select * from xjj;
+----+-----------+-------+------------+-------+
| id | name      | score | address    | hobby |
+----+-----------+-------+------------+-------+
|  1 | liuyi     | 80.00 | beijing    | 2     |
|  2 | wangwu    | 90.00 | shengzheng | 2     |
|  3 | lisi      | 60.00 | shanghai   | 4     |
|  4 | tianqi    | 99.00 | hangzhou   | 5     |
|  5 | jiaoshou  | 98.00 | laowo      | 3     |
|  6 | hanmeimei | 10.00 | nanjing    | 3     |
|  7 | lilei     | 11.00 | nanjing    | 5     |
|  8 | caicai    | 16.00 | nanjing    | 5     |
+----+-----------+-------+------------+-------+
8 rows in set (0.00 sec)

常用查询

  • 增、删、改、查
  • 对MySQL数据库的查询,除了基本的查询外,有时候需要对查询的结果集进行处理,例如只取 10 条数据、对查询结果进行排序或分组等等

一、按关键字排序

  • 使用select语句可以将需要的数据从mysql数据库中查询出来,如果对查询的结果进行排序操作,可以使用order by 语句完成排序,并且最终将排序后的结果返回给客户
  • 类比于windows任务管理器
select 字段 from 表名 order by 字段 ASC|DESC
  • ASC|DESC

    ASC是按照升序进行排名的,默认的排序方式,可省略

    DESC是按照降序的方式进行排序的

  • order by 也可以通过 where 子语句对查询结果进行进一步的过滤

  • 可进行多字段的排序

1.单字段排序

#按分数排序,默认不指定升序排列 asc
mysql> select id,name,score from xjj order by score;
+----+-----------+-------+
| id | name      | score |
+----+-----------+-------+
|  6 | hanmeimei | 10.00 |
|  7 | lilei     | 11.00 |
|  8 | caicai    | 16.00 |
|  3 | lisi      | 60.00 |
|  1 | liuyi     | 80.00 |
|  2 | wangwu    | 90.00 |
|  5 | jiaoshou  | 98.00 |
|  4 | tianqi    | 99.00 |
+----+-----------+-------+
8 rows in set (0.00 sec)#按分数排序,使用desc降序
mysql> select id,name,score from xjj order by score desc;
+----+-----------+-------+
| id | name      | score |
+----+-----------+-------+
|  4 | tianqi    | 99.00 |
|  5 | jiaoshou  | 98.00 |
|  2 | wangwu    | 90.00 |
|  1 | liuyi     | 80.00 |
|  3 | lisi      | 60.00 |
|  8 | caicai    | 16.00 |
|  7 | lilei     | 11.00 |
|  6 | hanmeimei | 10.00 |
+----+-----------+-------+
8 rows in set (0.00 sec)

2.条件查询

mysql> select name,score from xjj where address='hangzhou' order by score desc;
+--------+-------+
| name   | score |
+--------+-------+
| tianqi | 99.00 |
+--------+-------+
1 row in set (0.00 sec)

3.多字段排序

#原则:order by之后的参数,使用 “,”分割,优先级是按先后顺序而定mysql> select id,name,hobby from xjj order by hobby desc,id asc;
+----+-----------+-------+
| id | name      | hobby |
+----+-----------+-------+
|  4 | tianqi    | 5     |
|  7 | lilei     | 5     |
|  8 | caicai    | 5     |
|  3 | lisi      | 4     |
|  5 | jiaoshou  | 3     |
|  6 | hanmeimei | 3     |
|  1 | liuyi     | 2     |
|  2 | wangwu    | 2     |
+----+-----------+-------+
8 rows in set (0.00 sec)小结:order by之后的第一个参数只有在出现相同的数值,第二个字段才有意思

4.区间判断 AND/OR ——且/或

mysql> select * from xjj where score > 70 and score <=90;
+----+--------+-------+------------+-------+
| id | name   | score | address    | hobby |
+----+--------+-------+------------+-------+
|  1 | liuyi  | 80.00 | beijing    | 2     |
|  2 | wangwu | 90.00 | shengzheng | 2     |
+----+--------+-------+------------+-------+mysql> select * from xjj where score > 70 or score <=90;
+----+-----------+-------+------------+-------+
| id | name      | score | address    | hobby |
+----+-----------+-------+------------+-------+
|  1 | liuyi     | 80.00 | beijing    | 2     |
|  2 | wangwu    | 90.00 | shengzheng | 2     |
|  3 | lisi      | 60.00 | shanghai   | 4     |
|  4 | tianqi    | 99.00 | hangzhou   | 5     |
|  5 | jiaoshou  | 98.00 | laowo      | 3     |
|  6 | hanmeimei | 10.00 | nanjing    | 3     |
|  7 | lilei     | 11.00 | nanjing    | 5     |
|  8 | caicai    | 16.00 | nanjing    | 5     |
+----+-----------+-------+------------+-------+
8 rows in set (0.00 sec)mysql> select * from xjj where score > 70 or (score <60 and score >15);
+----+----------+-------+------------+-------+
| id | name     | score | address    | hobby |
+----+----------+-------+------------+-------+
|  1 | liuyi    | 80.00 | beijing    | 2     |
|  2 | wangwu   | 90.00 | shengzheng | 2     |
|  4 | tianqi   | 99.00 | hangzhou   | 5     |
|  5 | jiaoshou | 98.00 | laowo      | 3     |
|  8 | caicai   | 16.00 | nanjing    | 5     |
+----+----------+-------+------------+-------+
5 rows in set (0.00 sec)

5.查询不重复记录

select distinct 字段 from 表名;

distinct 必须放在最开头

distinct 只能使用需要去重的字段进行操作

distinct 去重多个字段,含义是:几个字段同时重复时才能被过滤

mysql> select distinct hobby from xjj;
+-------+
| hobby |
+-------+
| 2     |
| 4     |
| 5     |
| 3     |
+-------+
4 rows in set (0.00 sec)mysql> select name,hobby from xjj where hobby in (select distinct hobby from xjj);
+-----------+-------+
| name      | hobby |
+-----------+-------+
| liuyi     | 2     |
| wangwu    | 2     |
| lisi      | 4     |
| tianqi    | 5     |
| jiaoshou  | 3     |
| hanmeimei | 3     |
| lilei     | 5     |
| caicai    | 5     |
+-----------+-------+
8 rows in set (0.00 sec)

二、对结果进行分组

  • 通过SQL查询出来的结果,还可以对其进行分组,使用group by 语句来实现
  • group by 通常都是结合聚合函数一起使用的,常用的聚合函数包括:计数(count)、求和(sum)、请平均数(avg)、最大值(max)、最小值(min),group by 分组的时候可以按一个或者多个字段对结果进行分组处理
select 字段,聚合函数 from 表名 (where 字段名(匹配) 数值) group by 字段名;
#对xjj进行分组,筛选范围/条件是score大于等于45的 'name',score相同的会默认分在一个组
mysql> select count(name),score from xjj where score>=45 group by score;
+-------------+-------+
| count(name) | score |
+-------------+-------+
|           1 | 60.00 |
|           1 | 80.00 |
|           1 | 90.00 |
|           1 | 98.00 |
|           1 | 99.00 |
+-------------+-------+
5 rows in set (0.00 sec)#对xjj表中所有address相同的内容进行分组
mysql> select count(id),address from xjj group by address;
+-----------+------------+
| count(id) | address    |
+-----------+------------+
|         1 | beijing    |
|         1 | hangzhou   |
|         1 | laowo      |
|         3 | nanjing    |
|         1 | shanghai   |
|         1 | shengzheng |
+-----------+------------+
6 rows in set (0.00 sec)#基于上一条操作,结合order by把统计的id数量进行按降序序排列
mysql> select count(id), hobby from xjj group by hobby order by count(id)
+-----------+-------+
| count(id) | hobby |
+-----------+-------+
|         3 | 5     |
|         2 | 3     |
|         2 | 2     |
|         1 | 4     |
+-----------+-------+
4 rows in set (0.00 sec)#结合where语句,筛选分数大于等于70的分组,计算学生个数按降序排列
mysql> select count(name),score,hobby from xjj where score>=70 group by hobby order by count(name) desc;
+-------------+-------+-------+
| count(name) | score | hobby |
+-------------+-------+-------+
|           2 | 80.00 | 2     |
|           1 | 99.00 | 5     |
|           1 | 98.00 | 3     |
+-------------+-------+-------+
3 rows in set (0.00 sec)

三、限制结果条目(limit)

  • 在使用mysql select 语句进行查询操作时,结果集返回的是所有匹配的记录,有时候仅需返回第一行或前几行,这时候就需用到limit 子句
select 字段 from 表名 limit [offset,] number
  • LIMIT 的第一个参数是位置偏移量(可选参数),是设置 MySQL 从哪一行开始显示
  • 如果不设定第一个参数,将会从表中的第一条记录开始显示
  • 需要注意的是,第一条记录的 位置偏移量是 0,第二条是 1,以此类推,第二个参数是设置返回记录行的最大数目
#查询所有信息显示前4行记录
mysql> select * from xjj limit 3;
+----+--------+-------+------------+-------+
| id | name   | score | address    | hobby |
+----+--------+-------+------------+-------+
|  1 | liuyi  | 80.00 | beijing    | 2     |
|  2 | wangwu | 90.00 | shengzheng | 2     |
|  3 | lisi   | 60.00 | shanghai   | 4     |
+----+--------+-------+------------+-------+
3 rows in set (0.00 sec)#从第4行开始,往后显示3行内容
mysql> select * from xjj limit 3,3;
+----+-----------+-------+----------+-------+
| id | name      | score | address  | hobby |
+----+-----------+-------+----------+-------+
|  4 | tianqi    | 99.00 | hangzhou | 5     |
|  5 | jiaoshou  | 98.00 | laowo    | 3     |
|  6 | hanmeimei | 10.00 | nanjing  | 3     |
+----+-----------+-------+----------+-------+
3 rows in set (0.00 sec)#结合order by语句,按id的大小升序排列显示前三行
mysql> select id,name from xjj order by id limit 3;
+----+--------+
| id | name   |
+----+--------+
|  1 | liuyi  |
|  2 | wangwu |
|  3 | lisi   |
+----+--------+
3 rows in set (0.00 sec)#输出最后三行
mysql> select id,name from xjj order by id desc limit 3;
+----+-----------+
| id | name      |
+----+-----------+
|  8 | caicai    |
|  7 | lilei     |
|  6 | hanmeimei |
+----+-----------+
3 rows in set (0.00 sec)

四、设置别名(alias——>as)

  • 在mysql查询时,当表的名字比较长或者表内某些字段比较长时,为了方便书写或者多次使用相同的表时,可以给字段列或表设置别名
  • 方便操作,增强可读性
列的别名
select 字段 as 字段别名 表名表的别名
select 字段 from 表名 as 别名 as 可以省略
#列别名设置示例:
mysql> select name as 姓名,score as 成绩 from xjj;
+-----------+--------+
| 姓名      | 成绩   |
+-----------+--------+
| liuyi     |  80.00 |
| wangwu    |  90.00 |
| lisi      |  60.00 |
| tianqi    |  99.00 |
| jiaoshou  |  98.00 |
| hanmeimei |  10.00 |
| lilei     |  11.00 |
| caicai    |  16.00 |
+-----------+--------+
8 rows in set (0.00 sec)#不用as也可以,一样显示
mysql> select count(*) number from xjj;
+--------+
| number |
+--------+
|      8 |
+--------+
1 row in set (0.00 sec)

使用场景

对复杂的表进行查询的时候,别名可以缩短查询语句

多表相连查询的时候(通俗易懂、简短SQL语句)

此外,AS 还可以作为连接语句的操作符
创建yyy表,将xjj表的查询记录全部插入yyy表
mysql> create table yyy as select * from xjj;#此处AS起到的作用:
1、创建了一个新表yyy 并定义表结构,插入表数据(与xjj表相同)
2、但是'约束'没有被完全'复制'过来
#但是如果原表设置了主键,那么附表的:default字段会默认设置一个0
相似:
#克隆、复制表结构
create table yyy (select * from xjj);#也可以加入where 语句判断
mysql> create table aaa as select * from xjj where score >=70;在为表设置别名时,要保证别名不能与数据库中的其他表的名称冲突
列的别名是在结果中有显示的,而表的别名在结果中没有显示,只在执行查询时使用

五、通配符

  • 主要用于替换字符串中的部分字符,通过部分字符的匹配将相关结果查询出来

  • 通配符都是跟like(模糊查询)一起使用,并协同where自居共同来完成查询任务

  • 常用的: %:百分号表示零个、一个或多个字符 _ :下划线表示单个字符

    #查询名字是c开头的记录
    mysql> select id,name from xjj where name like 'c%';
    +----+--------+
    | id | name   |
    +----+--------+
    |  8 | caicai |
    +----+--------+
    1 row in set (0.00 sec)#查询名字里是c和i中间有一个字符的记录
    mysql> select id,name from xjj where name like 'c_ic_i';
    +----+--------+
    | id | name   |
    +----+--------+
    |  8 | caicai |
    +----+--------+
    1 row in set (0.00 sec)#查询名字中间有g的记录
    mysql> select id,name from xjj where name like '%g%';
    +----+--------+
    | id | name   |
    +----+--------+
    |  2 | wangwu |
    +----+--------+
    1 row in set (0.00 sec)#通配符“%”和“_”不仅可以单独使用,也可以组合使用
    mysql> select id,name from xjj where name like 'w%_';
    +----+--------+
    | id | name   |
    +----+--------+
    |  2 | wangwu |
    +----+--------+
    1 row in set (0.00 sec)
    

    六、子查询

    • 子查询也被称作内查询或嵌套查询,是指一个查询语句里面嵌套着另一个查询语句
    • 子查询语句是先于主查询语句被执行的,其结果作为外层的条件返回给主查询进行下一步的查询过滤
    • PS: 子语句可以与主语句所查询的表相同,也可以是不同表
mysql> select name,score from xjj where id in (select id from xjj where score > 70);
+----------+-------+
| name     | score |
+----------+-------+
| liuyi    | 80.00 |
| wangwu   | 90.00 |
| tianqi   | 99.00 |
| jiaoshou | 98.00 |
+----------+-------+
4 rows in set (0.00 sec)
#主语句:select name,score from info where id
子语句(集合): select id from info where score >80
PS:子语句中的sql语句是为了,最后过滤出一个结果集,用于主语句的判断条件
in: 将主表和子表关联/连接的语法
  • 子查询不仅可以在select 中使用,在insert、update、delete中同样可以使用
  • 支持多层嵌套
  • in语句是用来判断某个值是否在给定的集合内(结果集),in往往和select搭配使用
  • 可以使用 not in 来进行对结果集取反
mysql> create table ttt(id int(4));
mysql> insert into ttt values(1),(2),(3);#多表查询
mysql> select id,name,score from xjj where id in (select * from ttt);
+----+--------+-------+
| id | name   | score |
+----+--------+-------+
|  1 | liuyi  | 80.00 |
|  2 | wangwu | 90.00 |
|  3 | lisi   | 60.00 |
+----+--------+-------+
3 rows in set (0.00 sec)

1.子查询—exists

exists 这个关键字在子查询时,主要用于判断exists之后的条件是否成立,如果成立,则正常执行主语句的匹配,如不成立,则不会执行主语句查询,
如子查询结果集不成立的话,输出为null

count为计数,sum为求和,使用sum求和结合exists,如子查询结果集不成立的话,输出为null

#查询如果存在分数等于80的记录则计算xjj的字段数
mysql> select count(*) from xjj where exists(select id from xjj where score=80);
+----------+
| count(*) |
+----------+
|        8 |
+----------+
1 row in set (0.00 sec)#查询如果存在分数小于50的记录则计算xjj的字段数,xjj表没有小于50的,所以返回0
mysql> select count(*) from xjj where exists(select id xjj where score<60);
+----------+
| count(*) |
+----------+
|        3 |
+----------+
1 row in set (0.01 sec)

2.子查询—as

例:
select name,hobby from xjj;
以上命令可以查询一张表的name和hobby信息将结果作为“表”进行查询的时候,我们也需要用到别名
比如我们输入:select hobby from (select name,hobby from xjj);
会报错,因为 select name,hobby from xjj 得到的是一个结果集,而不是表,mysql 是不能识别的
所以我们需要对结果集设置一个别名,这样mysql就能将结果集视为一张表mysql> select a.id from (select id,name from xjj) a;
+----+
| id |
+----+
|  1 |
|  2 |
|  3 |
|  4 |
|  5 |
|  6 |
|  7 |
|  8 |
+----+
8 rows in set (0.00 sec)
相当于
select xjj.id,name from xjj;
select 表.字段,字段 from 表;

3.视图

  • 视图是从一个或多个表中导出来的表,是一种虚拟存在的表
  • 数据库中只存放了视图的定义,而没有存放视图中的数据,这些数据存放在原来的表中
  • 使用视图查询数据时,数据库系统会从原来的表中取出对应的数据
  • 视图中的数据依赖于原来表中的数据,一旦表中数据发生改变,显示在视图中的数据也会发生改变
  • 数据库中的虚拟表,这张虚拟表中不包含真实数据,只是做了映射
    镜花水月/倒影,动态保存结果集(数据)
    作用:
    1.使操作简单化,可以对经常使用的查询定义一个视图,使用户不必为同样的查询操作指定条件

2.增加数据的安全性,通过视图,用户只能查询和修改指定的数据

3.提高表的逻辑独立性,视图可以屏蔽原有表结构变化带来的影响

  • 使用视图的大部分情况时为了保障数据安全性,提高查询效率
  • 根据筛选条件创建了一张虚拟表,当修改表中数据时,原表中的数据不再满足筛选条件时,视图中的表将不会再显示此数据
需求:满足80分的学生展示在视图中
PS:这个结果会动态变化,同时可以给不同的人群(例如权限范围)展示不同的视图
#创建视图
create view v_score as select * from info where score>=80;show table status\G#查看视图
mysql> select * from v_score;
+----+----------+-------+------------+-------+
| id | name     | score | address    | hobby |
+----+----------+-------+------------+-------+
|  1 | liuyi    | 80.00 | beijing    | 2     |
|  2 | wangwu   | 90.00 | shengzheng | 2     |
|  4 | tianqi   | 99.00 | hangzhou   | 5     |
|  5 | jiaoshou | 98.00 | laowo      | 3     |
+----+----------+-------+------------+-------+
4 rows in set (0.00 sec)#修改原表数据
update info set score='60' where name='wangwu';#查看视图
mysql> select * from v_score;
+----+----------+-------+----------+-------+
| id | name     | score | address  | hobby |
+----+----------+-------+----------+-------+
|  1 | liuyi    | 80.00 | beijing  | 2     |
|  4 | tianqi   | 99.00 | hangzhou | 5     |
|  5 | jiaoshou | 98.00 | laowo    | 3     |
+----+----------+-------+----------+-------+
3 rows in set (0.00 sec)

4.NULL值

null值与空值的区别(空气与真空)
null,不占空间
空字符和0,占用空间
is null无法判断空值
空值使用"=“或者”<>"来处理(!=)
count()计算时,NULL会忽略,空值会加入计算

插入一条记录,分数字段输入null,显示出来就是null#验证:alter table xjj add column addr varchar(50);update xjj set addr='nj' where score >=70;#统计数量:检测null是否会加入统计中
select count(addr) from xjj;#将info表中其中一条数据修改为空值''
update xjj set addr='' where name='wangwu';#统计数量,检测空值是不会被添加到统计中
mysql> select count(addr) from xjj;
+-------------+
| count(addr) |
+-------------+
|           1 |
+-------------+
1 row in set (0.00 sec)#查询null值
mysql> select * from xjj where addr is null;
+----+-----------+-------+----------+-------+------+
| id | name      | score | address  | hobby | addr |
+----+-----------+-------+----------+-------+------+
|  1 | liuyi     | 80.00 | beijing  | 2     | NULL |
|  3 | lisi      | 60.00 | shanghai | 4     | NULL |
|  4 | tianqi    | 99.00 | hangzhou | 5     | NULL |
|  5 | jiaoshou  | 98.00 | laowo    | 3     | NULL |
|  6 | hanmeimei | 10.00 | nanjing  | 3     | NULL |
|  7 | lilei     | 11.00 | nanjing  | 5     | NULL |
|  8 | caicai    | 16.00 | nanjing  | 5     | NULL |
+----+-----------+-------+----------+-------+------+
#空值数据: select count(*) from YourTable where Your Column Name is null#查询不为空的值
mysql> select * from xjj where addr is not null;
+----+--------+-------+------------+-------+------+
| id | name   | score | address    | hobby | addr |
+----+--------+-------+------------+-------+------+
|  2 | wangwu | 60.00 | shengzheng | 2     |      |
+----+--------+-------+------------+-------+------+
#非空值数据: select count(*) from YourTable where YourColumnName is not null

Mysql数据库——高阶语句(上)相关推荐

  1. (六)MySQL数据库高阶语句之正则表达式、运算符、连接表达式JOIN

    文章目录 一.正则表达式 二.运算符 1.算术运算符 2.比较运算符 3.逻辑运算符(布尔值) 4.位运算符 5.优先级 三.连接查询 1.内连接 2.左连接 3.右连接 一.正则表达式 MySQL ...

  2. MYSQL sql 高阶语句 (sequel)

    sql 高阶语句 一.空值(NULL) 和 无值('') 的区别 · 无值的长度为 0,不占用空间的:而 NULL 值的长度是 NULL,是占用空间的. · S NULL 或者 IS NOT NULL ...

  3. Mysql数据库(七)——mysql高阶语句(上)

    Mysql数据库(七)--mysql高阶语句(上) 一.按关键字排序 1.单字段排序 2.多字段排序 二.或/且的运用 三.查询不重复记录 四.对结果进行分组 五.限制结果条目 六.设置别名 使用场景 ...

  4. MySQL——高阶语句(上)

    MySQL高阶语句(上) 一.MySQL高级语句 1.ORDER BY----按关键字排序 单字段排序 多字段排序 2.OR/AND----或/且 3.DISTINCT----查询不重复记录 4.GR ...

  5. Mysql数据库(九)——mysql高阶语句(下)

    Mysql数据库(九)--mysql高阶语句(下) 一.函数 1.数学函数 2.聚合函数 3.字符串函数 4.日期时间函数 二.存储过程 1.简介 2.优点 3.语法 ①.例 ②.参数分类 ③.带参数 ...

  6. Mysql数据库(八)——mysql高阶语句(中)

    Mysql数据库(八)--mysql高阶语句(中) 一.正则表达式(同shell脚本的正则表达式) 1.以"."代替任意一个字符 2.匹配前面字符多次 3.匹配前面字符至少一次 4 ...

  7. MySQL——高阶语句、存储过程(下)

    MySQL--高阶语句(下) 一.数据库函数 1.数学函数 2.聚合函数 3.字符串函数 4.日期时间函数 二.存储过程 1.概述 2.简介 3.优点 4.创建存储过程 调用存储过程 带参数的存储过程 ...

  8. MySQL——高阶语句(中)

    MySQL--高阶语句(中) 一.正则表达式 二.运算符 三.比较运算符 四.逻辑运算符 五.位运算符 六.连接查询 1.内连接 2.左连接 3.右连接 一.正则表达式 MySQL 正则表达式通常是在 ...

  9. mysql高阶语句一

    高阶语句一 1.按关键字排序 (1)按一个字段排序: (2)多字段排序 2.区间判断及查询不重复记录 2.1 AND/OR --且/或 2.2.对结果进行分组统计 3.限制结果条目 4.设置别名(al ...

  10. MySQL数据库:SQL语句

    MySql数据库系列阅读 MySQL数据库 MySQL数据库:SQL语句 MySQL数据库:完整性约束 MySQL数据库备份与还原 MySQL数据库:编码 1. SQL概述 1.1 什么是SQL SQ ...

最新文章

  1. Python Module — WSME
  2. idea不识别yml配置文件,怎么办?
  3. 参数 相等_ANSYS DesignXplorer 参数化优化在水冷板流道设计中的应用
  4. 如何QLayout内部的成员部件之间从左到右依次排列
  5. 12、oracle数据库下的存储过程和函数
  6. oracle rac alter日志,ORACLE 11G RAC 增加日志组及增大日志文件
  7. python抽荣耀水晶_深度分析抽取荣耀水晶的窍门,不良抽法很好用,平均100RMB一颗...
  8. 多线程环境下,HashMap为什么会出现死循环?
  9. 遍历一个List的几种方法
  10. 《梦断代码》阅读笔记03
  11. python和pycharm版本要对应吗_pycharm的版本问题
  12. 关于win10系统常用的c盘清理技巧
  13. MS08-067漏洞渗透测试
  14. 安卓优雅的svg实践绚丽效果
  15. 车联网TCU USB的配置和使用
  16. 沈阳市计算机学校1996届,生命科学学院1996届应用生物班校友回母校举行毕业20周年联谊会...
  17. 微信聊天记录不小心被删了怎么办?看看如何恢复吧!
  18. 中文转UTF-8 和UTF-8转中文
  19. 软件设计能力提升之设计匠艺
  20. mysql 闪回删除记录_mysql5.7 闪回数据(update delete insert)

热门文章

  1. 智商太低,竟然算不出病狗神题了
  2. FPGA,verilog驱动VGA显示
  3. 基于python的客流统计_基于深度学习的客流量统计方法
  4. PHP的exec()函数用法详解
  5. 序号47指标横向展示.xlsx_杭州增加2万个小客车指标!想拥有“浙A”车牌,这个APP一定要收好~...
  6. vue day02 笔记(回顾+json-server用法)
  7. iphone怎么找本地音乐_为什么iPhone会发出蜂鸣声或振动? 这是找出方法
  8. markdown颜色索引及表格背景颜色填充
  9. 情商高手比智商高手要可怕多了
  10. 昨天晚上,世界首富马斯克给我上了一课!