mysql相关知识

mysql相关知识

创建数据库

create database data_test;

查看数据库

show databases;

选择数据库

use databases;

删除数据库

drop database databasename;
show engines

格式化语句

\G

创建表

CREATE TABLE `user_profile` (
`id` int NOT NULL,
`device_id` int NOT NULL,
`gender` varchar(14) NOT NULL,
`age` int ,
`university` varchar(32) NOT NULL,
`province` varchar(32)  NOT NULL);

查看表定义

DESCRIBE TABLE

查看建表语句

SHOW CREATE TABLE TATA(v)

删除表

drop table test;

验证是否表存在

describe test;

修改表名

alter old_table rename new_table 

表新增字段

alter table test2 add name varchar (20);

修改表新增字段

alter table test2 add age varchar(10) first;

表指定字段后添加字段

 alter table test2 add gagggg varchar(10) after asdf;


表删除字段

alter table test2 drop asdf;

修改表字段类型

 alter table test2 modify age varchar(11);

修改表字段名和字段属性

alter table test2 change age age2 varchar(15);

修改表字典顺序

alter table test2  modify gagggg varchar(10) after name;
alter table test2  modify gagggg varchar(10) first name;

restraint 约束

NOT NULL The IS NOT NULL command is used to test for non-empty values (NOT NULL values).字段不能为空
DEFAULT 设置字段的默认值
UNIQUE KEY 约束字段唯一值(不允许重复)
PRIMARY KEY 约束字段的表主键,可以记录该表唯一标识
AUTO_INCREMENT 约束字段自动增加
FOREIGN KEY 约束字段为表为外键

表设置非空约束not null

 create table test1( age varchar(10) NOT NULL);

表设置默认字段

create table test3( age varchar(10) DEFAULT 'de');

表设置唯一约束

 create table test4(age varchar(10) unique );

表设置唯一约束名

create table test5(age varchar(10) ,constraint  age_un unique(age) );

表设置多个唯一字段

create table t11(age varchar(10) ,name varchar(10) ,constraint  age_name_un unique(age,name) );

表设置主键约束

create table t8(name int primary key);

表设置主键约束名多个主键

 create table t14( age int ,name varchar(11) ,constraint  age_un_ha  primary key (age,name) );

表设置自动增加字段

CREATE TABLE t19(age INT AUTO_INCREMENT,PRIMARY KEY (age));

表设置外建约束

创建主表

 create table t_one(id int primary key)

创建外建表

create table t_two(w_id int primary key, two_id  int ,constraint one_two foreign key(two_id) references t_one(id) );

索引

创建普通索引

 create table t16(id int , index index_id (id));

在已经存在表上创建普通索引

create index t1_index on t8(name);

创建唯一索引

 create table t17(id int ,unique index index_id (id));

验证索引

explain select * from t15;

在已经存在的表上创建唯一索引

create unique index t1_index on t1(col1);

alter 修改表唯一索引

alter table t8 add unique index index_name(name);

创建全文索引(全文索引主要是char/varchar/text)

 create table t20(id varchar(10) ,fulltext index index_id(id));

在已经存在的表上创建全文索引

create fulltext index age_inedex on test1(age);

alter修改全文表

alter table test2 add fulltext index name_index (name);

创建多列索引

create table t21(age int ,name int , index  more_index(age,name));

alter 修改表多列索引

 alter table test7 add index more_index(age,name);

删除索引

drop index age on test7;#age为字段 test7为表名
drop  index more_index  on t21;#more_index 索引名

视图

MySQL中的视图(view)是一种虚拟表,其内容由查询定义,是一个逻辑表,本身并不包含数据。视图看起来和真实的表完全相同,但其中的数据来自定义视图时用到的基本表,并且在打开视图时动态生成。

创建视图

create view view_t21 as select * from t21;

查看视图

show tables;
desc view_t21;

删除视图

drop view  view_t21;
drop view  view_t21,iew_t22;#删除多个视图

修改视图

alter view view_t21 as select age from t21;

利用视图添加基本表数据

 insert into view_t21 (age )  values(11);

利用视图删除基本表数据

 delete from view_t21 where age ='11';

利用视图更新基本表数据

update view_t21 set age=2 where age =1;

触发器

触发器(TRIGGER)是由事件来触发某个操作。这些事件包括INSERT语句、UPDATE语句和DELETE语句。当数据库系统执行这些事件时,就会激活触发器执行相应的操作

创建一个insert 触发器

create  trigger  tri_t21_t20_2 before insert  on t21 for each row insert into t20 values(1);
 insert into t21 (age,name) values(1,2);

查看触发器

show triggers \G;

删除触发器

drop trigger tri_t21_t20;

数据操作

插入数据

 insert into t21 (age) values(1);
 +-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| age   | varchar(10) | YES  | MUL | NULL    |       |
| name  | varchar(10) | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
insert into test6 (age) values(1);#插入数据


插入多条数据

insert into test6 (age) values(1),(2),(3);

更新条件数据

update test6 set name= '1' where age=1;

删除数据

delete from test6  where age =1;

查询

查询表全部字段
select * from test6;
查询指定字段
select age from test6;
查询去重
select distinct(name)from test6;
mysql支持的比较运算符/逻辑运算符
运算符 描述
> 大于
< 小于
= 等于
!=(<>) 不等于
>= 大于等于
<= 小于等于
mysql 支持的逻辑运算符
运算符 描述
and(&&) 逻辑与
or(||) 逻辑或
xor 逻辑异或
not(!) 逻辑非
查看表全部数据
mysql> select * from t21;
+------+------+
| age  | name |
+------+------+
|    2 |    1 |
|    1 |    2 |
|    1 |    3 |
|    1 | NULL |
+------+------+
4 rows in set (0.00 sec)

单条件查询
mysql> select * from t21 where age =1;
+------+------+
| age  | name |
+------+------+
|    1 |    2 |
|    1 |    3 |
|    1 | NULL |
+------+------+
3 rows in set (0.00 sec)

多条件查询
mysql> select * from t21 where age =1 and name =2;
+------+------+
| age  | name |
+------+------+
|    1 |    2 |
+------+------+
1 row in set (0.00 sec)


取值范围查询
mysql> select * from t21 where age between 1 and 2;
+------+------+
| age  | name |
+------+------+
|    2 |    1 |
|    1 |    2 |
|    1 |    3 |
|    1 | NULL |
+------+------+
4 rows in set (0.01 sec)
#t21表 age字段1~2
is null 条件查询 字段值为null
select * from t21 where  name is null;
+------+------+
| age  | name |
+------+------+
|    1 | NULL |
+------+------+
1 row in set (0.00 sec)


is not null 条件查询 字段值非null
mysql> select * from t21;
+------+------+
| age  | name |
+------+------+
|    2 |    1 |
|    1 |    2 |
|    1 |    3 |
|    1 | NULL |
+------+------+
4 rows in set (0.00 sec)

in 条件查询
mysql> select * from t21 where age in (1,2);
+------+------+
| age  | name |
+------+------+
|    2 |    1 |
|    1 |    2 |
|    1 |    3 |
|    1 | NULL |
+------+------+
4 rows in set (0.00 sec)
mysql> select * from t21 where age in (4);
+------+------+
| age  | name |
+------+------+
|    4 | NULL |
|    4 | NULL |
+------+------+
2 rows in set (0.00 sec)


not in 查询
mysql> select * from t21 where name  not  in (1);
+------+------+
| age  | name |
+------+------+
|    1 |    2 |
|    1 |    3 |
+------+------+
2 rows in set (0.00 sec)
like 查询
#SQL 模式匹配使您可以使用 _ 来匹配任何单个字符,使用 % 来匹配任意字符
mysql> SELECT * FROM t21 WHERE AGE LIKE '%';
+------+------+
| age  | name |
+------+------+
|    2 |    1 |
|    1 |    2 |
|    1 |    3 |
|    1 | NULL |
|    4 | NULL |
|    4 | NULL |
|    6 | NULL |
|   21 | NULL |
|   32 | NULL |
|  214 | NULL |
|   33 | NULL |
+------+------+
11 rows in set (0.00 sec)
mysql> SELECT * FROM t21 WHERE AGE LIKE '_1';
+------+------+
| age  | name |
+------+------+
|   21 | NULL |
+------+------+
1 row in set (0.00 sec)



not like 查询
mysql> SELECT * FROM t21 WHERE AGE  NOT LIKE '_1';
+------+------+
| age  | name |
+------+------+
|    2 |    1 |
|    1 |    2 |
|    1 |    3 |
|    1 | NULL |
|    4 | NULL |
|    4 | NULL |
|    6 | NULL |
|   32 | NULL |
|  214 | NULL |
|   33 | NULL |
+------+------+
10 rows in set (0.00 sec)
mysql> SELECT * FROM t21 WHERE AGE  not LIKE '%2';
+------+------+
| age  | name |
+------+------+
|    1 |    2 |
|    1 |    3 |
|    1 | NULL |
|    4 | NULL |
|    4 | NULL |
|    6 | NULL |
|   21 | NULL |
|  214 | NULL |
|   33 | NULL |
+------+------+
9 rows in set (0.00 sec)

单字段排序
mysql> select * from t21 order by age;#默认升序 asc
+------+------+
| age  | name |
+------+------+
|    1 |    2 |
|    1 |    3 |
|    1 | NULL |
|    2 |    1 |
|    4 | NULL |
|    4 | NULL |
|    6 | NULL |
|   21 | NULL |
|   32 | NULL |
|   33 | NULL |
|  214 | NULL |
+------+------+
11 rows in set (0.01 sec)
mysql> select * from t21 order by age asc;
+------+------+
| age  | name |
+------+------+
|    1 |    2 |
|    1 |    3 |
|    1 | NULL |
|    2 |    1 |
|    4 | NULL |
|    4 | NULL |
|    6 | NULL |
|   21 | NULL |
|   32 | NULL |
|   33 | NULL |
|  214 | NULL |
+------+------+
11 rows in set (0.00 sec)
mysql> select * from t21 order by age desc;#降序
+------+------+
| age  | name |
+------+------+
|  214 | NULL |
|   33 | NULL |
|   32 | NULL |
|   21 | NULL |
|    6 | NULL |
|    4 | NULL |
|    4 | NULL |
|    2 |    1 |
|    1 |    2 |
|    1 |    3 |
|    1 | NULL |
+------+------+
11 rows in set (0.00 sec)


多字段排序
mysql> select * from t21 order by age desc ,name desc;#先按照age 降序,相同字段在按照name 降序
+------+------+
| age  | name |
+------+------+
|  214 | NULL |
|   33 | NULL |
|   32 | NULL |
|   21 | NULL |
|    6 | NULL |
|    4 | NULL |
|    4 | NULL |
|    2 |    1 |
|    1 |    3 |
|    1 |    2 |
|    1 | NULL |
+------+------+
11 rows in set (0.00 sec)
限制查询结果数量
mysql> select * from t21  limit 21;#查询结果数据小于限制,现在全部数据
+------+------+
| age  | name |
+------+------+
|    2 |    1 |
|    1 |    2 |
|    1 |    3 |
|    1 | NULL |
|    4 | NULL |
|    4 | NULL |
|    6 | NULL |
|   21 | NULL |
|   32 | NULL |
|  214 | NULL |
|   33 | NULL |
+------+------+
11 rows in set (0.00 sec)
mysql> select * from t21  limit 2;3查询结果数据大于限制,结果是限制数据数量
+------+------+
| age  | name |
+------+------+
|    2 |    1 |
|    1 |    2 |
+------+------+
2 rows in set (0.00 sec)

mysql> select * from t21  limit 1,2; #limit 1为起始位,2为数量(显示第二条开始,2条数据)
+------+------+
| age  | name |
+------+------+
|    1 |    2 |
|    1 |    3 |
+------+------+
2 rows in set (0.00 sec)
mysql> select * from t21  where age =1 limit 1,2;#加入查询条件,限制查询数据数量
+------+------+
| age  | name |
+------+------+
|    1 |    3 |
|    1 | NULL |
+------+------+
2 rows in set (0.00 sec)


统计函数
函数 描述
count() 字段条数
avg() 字段值平均值
sun() 字段值总数
max() 字段值中最大值
min() 字段值中最小值
mysql> select count(*) from t21  ;
+----------+
| count(*) |
+----------+
|       11 |
+----------+
1 row in set (0.01 sec)

mysql> select avg(age) from t21  ;
+----------+
| avg(age) |
+----------+
|  29.0000 |
+----------+
1 row in set (0.00 sec)

mysql> select sum(age) from t21  ;
+----------+
| sum(age) |
+----------+
|      319 |
+----------+
1 row in set (0.00 sec)

mysql> select max(age) from t21  ;
+----------+
| max(age) |
+----------+
|      214 |
+----------+
1 row in set (0.00 sec)


mysql> select min(age) from t21  ;
+----------+
| min(age) |
+----------+
|        1 |
+----------+
1 row in set (0.00 sec)

AS 结果重命名字段
mysql> select min(age) as min_age  from t21  ;结果重名为min_age
+---------+
| min_age |
+---------+
|       1 |
+---------+
1 row in set (0.00 sec)

分组查询
#5.7开始提示:SQL 错误 [1055] [42000]: Expression 可修改步骤为

select @@GLOBAL.sql_mode;#1
set sql_mode = 'STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION';#2
mysql> select * from t21  group by  name  # 分组查询显示查询结果 按照name分组,每组显示1条
+------+------+
| age  | name |
+------+------+
|    2 |    1 |
|    1 |    2 |
|    1 |    3 |
|    1 | NULL | 
+------+------+
4 rows in set (0.00 sec)
mysql> select * from t21  group by  age ;
+------+------+
| age  | name |
+------+------+
|    2 |    1 |
|    1 |    2 |
|    4 | NULL |
|    6 | NULL |
|   21 | NULL |
|   32 | NULL |
|  214 | NULL |
|   33 | NULL |
+------+------+
8 rows in set (0.00 sec)



mysql> select * from t21  ;#t21表全部数据
+------+------+
| age  | name |
+------+------+
|    2 |    1 |
|    1 |    2 |
|    1 |    3 |
|    1 | NULL |
|    4 | NULL |
|    4 | NULL |
|    6 | NULL |
|   21 | NULL |
|   32 | NULL |
|  214 | NULL |
|   33 | NULL |
+------+------+
11 rows in set (0.00 sec)


select group_concat(name) ,age from t21  group by  age ;按照age分组,分组中name的值
+--------------------+------+
| group_concat(name) | age  |
+--------------------+------+
| 2,3                |    1 |
| 1                  |    2 |
| NULL               |    4 |
| NULL               |    6 |
| NULL               |   21 |
| NULL               |   32 |
| NULL               |   33 |
| NULL               |  214 |
+--------------------+------+
8 rows in set (0.00 sec)
mysql> select age,name from t21  group by  age,name ;按照age分组,每组在按照name分组
+------+------+
| age  | name |
+------+------+
|    2 |    1 |
|    1 |    2 |
|    1 |    3 |
|    1 | NULL |
|    4 | NULL |
|    6 | NULL |
|   21 | NULL |
|   32 | NULL |
|  214 | NULL |
|   33 | NULL |
+------+------+
10 rows in set (0.00 sec)

having 限制查询
mysql> select * from t21  ;
+--------+------+
| age    | name |
+--------+------+
|      2 |    1 |
|      1 |    2 |
|      1 |    3 |
|      1 | NULL |
|      4 | NULL |
|      4 | NULL |
|      6 | NULL |
|     21 | NULL |
|     32 | NULL |
|    214 | NULL |
|     33 | NULL |
|      1 |    3 |
|      2 |    3 |
| 123123 |    2 |
+--------+------+
14 rows in set (0.00 sec)

mysql> select age ,count(name) from t21 group by age having age >2;查询按照age 年龄分组age>2,相同name总数结果
+--------+-------------+
| age    | count(name) |
+--------+-------------+
|      4 |           0 |
|      6 |           0 |
|     21 |           0 |
|     32 |           0 |
|    214 |           0 |
|     33 |           0 |
| 123123 |           1 |
+--------+-------------+
7 rows in set (0.00 sec)
mysql> select age ,count(name) from t21 group by age having count(name) >2;按照age分组,相同name数量大于2的结果
+------+-------------+
| age  | count(name) |
+------+-------------+
|    1 |           3 |
+------+-------------+
1 row in set (0.00 sec)



ROUND() 函数用来把数值字段舍入为指定的小数位数
mysql> select * from t21  ;
+--------+------+------+
| age    | name | kpi  |
+--------+------+------+
|      2 |    1 | NULL |
|      1 |    2 | NULL |
|      1 |    3 | NULL |
|      1 | NULL | NULL |
|      4 | NULL | NULL |
|      4 | NULL | NULL |
|      6 | NULL | NULL |
|     21 | NULL | NULL |
|     32 | NULL | NULL |
|    214 | NULL | NULL |
|     33 | NULL | NULL |
|      1 |    3 | NULL |
|      2 |    3 | NULL |
| 123123 |    2 | NULL |
|      1 |    3 | NULL |
|      2 |    3 | NULL |
| 123123 |    2 | NULL |
+--------+------+------+
17 rows in set (0.00 sec)

mysql> select round(kpi) from t21  ;
+------------+
| round(kpi) |
+------------+
|          1 |
|          1 |
|          1 |
|          1 |
|          1 |
|       NULL |
|       NULL |
|       NULL |
|       NULL |
|       NULL |
|       NULL |
|       NULL |
|       NULL |
|       NULL |
|       NULL |
|       NULL |
|       NULL |
+------------+
17 rows in set (0.00 sec)

mysql> select round(kpi,1) from t21  ;
+--------------+
| round(kpi,1) |
+--------------+
|          1.2 |
|          1.2 |
|          1.2 |
|          1.2 |
|          1.2 |
|         NULL |
|         NULL |
|         NULL |
|         NULL |
|         NULL |
|         NULL |
|         NULL |
|         NULL |
|         NULL |
|         NULL |
|         NULL |
|         NULL |
+--------------+
17 rows in set (0.00 sec)

mysql> select round(kpi,2) from t21  ;
+--------------+
| round(kpi,2) |
+--------------+
|         1.22 |
|         1.22 |
|         1.22 |
|         1.22 |
|         1.22 |
|         NULL |
|         NULL |
|         NULL |
|         NULL |
|         NULL |
|         NULL |
|         NULL |
|         NULL |
|         NULL |
|         NULL |
|         NULL |
|         NULL |
+--------------+
17 rows in set (0.00 sec)

mysql> select * from t21  ;
+--------+------+--------+
| age    | name | kpi    |
+--------+------+--------+
|      2 |    1 |   1.22 |
|      1 |    2 |   1.22 |
|      1 |    3 |   1.22 |
|      1 | NULL |   1.22 |
|      4 | NULL | 1.2222 |
|      4 | NULL |   NULL |
|      6 | NULL |   NULL |
|     21 | NULL |   NULL |
|     32 | NULL |   NULL |
|    214 | NULL |   NULL |
|     33 | NULL |   NULL |
|      1 |    3 |   NULL |
|      2 |    3 |   NULL |
| 123123 |    2 |   NULL |
|      1 |    3 |   NULL |
|      2 |    3 |   NULL |
| 123123 |    2 |   NULL |
+--------+------+--------+
17 rows in set (0.00 sec)

mysql> select round(kpi,2) from t21  ;#kpi字段,2位小数
+--------------+
| round(kpi,2) |
+--------------+
|         1.22 |
|         1.22 |
|         1.22 |
|         1.22 |
|         1.22 |
|         NULL |
|         NULL |
|         NULL |
|         NULL |
|         NULL |
|         NULL |
|         NULL |
|         NULL |
|         NULL |
|         NULL |
|         NULL |
|         NULL |
+--------------+
17 rows in set (0.00 sec)

多表查询

UNION:将两个查询块中的所有结果合并为一个结果,省略任何重复项
mysql> select * from t20;
+------+
| id   |
+------+
| 1    |
| 1    |
| 1    |
| 1    |
| 1    |
| 1    |
| 1    |
| 1    |
| 1    |
| 1    |
| 1    |
| 1    |
| 1    |
| 1    |
| 1    |
| 1    |
+------+
16 rows in set (0.00 sec)

mysql> select * from t21;
+--------+------+--------+
| age    | name | kpi    |
+--------+------+--------+
|      2 |    1 |   1.22 |
|      1 |    2 |   1.22 |
|      1 |    3 |   1.22 |
|      1 | NULL |   1.22 |
|      4 | NULL | 1.2222 |
|      4 | NULL |   NULL |
|      6 | NULL |   NULL |
|     21 | NULL |   NULL |
|     32 | NULL |   NULL |
|    214 | NULL |   NULL |
|     33 | NULL |   NULL |
|      1 |    3 |   NULL |
|      2 |    3 |   NULL |
| 123123 |    2 |   NULL |
|      1 |    3 |   NULL |
|      2 |    3 |   NULL |
| 123123 |    2 |   NULL |
+--------+------+--------+
17 rows in set (0.00 sec)

mysql> select age from t21 union all  select id from t20;
+--------+
| age    |
+--------+
| 2      |
| 1      |
| 1      |
| 1      |
| 4      |
| 4      |
| 6      |
| 21     |
| 32     |
| 214    |
| 33     |
| 1      |
| 2      |
| 123123 |
| 1      |
| 2      |
| 123123 |
| 1      |
| 1      |
| 1      |
| 1      |
| 1      |
| 1      |
| 1      |
| 1      |
| 1      |
| 1      |
| 1      |
| 1      |
| 1      |
| 1      |
| 1      |
| 1      |
+--------+
33 rows in set (0.00 sec)


UNION ALL:将两个查询块中的所有结果合并为一个结果
select age as t21_t20 from t21 union all select id from t20; #结果显示第一个查询列名
+---------+
| t21_t20 |
+---------+
| 2       |
| 1       |
| 1       |
| 1       |
| 4       |
| 4       |
| 6       |
| 21      |
| 32      |
| 214     |
| 33      |
| 1       |
| 2       |
| 123123  |
| 1       |
| 2       |
| 123123  |
| 1       |
| 1       |
| 1       |
| 1       |
| 1       |
| 1       |
| 1       |
| 1       |
| 1       |
| 1       |
| 1       |
| 1       |
| 1       |
| 1       |
| 1       |
| 1       |
+---------+
33 rows in set (0.00 sec)


Cartesian product 笛卡尔积 合并
笛卡尔乘积是指[外链图片转存中...(img-hoJxFLFP-1704566677215)]
mysql> select * from t20;
+------+
| id   |
+------+
| 1    |
| 1    |
| 1    |
| 1    |
| 1    |
| 1    |
| 1    |
| 1    |
| 1    |
| 1    |
| 1    |
| 1    |
| 1    |
| 1    |
| 1    |
| 1    |
+------+
16 rows in set (0.00 sec)

mysql> select * from t21;
+--------+------+--------+
| age    | name | kpi    |
+--------+------+--------+
|      2 |    1 |   1.22 |
|      1 |    2 |   1.22 |
|      1 |    3 |   1.22 |
|      1 | NULL |   1.22 |
|      4 | NULL | 1.2222 |
|      4 | NULL |   NULL |
|      6 | NULL |   NULL |
|     21 | NULL |   NULL |
|     32 | NULL |   NULL |
|    214 | NULL |   NULL |
|     33 | NULL |   NULL |
|      1 |    3 |   NULL |
|      2 |    3 |   NULL |
| 123123 |    2 |   NULL |
|      1 |    3 |   NULL |
|      2 |    3 |   NULL |
| 123123 |    2 |   NULL |
+--------+------+--------+
17 rows in set (0.00 sec)


mysql> select * from t21,t20;#等于第一个表数量乘以第二表数量16*17=272,字段数1+3=4
+--------+------+--------+------+
| age    | name | kpi    | id   |
+--------+------+--------+------+
|      2 |    1 |   1.22 | 1    |
|      2 |    1 |   1.22 | 1    |
|      2 |    1 |   1.22 | 1    |
|      2 |    1 |   1.22 | 1    |
|      2 |    1 |   1.22 | 1    |
|      2 |    1 |   1.22 | 1    |
|      2 |    1 |   1.22 | 1    |
|      2 |    1 |   1.22 | 1    |
|      2 |    1 |   1.22 | 1    |
|      2 |    1 |   1.22 | 1    |
|      2 |    1 |   1.22 | 1    |
|      2 |    1 |   1.22 | 1    |
|      2 |    1 |   1.22 | 1    |
|      2 |    1 |   1.22 | 1    |
|      2 |    1 |   1.22 | 1    |
|      2 |    1 |   1.22 | 1    |
|      1 |    2 |   1.22 | 1    |
|      1 |    2 |   1.22 | 1    |
|      1 |    2 |   1.22 | 1    |
|      1 |    2 |   1.22 | 1    |
|      1 |    2 |   1.22 | 1    |
|      1 |    2 |   1.22 | 1    |
|      1 |    2 |   1.22 | 1    |
|      1 |    2 |   1.22 | 1    |
|      1 |    2 |   1.22 | 1    |
|      1 |    2 |   1.22 | 1    |
|      1 |    2 |   1.22 | 1    |
|      1 |    2 |   1.22 | 1    |
|      1 |    2 |   1.22 | 1    |
|      1 |    2 |   1.22 | 1    |
|      1 |    2 |   1.22 | 1    |
|      1 |    2 |   1.22 | 1    |
|      1 |    3 |   1.22 | 1    |
|      1 |    3 |   1.22 | 1    |
|      1 |    3 |   1.22 | 1    |
|      1 |    3 |   1.22 | 1    |
|      1 |    3 |   1.22 | 1    |
|      1 |    3 |   1.22 | 1    |
|      1 |    3 |   1.22 | 1    |
|      1 |    3 |   1.22 | 1    |
|      1 |    3 |   1.22 | 1    |
|      1 |    3 |   1.22 | 1    |
|      1 |    3 |   1.22 | 1    |
|      1 |    3 |   1.22 | 1    |
|      1 |    3 |   1.22 | 1    |
|      1 |    3 |   1.22 | 1    |
|      1 |    3 |   1.22 | 1    |
|      1 |    3 |   1.22 | 1    |
|      1 | NULL |   1.22 | 1    |
|      1 | NULL |   1.22 | 1    |
|      1 | NULL |   1.22 | 1    |
|      1 | NULL |   1.22 | 1    |
|      1 | NULL |   1.22 | 1    |
|      1 | NULL |   1.22 | 1    |
|      1 | NULL |   1.22 | 1    |
|      1 | NULL |   1.22 | 1    |
|      1 | NULL |   1.22 | 1    |
|      1 | NULL |   1.22 | 1    |
|      1 | NULL |   1.22 | 1    |
|      1 | NULL |   1.22 | 1    |
|      1 | NULL |   1.22 | 1    |
|      1 | NULL |   1.22 | 1    |
|      1 | NULL |   1.22 | 1    |
|      1 | NULL |   1.22 | 1    |
|      4 | NULL | 1.2222 | 1    |
|      4 | NULL | 1.2222 | 1    |
|      4 | NULL | 1.2222 | 1    |
|      4 | NULL | 1.2222 | 1    |
|      4 | NULL | 1.2222 | 1    |
|      4 | NULL | 1.2222 | 1    |
|      4 | NULL | 1.2222 | 1    |
|      4 | NULL | 1.2222 | 1    |
|      4 | NULL | 1.2222 | 1    |
|      4 | NULL | 1.2222 | 1    |
|      4 | NULL | 1.2222 | 1    |
|      4 | NULL | 1.2222 | 1    |
|      4 | NULL | 1.2222 | 1    |
|      4 | NULL | 1.2222 | 1    |
|      4 | NULL | 1.2222 | 1    |
|      4 | NULL | 1.2222 | 1    |
|      4 | NULL |   NULL | 1    |
|      4 | NULL |   NULL | 1    |
|      4 | NULL |   NULL | 1    |
|      4 | NULL |   NULL | 1    |
|      4 | NULL |   NULL | 1    |
|      4 | NULL |   NULL | 1    |
|      4 | NULL |   NULL | 1    |
|      4 | NULL |   NULL | 1    |
|      4 | NULL |   NULL | 1    |
|      4 | NULL |   NULL | 1    |
|      4 | NULL |   NULL | 1    |
|      4 | NULL |   NULL | 1    |
|      4 | NULL |   NULL | 1    |
|      4 | NULL |   NULL | 1    |
|      4 | NULL |   NULL | 1    |
|      4 | NULL |   NULL | 1    |
|      6 | NULL |   NULL | 1    |
|      6 | NULL |   NULL | 1    |
|      6 | NULL |   NULL | 1    |
|      6 | NULL |   NULL | 1    |
|      6 | NULL |   NULL | 1    |
|      6 | NULL |   NULL | 1    |
|      6 | NULL |   NULL | 1    |
|      6 | NULL |   NULL | 1    |
|      6 | NULL |   NULL | 1    |
|      6 | NULL |   NULL | 1    |
|      6 | NULL |   NULL | 1    |
|      6 | NULL |   NULL | 1    |
|      6 | NULL |   NULL | 1    |
|      6 | NULL |   NULL | 1    |
|      6 | NULL |   NULL | 1    |
|      6 | NULL |   NULL | 1    |
|     21 | NULL |   NULL | 1    |
|     21 | NULL |   NULL | 1    |
|     21 | NULL |   NULL | 1    |
|     21 | NULL |   NULL | 1    |
|     21 | NULL |   NULL | 1    |
|     21 | NULL |   NULL | 1    |
|     21 | NULL |   NULL | 1    |
|     21 | NULL |   NULL | 1    |
|     21 | NULL |   NULL | 1    |
|     21 | NULL |   NULL | 1    |
|     21 | NULL |   NULL | 1    |
|     21 | NULL |   NULL | 1    |
|     21 | NULL |   NULL | 1    |
|     21 | NULL |   NULL | 1    |
|     21 | NULL |   NULL | 1    |
|     21 | NULL |   NULL | 1    |
|     32 | NULL |   NULL | 1    |
|     32 | NULL |   NULL | 1    |
|     32 | NULL |   NULL | 1    |
|     32 | NULL |   NULL | 1    |
|     32 | NULL |   NULL | 1    |
|     32 | NULL |   NULL | 1    |
|     32 | NULL |   NULL | 1    |
|     32 | NULL |   NULL | 1    |
|     32 | NULL |   NULL | 1    |
|     32 | NULL |   NULL | 1    |
|     32 | NULL |   NULL | 1    |
|     32 | NULL |   NULL | 1    |
|     32 | NULL |   NULL | 1    |
|     32 | NULL |   NULL | 1    |
|     32 | NULL |   NULL | 1    |
|     32 | NULL |   NULL | 1    |
|    214 | NULL |   NULL | 1    |
|    214 | NULL |   NULL | 1    |
|    214 | NULL |   NULL | 1    |
|    214 | NULL |   NULL | 1    |
|    214 | NULL |   NULL | 1    |
|    214 | NULL |   NULL | 1    |
|    214 | NULL |   NULL | 1    |
|    214 | NULL |   NULL | 1    |
|    214 | NULL |   NULL | 1    |
|    214 | NULL |   NULL | 1    |
|    214 | NULL |   NULL | 1    |
|    214 | NULL |   NULL | 1    |
|    214 | NULL |   NULL | 1    |
|    214 | NULL |   NULL | 1    |
|    214 | NULL |   NULL | 1    |
|    214 | NULL |   NULL | 1    |
|     33 | NULL |   NULL | 1    |
|     33 | NULL |   NULL | 1    |
|     33 | NULL |   NULL | 1    |
|     33 | NULL |   NULL | 1    |
|     33 | NULL |   NULL | 1    |
|     33 | NULL |   NULL | 1    |
|     33 | NULL |   NULL | 1    |
|     33 | NULL |   NULL | 1    |
|     33 | NULL |   NULL | 1    |
|     33 | NULL |   NULL | 1    |
|     33 | NULL |   NULL | 1    |
|     33 | NULL |   NULL | 1    |
|     33 | NULL |   NULL | 1    |
|     33 | NULL |   NULL | 1    |
|     33 | NULL |   NULL | 1    |
|     33 | NULL |   NULL | 1    |
|      1 |    3 |   NULL | 1    |
|      1 |    3 |   NULL | 1    |
|      1 |    3 |   NULL | 1    |
|      1 |    3 |   NULL | 1    |
|      1 |    3 |   NULL | 1    |
|      1 |    3 |   NULL | 1    |
|      1 |    3 |   NULL | 1    |
|      1 |    3 |   NULL | 1    |
|      1 |    3 |   NULL | 1    |
|      1 |    3 |   NULL | 1    |
|      1 |    3 |   NULL | 1    |
|      1 |    3 |   NULL | 1    |
|      1 |    3 |   NULL | 1    |
|      1 |    3 |   NULL | 1    |
|      1 |    3 |   NULL | 1    |
|      1 |    3 |   NULL | 1    |
|      2 |    3 |   NULL | 1    |
|      2 |    3 |   NULL | 1    |
|      2 |    3 |   NULL | 1    |
|      2 |    3 |   NULL | 1    |
|      2 |    3 |   NULL | 1    |
|      2 |    3 |   NULL | 1    |
|      2 |    3 |   NULL | 1    |
|      2 |    3 |   NULL | 1    |
|      2 |    3 |   NULL | 1    |
|      2 |    3 |   NULL | 1    |
|      2 |    3 |   NULL | 1    |
|      2 |    3 |   NULL | 1    |
|      2 |    3 |   NULL | 1    |
|      2 |    3 |   NULL | 1    |
|      2 |    3 |   NULL | 1    |
|      2 |    3 |   NULL | 1    |
| 123123 |    2 |   NULL | 1    |
| 123123 |    2 |   NULL | 1    |
| 123123 |    2 |   NULL | 1    |
| 123123 |    2 |   NULL | 1    |
| 123123 |    2 |   NULL | 1    |
| 123123 |    2 |   NULL | 1    |
| 123123 |    2 |   NULL | 1    |
| 123123 |    2 |   NULL | 1    |
| 123123 |    2 |   NULL | 1    |
| 123123 |    2 |   NULL | 1    |
| 123123 |    2 |   NULL | 1    |
| 123123 |    2 |   NULL | 1    |
| 123123 |    2 |   NULL | 1    |
| 123123 |    2 |   NULL | 1    |
| 123123 |    2 |   NULL | 1    |
| 123123 |    2 |   NULL | 1    |
|      1 |    3 |   NULL | 1    |
|      1 |    3 |   NULL | 1    |
|      1 |    3 |   NULL | 1    |
|      1 |    3 |   NULL | 1    |
|      1 |    3 |   NULL | 1    |
|      1 |    3 |   NULL | 1    |
|      1 |    3 |   NULL | 1    |
|      1 |    3 |   NULL | 1    |
|      1 |    3 |   NULL | 1    |
|      1 |    3 |   NULL | 1    |
|      1 |    3 |   NULL | 1    |
|      1 |    3 |   NULL | 1    |
|      1 |    3 |   NULL | 1    |
|      1 |    3 |   NULL | 1    |
|      1 |    3 |   NULL | 1    |
|      1 |    3 |   NULL | 1    |
|      2 |    3 |   NULL | 1    |
|      2 |    3 |   NULL | 1    |
|      2 |    3 |   NULL | 1    |
|      2 |    3 |   NULL | 1    |
|      2 |    3 |   NULL | 1    |
|      2 |    3 |   NULL | 1    |
|      2 |    3 |   NULL | 1    |
|      2 |    3 |   NULL | 1    |
|      2 |    3 |   NULL | 1    |
|      2 |    3 |   NULL | 1    |
|      2 |    3 |   NULL | 1    |
|      2 |    3 |   NULL | 1    |
|      2 |    3 |   NULL | 1    |
|      2 |    3 |   NULL | 1    |
|      2 |    3 |   NULL | 1    |
|      2 |    3 |   NULL | 1    |
| 123123 |    2 |   NULL | 1    |
| 123123 |    2 |   NULL | 1    |
| 123123 |    2 |   NULL | 1    |
| 123123 |    2 |   NULL | 1    |
| 123123 |    2 |   NULL | 1    |
| 123123 |    2 |   NULL | 1    |
| 123123 |    2 |   NULL | 1    |
| 123123 |    2 |   NULL | 1    |
| 123123 |    2 |   NULL | 1    |
| 123123 |    2 |   NULL | 1    |
| 123123 |    2 |   NULL | 1    |
| 123123 |    2 |   NULL | 1    |
| 123123 |    2 |   NULL | 1    |
| 123123 |    2 |   NULL | 1    |
| 123123 |    2 |   NULL | 1    |
| 123123 |    2 |   NULL | 1    |
+--------+------+--------+------+
272 rows in set (0.00 sec)

INNER JOIN内连接

使用 INNER JOIN 来合并表。INNER JOIN 允许任一表中的行 当且仅当两个表都满足 ON 子句中指定的条件时,才会出现在结果中。在这个 例如,ON 子句指定 pet 表中的 name 列必须与 事件表。如果名称出现在一个表中,而另一个表中未显示,则该行不会出现在结果中 因为 ON 子句中的条件失败。
mysql> select * from t20;
+------+------+
| id   | name |
+------+------+
| 1    |    1 |
| 1    |    1 |
| 1    |    1 |
| 1    |    1 |
| 1    |    1 |
| 1    |    1 |
| 1    |    1 |
| 1    |    1 |
| 1    |    1 |
| 1    |    1 |
| 1    |    1 |
| 1    |    1 |
| 1    |    1 |
| 1    |    1 |
| 1    |    1 |
| 1    |    1 |
+------+------+
16 rows in set (0.00 sec)

+--------+------+--------+
| age    | name | kpi    |
+--------+------+--------+
|      2 |    1 |   1.22 |
|      1 |    2 |   1.22 |
|      1 |    3 |   1.22 |
|      1 | NULL |   1.22 |
|      4 | NULL | 1.2222 |
|      4 | NULL |   NULL |
|      6 | NULL |   NULL |
|     21 | NULL |   NULL |
|     32 | NULL |   NULL |
|    214 | NULL |   NULL |
|     33 | NULL |   NULL |
|      1 |    3 |   NULL |
|      2 |    3 |   NULL |
| 123123 |    2 |   NULL |
|      1 |    3 |   NULL |
|      2 |    3 |   NULL |
| 123123 |    2 |   NULL |
+--------+------+--------+
17 rows in set (0.00 sec)


mysql> select * from t21 inner join t20 on  t20.name =t21.name;
+------+------+------+------+------+
| age  | name | kpi  | id   | name |
+------+------+------+------+------+
|    2 |    1 | 1.22 | 1    |    1 |
|    2 |    1 | 1.22 | 1    |    1 |
|    2 |    1 | 1.22 | 1    |    1 |
|    2 |    1 | 1.22 | 1    |    1 |
|    2 |    1 | 1.22 | 1    |    1 |
|    2 |    1 | 1.22 | 1    |    1 |
|    2 |    1 | 1.22 | 1    |    1 |
|    2 |    1 | 1.22 | 1    |    1 |
|    2 |    1 | 1.22 | 1    |    1 |
|    2 |    1 | 1.22 | 1    |    1 |
|    2 |    1 | 1.22 | 1    |    1 |
|    2 |    1 | 1.22 | 1    |    1 |
|    2 |    1 | 1.22 | 1    |    1 |
|    2 |    1 | 1.22 | 1    |    1 |
|    2 |    1 | 1.22 | 1    |    1 |
|    2 |    1 | 1.22 | 1    |    1 |
+------+------+------+------+------+
16 rows in set (0.00 sec)

自然连接

mysql> select * from t21 natural join t20;
+------+------+------+------+
| name | age  | kpi  | id   |
+------+------+------+------+
|    1 |    2 | 1.22 | 1    |
|    1 |    2 | 1.22 | 1    |
|    1 |    2 | 1.22 | 1    |
|    1 |    2 | 1.22 | 1    |
|    1 |    2 | 1.22 | 1    |
|    1 |    2 | 1.22 | 1    |
|    1 |    2 | 1.22 | 1    |
|    1 |    2 | 1.22 | 1    |
|    1 |    2 | 1.22 | 1    |
|    1 |    2 | 1.22 | 1    |
|    1 |    2 | 1.22 | 1    |
|    1 |    2 | 1.22 | 1    |
|    1 |    2 | 1.22 | 1    |
|    1 |    2 | 1.22 | 1    |
|    1 |    2 | 1.22 | 1    |
|    1 |    2 | 1.22 | 1    |
+------+------+------+------+
16 rows in set (0.00 sec)

mysql> select * from t21  natural left join  t20;
+------+--------+--------+------+
| name | age    | kpi    | id   |
+------+--------+--------+------+
|    1 |      2 |   1.22 | 1    |
|    1 |      2 |   1.22 | 1    |
|    1 |      2 |   1.22 | 1    |
|    1 |      2 |   1.22 | 1    |
|    1 |      2 |   1.22 | 1    |
|    1 |      2 |   1.22 | 1    |
|    1 |      2 |   1.22 | 1    |
|    1 |      2 |   1.22 | 1    |
|    1 |      2 |   1.22 | 1    |
|    1 |      2 |   1.22 | 1    |
|    1 |      2 |   1.22 | 1    |
|    1 |      2 |   1.22 | 1    |
|    1 |      2 |   1.22 | 1    |
|    1 |      2 |   1.22 | 1    |
|    1 |      2 |   1.22 | 1    |
|    1 |      2 |   1.22 | 1    |
|    2 |      1 |   1.22 | NULL |
|    3 |      1 |   1.22 | NULL |
| NULL |      1 |   1.22 | NULL |
| NULL |      4 | 1.2222 | NULL |
| NULL |      4 |   NULL | NULL |
| NULL |      6 |   NULL | NULL |
| NULL |     21 |   NULL | NULL |
| NULL |     32 |   NULL | NULL |
| NULL |    214 |   NULL | NULL |
| NULL |     33 |   NULL | NULL |
|    3 |      1 |   NULL | NULL |
|    3 |      2 |   NULL | NULL |
|    2 | 123123 |   NULL | NULL |
|    3 |      1 |   NULL | NULL |
|    3 |      2 |   NULL | NULL |
|    2 | 123123 |   NULL | NULL |
+------+--------+--------+------+
32 rows in set (0.00 sec)

mysql> select * from t21  natural right join  t20;
+------+------+------+------+
| name | id   | age  | kpi  |
+------+------+------+------+
|    1 | 1    |    2 | 1.22 |
|    1 | 1    |    2 | 1.22 |
|    1 | 1    |    2 | 1.22 |
|    1 | 1    |    2 | 1.22 |
|    1 | 1    |    2 | 1.22 |
|    1 | 1    |    2 | 1.22 |
|    1 | 1    |    2 | 1.22 |
|    1 | 1    |    2 | 1.22 |
|    1 | 1    |    2 | 1.22 |
|    1 | 1    |    2 | 1.22 |
|    1 | 1    |    2 | 1.22 |
|    1 | 1    |    2 | 1.22 |
|    1 | 1    |    2 | 1.22 |
|    1 | 1    |    2 | 1.22 |
|    1 | 1    |    2 | 1.22 |
|    1 | 1    |    2 | 1.22 |
+------+------+------+------+
16 rows in set (0.00 sec)

外连接

左外连接
mysql> select t1.name,age,id,t2.name,kpi from t21 as t1 left join t20 as t2 on  t1.name =t2.name;
+------+--------+------+------+--------+
| name | age    | id   | name | kpi    |
+------+--------+------+------+--------+
|    1 |      2 | 1    |    1 |   1.22 |
|    1 |      2 | 1    |    1 |   1.22 |
|    1 |      2 | 1    |    1 |   1.22 |
|    1 |      2 | 1    |    1 |   1.22 |
|    1 |      2 | 1    |    1 |   1.22 |
|    1 |      2 | 1    |    1 |   1.22 |
|    1 |      2 | 1    |    1 |   1.22 |
|    1 |      2 | 1    |    1 |   1.22 |
|    1 |      2 | 1    |    1 |   1.22 |
|    1 |      2 | 1    |    1 |   1.22 |
|    1 |      2 | 1    |    1 |   1.22 |
|    1 |      2 | 1    |    1 |   1.22 |
|    1 |      2 | 1    |    1 |   1.22 |
|    1 |      2 | 1    |    1 |   1.22 |
|    1 |      2 | 1    |    1 |   1.22 |
|    1 |      2 | 1    |    1 |   1.22 |
|    2 |      1 | NULL | NULL |   1.22 |
|    3 |      1 | NULL | NULL |   1.22 |
| NULL |      1 | NULL | NULL |   1.22 |
s q l| NULL |      4 | NULL | NULL | 1.2222 |
| NULL |      4 | NULL | NULL |   NULL |
| NULL |      6 | NULL | NULL |   NULL |
| NULL |     21 | NULL | NULL |   NULL |
| NULL |     32 | NULL | NULL |   NULL |
| NULL |    214 | NULL | NULL |   NULL |
| NULL |     33 | NULL | NULL |   NULL |
|    3 |      1 | NULL | NULL |   NULL |
|    3 |      2 | NULL | NULL |   NULL |
|    2 | 123123 | NULL | NULL |   NULL |
|    3 |      1 | NULL | NULL |   NULL |
|    3 |      2 | NULL | NULL |   NULL |
|    2 | 123123 | NULL | NULL |   NULL |
+------+--------+------+------+--------+
32 rows in set (0.00 sec)
右外连接
mysql> select t1.name,age,id,t2.name,kpi from t21 as t1 right join t20 as t2 on  t1.name =t2.name;
+------+------+------+------+------+
| name | age  | id   | name | kpi  |
+------+------+------+------+------+
|    1 |    2 | 1    |    1 | 1.22 |
|    1 |    2 | 1    |    1 | 1.22 |
|    1 |    2 | 1    |    1 | 1.22 |
|    1 |    2 | 1    |    1 | 1.22 |
|    1 |    2 | 1    |    1 | 1.22 |
|    1 |    2 | 1    |    1 | 1.22 |
|    1 |    2 | 1    |    1 | 1.22 |
|    1 |    2 | 1    |    1 | 1.22 |
|    1 |    2 | 1    |    1 | 1.22 |
|    1 |    2 | 1    |    1 | 1.22 |
|    1 |    2 | 1    |    1 | 1.22 |
|    1 |    2 | 1    |    1 | 1.22 |
|    1 |    2 | 1    |    1 | 1.22 |
|    1 |    2 | 1    |    1 | 1.22 |
|    1 |    2 | 1    |    1 | 1.22 |
|    1 |    2 | 1    |    1 | 1.22 |
+------+------+------+------+------+
16 rows in set (0.00 sec)

存储过程

I F语句

SELECT IF(condition, true_value, false_value) FROM table_name;
SELECT name, IF(age >= 18, 'Adult', 'Minor') AS status FROM users;
在MySQL中,可以使用IF函数结合逻辑运算符来实现多条件判断。以下是一个示例:

sql
SELECT IF(condition1 AND condition2, true_value1, IF(condition3 OR condition4, true_value2, false_value)) AS result  
FROM table_name;
在上述示例中,首先使用AND运算符将两个条件condition1和condition2组合在一起。如果这两个条件都为真,则返回true_value1。否则,使用OR运算符将两个条件condition3和condition4组合在一起,并返回相应的true_value2或false_value。

CASE THEN

SELECT   
CASE   
    WHEN condition1 THEN result1  
    WHEN condition2 THEN result2  
    ...  
    ELSE result  
END   
FROM table_name;
SELECT   
CASE   
    WHEN age >= 18 THEN 'Adult'  
    WHEN age < 18 THEN 'Minor'  
    ELSE 'Unknown'  
END   
AS status FROM users;
#mysql#
全部评论

相关推荐

喜欢飞来飞去的雪碧在刷代码:可以试一试字节
点赞 评论 收藏
分享
头像
05-16 11:16
已编辑
东华理工大学 Java
牛客737698141号:盲猜几十人小公司,庙小妖风大,咋不叫她去4️⃣呢😁
点赞 评论 收藏
分享
评论
1
2
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务