MySQL实操

## 基于MySQL

#先启动MySQL服务#第一次登录[root@localhost ~]# mysql -uroot -P3306#密码登录[root@localhost ~]# mysql -uroot -pEnter password: Welcome to the MySQL monitor.  Commands end with ; or \g.Your MySQL connection id is 9Server version: 8.0.41 Source distribution....mysql> show databases;+--------------------+| Database           |+--------------------+| db1                || information_schema || mysql              || performance_schema || sys                |+--------------------+#登录指定数据库 只能是一个[root@localhost ~]# mysql -uroot -p8520 db1mysql: [Warning] Using a password on the command line interface can be insecure.Reading table information for completion of table and column namesYou can turn off this feature to get a quicker startup with -A....#修改root密码#没设置密码时[root@localhost ~]# mysqladmin -uroot -p password '密码'#后续设置密码[root@localhost ~]# mysqladmin -uroot password -p '1230'#这个是新密码 输入老密码验证Enter password: mysqladmin: [Warning] Using a password on the command line interface can be insecure.Warning: Since password will be sent to server in plain text, use ssl connection to ensure password safety.....

#查看数据库mysql> show databases;+--------------------+| Database           |+--------------------+| db1                || information_schema || mysql              || performance_schema || sys                |+--------------------+5 rows in set (0.00 sec)#查看所在数据库mysql> select database();+------------+| database() |+------------+| NULL       |+------------+1 row in set (0.00 sec)#切换数据库mysql> use db1Reading table information for completion of table and column namesYou can turn off this feature to get a quicker startup with -ADatabase changed​mysql> select database();+------------+| database() |+------------+| db1        |+------------+1 row in set (0.00 sec)#查看当前登录用户mysql> select user();+----------------+| user()         |+----------------+| root@localhost |+----------------+1 row in set (0.00 sec)#查看当前数据库版本mysql> select version();+-----------+| version() |+-----------+| 8.0.41    |+-----------+1 row in set (0.00 sec)#查看当前用户权限mysql> show privileges;+------------------------------+---------------------------------------+-------------------------------------------------------+| Privilege                    | Context                               | Comment                                               |+------------------------------+---------------------------------------+-------------------------------------------------------+| Alter                        | Tables                                | To alter the table                                    || Alter routine                | Functions,Procedures                  | To alter ....#查看当前用户权限 ,行输出mysql> show privileges\G;*************************** 1. row ***************************Privilege: AlterContext: TablesComment: To alter the table*************************** 2. row ***************************Privilege: Alter routineContext: Functions,ProceduresComment: To alter or drop stored functions/procedures.....mysql> SHow grants for zyy@192.168.157.136;+---------------------------------------------------------------------------------------------------------------------------------------#切换数据库mysql> use db1Database changedmysql> create database db2;Query OK, 1 row affected (0.00 sec)​mysql> show databases;+--------------------+| Database           |+--------------------+| db1                || db2                || information_schema || mysql              || performance_schema || sys                |+--------------------+6 rows in set (0.00 sec)#删除数据库mysql> drop database db2;Query OK, 0 rows affected (0.01 sec)#查看字符集mysql> show character set;+----------+---------------------------------+---------------------+--------+| Charset  | Description                     | Default collation   | Maxlen |+----------+---------------------------------+---------------------+--------+| armscii8 | ARMSCII-8 Armenian              | armscii8_general_ci |      1 || ascii    | US ASCII                        | ascii_general_ci    |      1 || big5     | Big5 Traditional Chinese        | big5_chinese_ci     |      2 || binary   | Binary pseudo charset           | binary     #查看指定用户权限mysql> show grants for zyy@192.168.157.136;+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------......

表结构操作

#查看数据表mysql> show tables;+---------------+| Tables_in_db1 |+---------------+| t800          |+---------------+1 row in set (0.00 sec)#查看表结构mysql> desc t800;+-------+--------------+------+-----+---------+-------+| Field | Type         | Null | Key | Default | Extra |+-------+--------------+------+-----+---------+-------+| id    | int          | YES  |     | NULL    |       || name  | varchar(50)  | YES  |     | NULL    |       || sex   | varchar(4)   | YES  |     | NULL    |       || phone | int          | YES  |     | NULL    |       || extra | varchar(255) | YES  |     | 冲冲    |       |+-------+--------------+------+-----+---------+-------+5 rows in set (0.00 sec)#查看表内容mysql> select * from t800;+------+------+------+------------+-------+| id   | name | sex  | phone      | extra |+------+------+------+------------+-------+|    1 | zyy  | 男   | 1326549871 | NULL  ||    2 | zyy1 | 男   | 1326549872 | NULL  ||    3 | hh   | nan  |  147852963 | NULL  ||    3 | hh1  | nan1 |    1478529 | NULL  ||    4 | aa   | bv   |   14752341 | NULL  || NULL | hao  | 男   |       NULL | NULL  |+------+------+------+------------+-------+6 rows in set (0.00 sec)#创建新表mysql> create table t1(id int,name varchar(20),age int,sex varchar(20));Query OK, 0 rows affected (0.02 sec)​mysql> desc t1;+-------+-------------+------+-----+---------+-------+| Field | Type        | Null | Key | Default | Extra |+-------+-------------+------+-----+---------+-------+| id    | int         | YES  |     | NULL    |       || name  | varchar(20) | YES  |     | NULL    |       || age   | int         | YES  |     | NULL    |       || sex   | varchar(20) | YES  |     | NULL    |       |+-------+-------------+------+-----+---------+-------+4 rows in set (0.00 sec)

对表进行操作(列)

mysql> select * from t800;+------+------+------+------------+-------+| id   | name | sex  | phone      | extra |+------+------+------+------------+-------+|    1 | zyy  | 男   | 1326549871 | NULL  ||    2 | zyy1 | 男   | 1326549872 | NULL  ||    3 | hh   | nan  |  147852963 | NULL  ||    3 | hh1  | nan1 |    1478529 | NULL  ||    4 | aa   | bv   |   14752341 | NULL  || NULL | hao  | 男   |       NULL | NULL  |+------+------+------+------------+-------+6 rows in set (0.00 sec)​mysql> desc t800;+-------+--------------+------+-----+---------+-------+| Field | Type         | Null | Key | Default | Extra |+-------+--------------+------+-----+---------+-------+| id    | int          | YES  |     | NULL    |       || name  | varchar(50)  | YES  |     | NULL    |       || sex   | varchar(4)   | YES  |     | NULL    |       || phone | int          | YES  |     | NULL    |       || extra | varchar(255) | YES  |     | 冲冲    |       |+-------+--------------+------+-----+---------+-------+5 rows in set (0.00 sec)#添加新的列,规定类型mysql> alter table t800 add column habit varchar(20);Query OK, 0 rows affected (0.02 sec)Records: 0  Duplicates: 0  Warnings: 0mysql> desc t800;+-------+--------------+------+-----+---------+-------+| Field | Type         | Null | Key | Default | Extra |+-------+--------------+------+-----+---------+-------+| id    | int          | YES  |     | NULL    |       || name  | varchar(50)  | YES  |     | NULL    |       || sex   | varchar(4)   | YES  |     | NULL    |       || phone | int          | YES  |     | NULL    |       || extra | varchar(255) | YES  |     | 冲冲    |       || habit | varchar(20)  | YES  |     | NULL    |       |+-------+--------------+------+-----+---------+-------+6 rows in set (0.00 sec)#更改列名称及类型#CHANGE COLUMN <旧列名> <新列名> <新列类型> #不想改类型就写原类型mysql> desc t800;+-------+-------------+------+-----+---------+-------+| Field | Type        | Null | Key | Default | Extra |+-------+-------------+------+-----+---------+-------+| id    | int         | YES  |     | NULL    |       || name  | varchar(50) | YES  |     | NULL    |       || sex   | varchar(4)  | YES  |     | NULL    |       || phone | int         | YES  |     | NULL    |       || sport | int         | YES  |     | NULL    |       || habit | varchar(20) | YES  |     | NULL    |       |+-------+-------------+------+-----+---------+-------+6 rows in set (0.00 sec)#改名但是不该类型mysql> alter table t800 CHANGE sport data int;Query OK, 0 rows affected (0.01 sec)Records: 0  Duplicates: 0  Warnings: 0​mysql> desc t800;+-------+-------------+------+-----+---------+-------+| Field | Type        | Null | Key | Default | Extra |+-------+-------------+------+-----+---------+-------+| id    | int         | YES  |     | NULL    |       || name  | varchar(50) | YES  |     | NULL    |       || sex   | varchar(4)  | YES  |     | NULL    |       || phone | int         | YES  |     | NULL    |       || data  | int         | YES  |     | NULL    |       || habit | varchar(20) | YES  |     | NULL    |       |+-------+-------------+------+-----+---------+-------+6 rows in set (0.00 sec)#更改默认值mysql> alter table t800 alter column data set default haha;ERROR 1064 (42000): 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 'haha' at line 1#haha 是字符串但未用引号包裹,MySQL 将其解析为列名或关键字而非字符串值,导致语法错误mysql> alter table t800 alter column data set default 'haha';ERROR 1067 (42000): Invalid default value for 'data'#data 列是数值类型,而 'haha' 是字符串,无法隐式转换。mysql> alter table t800 alter column data set default '0';Query OK, 0 rows affected (0.00 sec)Records: 0  Duplicates: 0  Warnings: 0​mysql> desc t800;+-------+-------------+------+-----+---------+-------+| Field | Type        | Null | Key | Default | Extra |+-------+-------------+------+-----+---------+-------+| id    | int         | YES  |     | NULL    |       || name  | varchar(50) | YES  |     | NULL    |       || sex   | varchar(4)  | YES  |     | NULL    |       || phone | int         | YES  |     | NULL    |       || data  | int         | YES  |     | 0       |       || habit | varchar(20) | YES  |     | NULL    |       |+-------+-------------+------+-----+---------+-------+6 rows in set (0.00 sec)#只修改类型mysql> alter table t800 modify habit int;Query OK, 6 rows affected (0.02 sec)Records: 6  Duplicates: 0  Warnings: 0​mysql> desc t800;+-------+-------------+------+-----+---------+-------+| Field | Type        | Null | Key | Default | Extra |+-------+-------------+------+-----+---------+-------+| id    | int         | YES  |     | NULL    |       || name  | varchar(50) | YES  |     | NULL    |       || sex   | varchar(4)  | YES  |     | NULL    |       || phone | int         | YES  |     | NULL    |       || data  | int         | YES  |     | 0       |       || habit | int         | YES  |     | NULL    |       |+-------+-------------+------+-----+---------+-------+#更改表名mysql> alter table t800 rename to t200;Query OK, 0 rows affected (0.01 sec)​mysql> show tables;+---------------+| Tables_in_db1 |+---------------+| t1            || t200          |+---------------+2 rows in set (0.00 sec)#删除某一列mysql> alter table t200 drop data;Query OK, 0 rows affected (0.01 sec)Records: 0  Duplicates: 0  Warnings: 0​mysql> desc t200;+-------+-------------+------+-----+---------+-------+| Field | Type        | Null | Key | Default | Extra |+-------+-------------+------+-----+---------+-------+| id    | int         | YES  |     | NULL    |       || name  | varchar(50) | YES  |     | NULL    |       || sex   | varchar(4)  | YES  |     | NULL    |       || phone | int         | YES  |     | NULL    |       || habit | int         | YES  |     | NULL    |       |+-------+-------------+------+-----+---------+-------+5 rows in set (0.00 sec)

pt综合操作

#创建测试表mysql> create table t2(id tinyint,name varchar(40),score decimal(4,2),object varchar(50));Query OK, 0 rows affected (0.01 sec)​mysql> desc t2;+--------+--------------+------+-----+---------+-------+| Field  | Type         | Null | Key | Default | Extra |+--------+--------------+------+-----+---------+-------+| id     | tinyint      | YES  |     | NULL    |       || name   | varchar(40)  | YES  |     | NULL    |       || score  | decimal(4,2) | YES  |     | NULL    |       || object | varchar(50)  | YES  |     | NULL    |       |+--------+--------------+------+-----+---------+-------+4 rows in set (0.01 sec)#改表名mysql> alter table t2 rename to c2505;Query OK, 0 rows affected (0.00 sec)#修改数据类型mysql> alter table c2505 modify id int;Query OK, 0 rows affected (0.02 sec)Records: 0  Duplicates: 0  Warnings: 0​mysql> desc c2505;+--------+--------------+------+-----+---------+-------+| Field  | Type         | Null | Key | Default | Extra |+--------+--------------+------+-----+---------+-------+| id     | int          | YES  |     | NULL    |       || name   | varchar(40)  | YES  |     | NULL    |       || score  | decimal(4,2) | YES  |     | NULL    |       || object | varchar(50)  | YES  |     | NULL    |       |+--------+--------------+------+-----+---------+-------+4 rows in set (0.01 sec)​mysql> desc c2505;+--------+--------------+------+-----+---------+-------+| Field  | Type         | Null | Key | Default | Extra |+--------+--------------+------+-----+---------+-------+| object | varchar(50)  | YES  |     | NULL    |       || id     | int          | YES  |     | NULL    |       || name   | varchar(40)  | YES  |     | NULL    |       || score  | decimal(4,2) | YES  |     | NULL    |       |+--------+--------------+------+-----+---------+-------+4 rows in set (0.00 sec)#修改字段顺序mysql> alter table c2505 modify column object varchar(50) after name varchar(40);ERROR 1064 (42000): 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 'varchar(40)' at line 1#冗余的字段定义•:AFTER name 后多写了 varchar(40),这是无效语法。字段位置调整只需指定目标字段名,•无需重复定义目标字段的数据类型mysql> alter table c2505 modify column object varchar(50) after name ;Query OK, 0 rows affected (0.02 sec)Records: 0  Duplicates: 0  Warnings: 0mysql> desc c2505;+--------+--------------+------+-----+---------+-------+| Field  | Type         | Null | Key | Default | Extra |+--------+--------------+------+-----+---------+-------+| id     | int          | YES  |     | NULL    |       || name   | varchar(40)  | YES  |     | NULL    |       || object | varchar(50)  | YES  |     | NULL    |       || score  | decimal(4,2) | YES  |     | NULL    |       |+--------+--------------+------+-----+---------+-------+4 rows in set (0.00 sec)#修改默认值mysql> alter table c2505 modify column object varchar(50) default 'haha';Query OK, 0 rows affected (0.01 sec)Records: 0  Duplicates: 0  Warnings: 0​mysql> desc c2505;+--------+--------------+------+-----+---------+-------+| Field  | Type         | Null | Key | Default | Extra |+--------+--------------+------+-----+---------+-------+| id     | int          | YES  |     | NULL    |       || name   | varchar(40)  | YES  |     | NULL    |       || object | varchar(50)  | YES  |     | haha    |       || score  | decimal(4,2) | YES  |     | NULL    |       |+--------+--------------+------+-----+---------+-------+4 rows in set (0.00 sec)#修改字段是否为空mysql> alter table c2505 modify object varchar(40) not null;Query OK, 0 rows affected (0.01 sec)Records: 0  Duplicates: 0  Warnings: 0​mysql> desc c2505;+--------+--------------+------+-----+---------+-------+| Field  | Type         | Null | Key | Default | Extra |+--------+--------------+------+-----+---------+-------+| id     | int          | YES  |     | NULL    |       || name   | varchar(40)  | YES  |     | NULL    |       || object | varchar(40)  | #NO   |     | NULL    |       || score  | decimal(4,2) | YES  |     | NULL    |       |+--------+--------------+------+-----+---------+-------+4 rows in set (0.00 sec)#设置字段自动增长#先设置其为主键mysql> alter table c2505 modify id int primary key;Query OK, 0 rows affected (0.02 sec)Records: 0  Duplicates: 0  Warnings: 0​mysql> alter table c2505 modify id int auto_increment;Query OK, 0 rows affected (0.02 sec)Records: 0  Duplicates: 0  Warnings: 0​mysql> desc c2505;+--------+--------------+------+-----+---------+----------------+| Field  | Type         | Null | Key | Default | Extra          |+--------+--------------+------+-----+---------+----------------+| id     | int          | NO   | PRI | NULL    | auto_increment || name   | varchar(40)  | YES  |     | NULL    |                || object | varchar(40)  | NO   |     | NULL    |                || score  | decimal(4,2) | YES  |     | NULL    |                |+--------+--------------+------+-----+---------+----------------+4 rows in set (0.00 sec)

insert

#mysql> select * from c2505;Empty set (0.00 sec)#单行插入,指明列名,对应值mysql> insert c2505 (id,name,object,score) values (1,'hao','zy',77.77);Query OK, 1 row affected (0.00 sec)​mysql> select * from c2505;+----+------+--------+-------+| id | name | object | score |+----+------+--------+-------+|  1 | hao  | zy     | 77.77 |+----+------+--------+-------+1 row in set (0.00 sec)#省略列名时,需按表结构顺序提供所有字段的值(自增列可用NULL或DEFAULT,日期时间格式填now() )#可用来批量添加mysql> insert c2505 values (2,'hzk','zyy',78.98);Query OK, 1 row affected (0.00 sec)​mysql> select * from c2505;+----+------+--------+-------+| id | name | object | score |+----+------+--------+-------+|  1 | hao  | zy     | 77.77 ||  2 | hzk  | zyy    | 78.98 |+----+------+--------+-------+2 rows in set (0.00 sec)#自增列用defaultmysql> insert c2505 values (default,'kkk','yy',78.98);Query OK, 1 row affected (0.00 sec)​mysql> select * from c2505;+----+------+--------+-------+| id | name | object | score |+----+------+--------+-------+|  1 | hao  | zy     | 77.77 ||  2 | hzk  | zyy    | 78.98 ||  3 | kkk  | yy     | 78.98 |+----+------+--------+-------+3 rows in set (0.00 sec)#mysql> insert c2505 set name='hk',object='zz';Query OK, 1 row affected (0.00 sec)#插入部分字符mysql> select * from c2505;+----+------+--------+-------+| id | name | object | score |+----+------+--------+-------+|  1 | hao  | zy     | 77.77 ||  2 | hzk  | zyy    | 78.98 ||  3 | kkk  | yy     | 78.98 ||  4 | hk   | zz     |  NULL |+----+------+--------+-------+4 rows in set (0.00 sec)#新插入单个字段(新行)mysql> insert c2505 set object='qwe';Query OK, 1 row affected (0.00 sec)​mysql> select * from c2505;+----+------+--------+-------+| id | name | object | score |+----+------+--------+-------+|  1 | hzk  | zyy    | 92.91 ||  2 | hzk  | zy     | 99.99 ||  3 | hzk  | zy     | 99.99 ||  4 | hzk  | zy     | 99.99 ||  5 | erd  | home   | 99.99 ||  6 | NULL | qwe    |  NULL |+----+------+--------+-------+6 rows in set (0.00 sec)

update

#不用where 默认改全部mysql> update c2505 set name='hh',object='tt',score=78.24;Query OK, 5 rows affected (0.00 sec)Rows matched: 5  Changed: 5  Warnings: 0​mysql> select * from c2505;+----+------+--------+-------+| id | name | object | score |+----+------+--------+-------+|  1 | hh   | tt     | 78.24 ||  2 | hh   | tt     | 78.24 ||  3 | hh   | tt     | 78.24 ||  4 | hh   | tt     | 78.24 ||  5 | hh   | tt     | 78.24 |+----+------+--------+-------+5 rows in set (0.00 sec)#改某一字段 整列mysql> update c2505 set object='zy';Query OK, 5 rows affected (0.01 sec)Rows matched: 5  Changed: 5  Warnings: 0​mysql> select * from c2505;+----+------+--------+-------+| id | name | object | score |+----+------+--------+-------+|  1 | hh   | zy     | 78.24 ||  2 | hh   | zy     | 78.24 ||  3 | hh   | zy     | 78.24 ||  4 | hh   | zy     | 78.24 ||  5 | hh   | zy     | 78.24 |+----+------+--------+-------+5 rows in set (0.00 sec)​mysql> update c2505 set name='hzk',object='zy',score=99.990;Query OK, 5 rows affected (0.01 sec)Rows matched: 5  Changed: 5  Warnings: 0​mysql> select * from c2505;+----+------+--------+-------+| id | name | object | score |+----+------+--------+-------+|  1 | hzk  | zy     | 99.99 ||  2 | hzk  | zy     | 99.99 ||  3 | hzk  | zy     | 99.99 ||  4 | hzk  | zy     | 99.99 ||  5 | hzk  | zy     | 99.99 |+----+------+--------+-------+5 rows in set (0.00 sec)#修改指定行mysql> update c2505 set name='hzk',object='zyy',score=92.91 where id=1;Query OK, 1 row affected (0.00 sec)Rows matched: 1  Changed: 1  Warnings: 0​mysql> select * from c2505;+----+------+--------+-------+| id | name | object | score |+----+------+--------+-------+|  1 | hzk  | zyy    | 92.91 ||  2 | hzk  | zy     | 99.99 ||  3 | hzk  | zy     | 99.99 ||  4 | hzk  | zy     | 99.99 ||  5 | hzk  | zy     | 99.99 |+----+------+--------+-------+5 rows in set (0.00 sec)#修改字段内容mysql> update c2505 set object='home' where id=5;Query OK, 1 row affected (0.01 sec)Rows matched: 1  Changed: 1  Warnings: 0mysql> select * from c2505;+----+------+--------+-------+| id | name | object | score |+----+------+--------+-------+|  1 | hzk  | zyy    | 92.91 ||  2 | hzk  | zy     | 99.99 ||  3 | hzk  | zy     | 99.99 ||  4 | hzk  | zy     | 99.99 ||  5 | hzk  | home   | 99.99 |+----+------+--------+-------+5 rows in set (0.00 sec)#补#修改指定字段mysql> select * from c2505;+----+------+--------+-------+| id | name | object | score |+----+------+--------+-------+|  1 | hzk  | zyy    | 92.91 ||  2 | hzk  | zy     | 99.99 ||  3 | hzk  | zy     | 99.99 ||  4 | hzk  | zy     | 99.99 ||  5 | erd  | home   | 99.99 ||  6 | NULL | qwe    |  NULL |+----+------+--------+-------+6 rows in set (0.00 sec)​mysql> update c2505 set name='pan' where id=6;Query OK, 1 row affected (0.00 sec)Rows matched: 1  Changed: 1  Warnings: 0​mysql> select * from c2505;+----+------+--------+-------+| id | name | object | score |+----+------+--------+-------+|  1 | hzk  | zyy    | 92.91 ||  2 | hzk  | zy     | 99.99 ||  3 | hzk  | zy     | 99.99 ||  4 | hzk  | zy     | 99.99 ||  5 | erd  | home   | 99.99 ||  6 | pan  | qwe    |  NULL |+----+------+--------+-------+6 rows in set (0.00 sec)#条件更新mysql> update c2505 set name='erd' where object='home' and score=99.99;Query OK, 1 row affected (0.00 sec)Rows matched: 1  Changed: 1  Warnings: 0​mysql> select * from c2505;+----+------+--------+-------+| id | name | object | score |+----+------+--------+-------+|  1 | hzk  | zyy    | 92.91 ||  2 | hzk  | zy     | 99.99 ||  3 | hzk  | zy     | 99.99 ||  4 | hzk  | zy     | 99.99 ||  5 | erd  | home   | 99.99 |+----+------+--------+-------+5 rows in set (0.00 sec)

select

#去重查询mysql> select * from c2505;+----+------+--------+-------+| id | name | object | score |+----+------+--------+-------+|  1 | hzk  | zyy    | 92.91 ||  2 | hzk  | zy     | 99.99 ||  3 | hzk  | zy     | 99.99 ||  4 | hzk  | zy     | 99.99 ||  5 | erd  | home   | 99.99 |+----+------+--------+-------+mysql> select distinct name from c2505;+------+| name |+------+| hzk  || erd  |+------+2 rows in set (0.00 sec)#统计查询,非空数据mysql> select * from c2505;+----+------+--------+-------+| id | name | object | score |+----+------+--------+-------+|  1 | hzk  | zyy    | 92.91 ||  2 | hzk  | zy     | 99.99 ||  3 | hzk  | zy     | 99.99 ||  4 | hzk  | zy     | 99.99 ||  5 | erd  | home   | 99.99 |+----+------+--------+-------+#去重后mysql> select count(distinct object) from c2505;+------------------------+| count(distinct object) |+------------------------+|                      3 |+------------------------+1 row in set (0.00 sec)#不去重mysql> select count(object) from c2505;+---------------+| count(object) |+---------------+|             5 |+---------------+1 row in set (0.00 sec)#重新定义查询结果表中的列名称​

ai基础练习

#mysql> select * from student;+------------+--------+--------+------------+-------------+----------+-----------------------+-------------+----------------------+---------------------+---------------------+| student_id | name   | gender | birth_date | enroll_date | major_id | address               | phone       | email                | create_time         | update_time         |+------------+--------+--------+------------+-------------+----------+-----------------------+-------------+----------------------+---------------------+---------------------+|          1 | 张三   | 男     | 2000-05-15 | 2019-09-01  |        1 | 上海市浦东            | 13800138001 | zhangsan@example.com | 2025-07-01 15:21:32 | 2025-07-01 15:21:32 ||          2 | 李四   | 女     | 2001-03-22 | 2020-09-01  |        2 | 上海市浦东新区        | 13800138002 | lisi@example.com     | 2025-07-01 15:21:32 | 2025-07-01 15:21:32 ||          3 | 王五   | 男     | 2000-11-10 | 2019-09-01  |        3 | 广州市天河区          | 13800138003 | wangwu@example.com   | 2025-07-01 15:21:32 | 2025-07-01 15:21:32 ||          4 | 赵六   | 女     | 2001-07-30 | 2020-09-01  |        5 | 深圳市南山区          | 13800138004 | zhaoliu@example.com  | 2025-07-01 15:21:32 | 2025-07-01 15:21:32 ||          5 | 钱七   | 男     | 2000-09-18 | 2019-09-01  |        6 | 成都市武侯区          | 13800138005 | qianqi@example.com   | 2025-07-01 15:21:32 | 2025-07-01 15:21:32 |+------------+--------+--------+------------+-------------+----------+-----------------------+-------------+----------------------+---------------------+---------------------+5 rows in set (0.00 sec)####查询######查询所有男生的姓名、出生日期和联系方式mysql> select name,birth_date,phone from student where gender='男';#参考 SELECT name, birth_date, phone FROM student WHERE gender = '男';+--------+------------+-------------+| name   | birth_date | phone       |+--------+------------+-------------+| 张三   | 2000-05-15 | 13800138001 || 王五   | 2000-11-10 | 13800138003 || 钱七   | 2000-09-18 | 13800138005 |+--------+------------+-------------+3 rows in set (0.00 sec)#查询 2020 年入学(enroll_date)的学生信息,按出生日期升序排列。mysql> select * from student where enroll_date='2020-09-01';#参考SELECT * FROM student WHERE YEAR(enroll_date) = 2020 ORDER BY birth_date ASC;​​#查询地址包含“浦东”的学生姓名和地址,并去重显示。mysql> select distinct name,address from student where address like '%浦东%';+--------+-----------------------+| name   | address               |+--------+-----------------------+| 张三   | 上海市浦东            || 李四   | 上海市浦东新区        |+--------+-----------------------+2 rows in set (0.00 sec)#查询邮箱域名是 example.com 的学生(使用 LIKE 或字符串函数)。mysql> select name from student where email like '%example.com%';+--------+| name   |+--------+| 张三   || 李四   || 王五   || 赵六   || 钱七   |+--------+5 rows in set (0.00 sec)###插入#####插入mysql> desc student;+-------------+--------------+------+-----+---------+-------+| Field       | Type         | Null | Key | Default | Extra |+-------------+--------------+------+-----+---------+-------+| student_id  | int          | YES  |     | NULL    |       || name        | varchar(255) | YES  |     | NULL    |       || gender      | varchar(255) | YES  |     | NULL    |       || birth_date  | date         | YES  |     | NULL    |       || enroll_date | date         | YES  |     | NULL    |       || major_id    | int          | YES  |     | NULL    |       || address     | varchar(255) | YES  |     | NULL    |       || phone       | varchar(255) | YES  |     | NULL    |       || email       | varchar(255) | YES  |     | NULL    |       || create_time | datetime     | YES  |     | NULL    |       || update_time | datetime     | YES  |     | NULL    |       |+-------------+--------------+------+-----+---------+-------+11 rows in set (0.01 sec)#插入一条信息 mysql> insert student values(6,'孙八','男',now(),now(),6,'北京','13866241100','@qq',now(),now());Query OK, 1 row affected, 2 warnings (0.00 sec)​#将 孙八 的电话更新为 110,邮箱更新为 110.com。mysql> update student set phone='110',email='110.com' where name='孙八';Query OK, 1 row affected (0.01 sec)Rows matched: 1  Changed: 1  Warnings: 0#将所有 2019 年入学的学生专业 ID(major_id)改为 7。mysql> update student set major_id=7 where year(enroll_date)='2019';#删除mysql> delete * from student where name='钱七';#删除所有专业 ID(major_id)为 5 或 6 的学生记录。delete from student where major_id in (5,6);#删除 address 为空或 NULL 的学生(需先检查是否存在)。DELETE FROM student WHERE address IS NULL OR address = '';

单表查询

mysql> select * from student;+------------+--------+--------+------------+-------------+----------+-----------------------+-------------+----------------------+---------------------+---------------------+| student_id | name   | gender | birth_date | enroll_date | major_id | address               | phone       | email                | create_time         | update_time         |+------------+--------+--------+------------+-------------+----------+-----------------------+-------------+----------------------+---------------------+---------------------+|          1 | 张三   | 男     | 2000-05-15 | 2019-09-01  |        1 | 上海市浦东新区        | 13800138001 | zhangsan@example.com | 2025-07-01 15:21:32 | 2025-07-01 15:21:32 ||          2 | 李四   | 女     | 2001-03-22 | 2020-09-01  |        2 | 上海市浦东新区        | 13800138002 | lisi@example.com     | 2025-07-01 15:21:32 | 2025-07-01 15:21:32 ||          3 | 王五   | 男     | 2000-11-10 | 2019-09-01  |        3 | 广州市天河区          | 13800138003 | wangwu@example.com   | 2025-07-01 15:21:32 | 2025-07-01 15:21:32 ||          4 | 赵六   | 女     | 2001-07-30 | 2020-09-01  |        5 | 深圳市南山区          | 13800138004 | zhaoliu@example.com  | 2025-07-01 15:21:32 | 2025-07-01 15:21:32 ||          5 | 钱七   | 男     | 2000-09-18 | 2019-09-01  |        6 | 成都市武侯区          | 13800138005 | qianqi@example.com   | 2025-07-01 15:21:32 | 2025-07-01 15:21:32 |+------------+--------+--------+------------+-------------+----------+-----------------------+-------------+----------------------+---------------------+---------------------+5 rows in set (0.00 sec)

去重查询

mysql> select distinct address from student;+-----------------------+| address               |+-----------------------+| 上海市浦东新区        || 广州市天河区          || 深圳市南山区          || 成都市武侯区          |+-----------------------+4 rows in set (0.00 sec)

去重 计数

mysql> select count(distinct address) from student;+-------------------------+| count(distinct address) |+-------------------------+|                       4 |+-------------------------+1 row in set (0.00 sec)

重新定义查询结果表中的列名称

#重新定义查询结果表中的列名称#通过AS定义的别名(包括列别名、表别名、子查询别名)•仅作用于当前查询语句,查询结束后别名即失效#创建视图时可为表或列定义持久化别名,后续查询可直接使用视图名mysql> select student_id as '位次',birth_date as '生日' from student as t;+--------+------------+| 位次   | 生日       |+--------+------------+|      1 | 2000-05-15 ||      2 | 2001-03-22 ||      3 | 2000-11-10 ||      4 | 2001-07-30 ||      5 | 2000-09-18 |+--------+------------+5 rows in set (0.00 sec)#as可省略 mysql> select student_id '位次',birth_date '生日' from student t;

聚合函数查询

mysql> desc major;+-------------+--------------+------+-----+---------+-------+| Field       | Type         | Null | Key | Default | Extra |+-------------+--------------+------+-----+---------+-------+| major_id    | int          | YES  |     | NULL    |       || major_name  | varchar(255) | YES  |     | NULL    |       || dept_id     | int          | YES  |     | NULL    |       || credits_req | int          | YES  |     | NULL    |       || description | varchar(255) | YES  |     | NULL    |       || create_time | datetime     | YES  |     | NULL    |       || update_time | datetime     | YES  |     | NULL    |       |+-------------+--------------+------+-----+---------+-------+7 rows in set (0.00 sec)

求和

mysql> select sum(credits_req) from major;+------------------+| sum(credits_req) |+------------------+|              925 |+------------------+1 row in set (0.00 sec)

求平均值

SELECT AVG(column_name) AS alias_name FROM table_name [WHERE condition];​mysql> select avg(credits_req) from major;+------------------+| avg(credits_req) |+------------------+|         154.1667 |+------------------+1 row in set (0.00 sec)​mysql> select avg(credits_req) as '平均值' from major;+-----------+| 平均值    |+-----------+|  154.1667 |+-----------+1 row in set (0.00 sec)​

最大值

mysql> select max(credits_req) from major;+------------------+| max(credits_req) |+------------------+|              165 |+------------------+1 row in set (0.00 sec)

最小值

mysql> select min(credits_req) from major;+------------------+| min(credits_req) |+------------------+|              145 |+------------------+1 row in set (0.00 sec)

mydumper完整备份

完全备份

mysqldump --all-databases -uroot > all.sqlmysqldump -A > all.sql[root@localhost ~]# mysqldump --all-databases -uroot -p > all.sqlEnter password: [root@localhost ~]# ls1.txt  视频  下载  all.sql               init.sh   mysql.bak.tar.gz公共   图片  音乐  anaconda-ks.cfg       ip.txt    reboot.sh模板   文档  桌面  initial-setup-ks.cfg  jilu.txt[root@localhost ~]# cat all.sql -- MySQL dump 10.13  Distrib 8.0.41, for Linux (x86_64)---- Host: localhost    Database: -- -------------------------------------------------------- Server version       8.0.41.....#备份的过程就是先删除在创建,创建的时候会上锁

恢复

#模拟删除mysql> drop database test;Query OK, 9 rows affected (0.05 sec)​mysql> show databases;+--------------------+| Database           |+--------------------+| information_schema || mysql              || performance_schema |+--------------------+3 rows in set (0.00 sec)#恢复[root@localhost ~]# mysql -uroot -p < all.sql Enter password: mysql> show databases;+--------------------+| Database           |+--------------------+| information_schema || mysql              || performance_schema || test               |+--------------------+4 rows in set (0.00 sec)

指定数据库的备份

[root@localhost ~]# mysqldump --databases test -uroot -p > test.sqlEnter password: [root@localhost ~]# ls公共  图片  音乐     anaconda-ks.cfg       ip.txt     #test.sql模板  文档  桌面     initial-setup-ks.cfg  jilu.txt视频  下载  all.sql  init.sh               reboot.sh#恢复测试mysql> drop database test;Query OK, 9 rows affected (0.04 sec)​mysql> show databases;+--------------------+| Database           |+--------------------+| information_schema || mysql              || performance_schema |+--------------------+3 rows in set (0.00 sec)[root@localhost ~]# mysql -uroot -p < test.sql Enter password: mysql> show databases;+--------------------+| Database           |+--------------------+| information_schema || mysql              || performance_schema || test               |+--------------------+4 rows in set (0.00 sec)#备份指定表[root@localhost ~]# mysqldump test class -p > test_class.sqlEnter password: [root@localhost ~]# ls公共  图片  音乐     anaconda-ks.cfg       ip.txt     test_class.sql模板  文档  桌面     initial-setup-ks.cfg  jilu.txt   test.sql视频  下载  all.sql  init.sh               reboot.sh#恢复 要指明所在表[root@localhost ~]# mysql -uroot -p test < test_class.sql Enter password: 

增量备份---二进制备份

修改配置文件

#先完整备份#屏蔽系统的 生成自己的二进制日志vim /etc/my.cnf  [mysqld]log-bin=mysql-binbinlog_format="statement"#或者[root@localhost mysql]# vim /etc/my.cnf.d/mysql-server.cnf [mysqld]datadir=/var/lib/mysqlsocket=/var/lib/mysql/mysql.socklog-error=/var/log/mysql/mysqld.logpid-file=/run/mysqld/mysqld.pidlog-bin=mysql-bin   1binlog_format="statement"   1

模拟情况

mysql> insert college value(4,'商学院')-> ;Query OK, 1 row affected (0.00 sec)​mysql> select * from college;+------------+--------------------+| college_id | name               |+------------+--------------------+|          1 | 计算机学院         ||          2 | 经济管理学院       ||          3 | 机械工程学院       ||          4 | 商学院             |+------------+--------------------+4 rows in set (0.00 sec)​mysql> delete from college where college_id=4-> ;Query OK, 1 row affected (0.00 sec)​

查看二进制文件

[root@localhost ~]# cd /var/lib/mysql[root@localhost mysql]# mysqlbinlog mysql-bin.000002# The proper term is pseudo_replica_mode, but we use this compatibility alias# to make the statement usable on server versions 8.0.24 and older./*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;DELIMITER /*!*/;# at 4.....#寻找备份位置[root@localhost mysql]# mysqlbinlog --start-position=3520 --stop-position=3630 mysql-bin.000002# The proper term is pseudo_replica_mode, but we use this compatibility alias# to make the statement usable on server versions 8.0.24 and older./*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;DELIMITER /*!*/;.....#恢复[root@localhost mysql]# mysqlbinlog --start-position=3520 --stop-position=3630 mysql-bin.000002 | mysql -uroot -pEnter password: #mysql> select * from college;+------------+--------------------+| college_id | name               |+------------+--------------------+|          1 | 计算机学院         ||          2 | 经济管理学院       ||          3 | 机械工程学院       ||          4 | 商学院             |+------------+--------------------+4 rows in set (0.00 sec)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/88197.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/88197.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ez_rust_writeup

一道简单的[[rust逆向]] #rust逆向 #位运算 题目信息 文件名&#xff1a;ezrust.exe 题目附件&#xff1a;https://wwfj.lanzoul.com/iczMR30k5j4h 密码:bueq 题目分析 1. 初步分析 这是一道Rust编写的逆向题目。通过IDA分析可以看到&#xff0c;这是一个典型的flag验证程序。 …

【QT】-隐式转换 explicit用法

通俗易懂的解释:隐式转换 vs 显式转换 什么是隐式转换? 隐式转换就是编译器偷偷帮你做的类型转换,你甚至都没意识到它发生了。 例子: cpp 运行 double x = 5; // 隐式:int → double(5 变成 5.0) int y = x * 2.5; // 隐式:double → int(截断小数部分) 构造函数的隐…

Django核心知识点详解:JSON、AJAX、Cookie、Session与用户认证

1. JSON数据格式详解1.1 什么是JSON&#xff1f;JSON&#xff08;JavaScript Object Notation&#xff09;是一种轻量级的数据交换格式&#xff0c;具有以下特点&#xff1a;独立于语言&#xff0c;几乎所有编程语言都支持易于人阅读和编写易于机器解析和生成基于文本&#xff…

[特殊字符] Python 实战 | 批量统计中文文档词频并导出 Excel

本文展示如何用 Python 脚本&#xff1a; 批量读取文件夹中的多篇中文文档&#xff1b; 用 jieba 分词并统计词频&#xff08;过滤停用词与单字符&#xff09;&#xff1b; 将各文档词频输出为对应 Excel 文件&#xff1b; 是文本分析、内容审查、报告编写中的实用技巧。 &…

共享打印机(详细操作+常见问题:需输入用户名密码、无法连接等)

文章目录一、设置打印机共享的准备工作二、Windows系统下打印机共享设置1. 启用主机打印机共享2. 客户端添加共享打印机三、我所遇到的问题及解决方法客户机遇到输入用户名、密码错误代码 0x0000011b一、错误代码 0x0000011b 的含义二、解决方法添加打印机没成功其他问题此次打…

在 Windows 系统上配置 [go-zero](https://go-zero.dev) 开发环境教程

&#x1f4bb; 在 Windows 系统上配置 go-zero 开发环境教程 本教程将详细介绍如何在 Windows 系统上配置 go-zero 微服务框架的开发环境&#xff0c;包括依赖安装、路径配置、常见问题等。 &#x1f9f1; 一、前置环境安装 1. 安装 Go 下载地址&#xff1a;https://go.dev/…

开源=白嫖?

国内有一个非常浓重的思想&#xff0c;开源&#xff0c;开源就是免费&#xff0c;就是白嫖&#xff0c;就是不花钱&#xff0c;白给。那么什么是开源&#xff1f;“源代码”是软件中大多数计算机用户从未见过的部分;它是计算机程序员可以操纵的代码&#xff0c;以改变一个软件(…

2048-控制台版本

2048控制台版 文章目录2048控制台版实现效果&#xff1a;在这里插入图片描述库函数使用&#xff1a;初始化变量功能函数实现&#xff1a;状态判断函数int Judge&#xff08;&#xff09;&#xff1b;数字生成函数 bool CtreateNumber&#xff08;&#xff09;打印游戏界面 void…

提取出Wallpaper Engine壁纸的mpkg类静态壁纸

github 地址 https://github.com/notscuffed/repkg先下载软件2853…26目录这样获取有的直接mp4格式&#xff0c;就不能用这方法准备好后 cmd 进入repkg目录 执行 repkg extract ./294...333/scene.pkg

AI健康小屋“15分钟服务圈”:如何重构社区健康生态?

AI健康小屋作为“15分钟服务圈”的核心载体&#xff0c;通过技术赋能与场景重构&#xff0c;正推动社区健康生态从被动治疗向主动预防、从单一服务向全周期管理转型。那我们应该如何重构社区健康生态呢&#xff1f;服务模式创新1.全时段覆盖AI健康小屋通过分时段服务满足不同群…

[netty5: WebSocketFrame]-源码分析

WebSocketFrame WebSocketFrame 是 Netty 中用于表示 WebSocket 消息帧的抽象基类&#xff0c;封装了帧的内容、分片标志和扩展位信息&#xff0c;供各类具体帧&#xff08;如文本、二进制、控制帧&#xff09;继承使用。 public abstract class WebSocketFrame extends Buffer…

【加解密与C】非对称加解密(三)ECC椭圆曲线

ECC椭圆曲线的基本概念椭圆曲线密码学&#xff08;Elliptic Curve Cryptography&#xff0c;ECC&#xff09;是一种基于椭圆曲线数学的公钥密码体制。与传统的RSA相比&#xff0c;ECC在相同安全级别下使用更短的密钥&#xff0c;计算效率更高&#xff0c;适用于资源受限的环境。…

力扣网编程150题:加油站(贪心解法)

一. 简介 前面一篇文章使用暴力解法来解决力扣网150 题目&#xff1a;加油站。文章如下&#xff1a; 力扣网编程150题&#xff1a;加油站&#xff08;暴力解法&#xff09;-CSDN博客 暴力解法就是遍历了所有元素作为起始点的可能&#xff0c;算法时间复杂度为 O(n*n)&#x…

windwos 设置redis长久密码不生效

1、设置长久密码redis.windows.conf 文件修改对应的设置密码2、启动时设置对应的加载配置文件

物联网(IoT)领域存在多种协议

物联网&#xff08;IoT&#xff09;领域存在多种协议&#xff0c;主要是因为不同的应用场景对通信的需求差异很大&#xff0c;包括实时性、带宽、功耗、设备兼容性、安全性等。以下从协议多样性的原因和你提到的具体协议&#xff08;如 dc3-driver-* 模块&#xff09;展开说明&…

二、encoders

文章目录一、batch_encoder (用于 BFV)1. 概述2. 数学原理3. 使用方法4. 代码示例二、ckks_encoder (用于 CKKS)在 1. bfv_basics.cpp 中&#xff0c;我们展示了如何使用BFV方案执行非常简单的计算。计算是在 plain_modulus 参数的模下执行的&#xff0c;并且 只使用了 BFV 明文…

数据一致性解决方案总结

数据一致性解决方案总结 我们在系统中&#xff0c;主要进行了数据冗余&#xff0c;那么就会带来数据一致性的问题。常见的数据一致性问题有&#xff1a;数据库主从同步延迟导致的读数据不一致&#xff1b;数据库主主之间数据的不一致&#xff1b;缓存和数据库之间的数据不一致。…

17.Spring Boot的Bean详解(新手版)

文章目录1. 什么是Bean&#xff1f;从零开始理解1.1 Bean的定义1.2 为什么需要Bean&#xff1f;1.3 Bean vs 普通对象的区别2. Spring容器&#xff1a;Bean的家2.1 什么是Spring容器&#xff1f;2.2 容器的工作流程3. Bean的声明方式详解3.1 使用Component及其专门化注解3.1.1 …

cherryStudio electron因为环境问题无法安装解决方法或打包失败解决方法

$env:ELECTRON_MIRROR"https://npmmirror.com/mirrors/electron/"; $env:ELECTRON_CUSTOM_DIR"{{ version }}"; yarn install1. 上面是关于electron安装失败的解决方法. 也可以通过到git上下面包,解压后,放到对应的目录下面,并把里面的build文件夹删除, b…

微服务架构中数据一致性保证机制深度解析

在微服务架构中&#xff0c;数据一致性是分布式系统设计的核心挑战。由于服务拆分后数据自治&#xff08;每个服务独立数据库&#xff09;&#xff0c;跨服务操作的一致性保障需突破传统单体事务的局限。本文从一致性模型、核心解决方案、技术实现及面试高频问题四个维度&#…