首页 > 数据库 >MySQL基础

MySQL基础

时间:2023-07-14 21:33:23浏览次数:59  
标签:-- MySQL 基础 mysql 字段 表名 table select

1.数据库登录

   mysql -uroot -p

   mysql -uroot -p mysql

   mysql -uroot -p -h 192.168.213.200

   备份

   mysqldump -uroot -p --all-dtabases > all_databasees_20210305.sql       //备份所有库

   mysqldump -uroot -p --databases mysql > mysql_20210305.sql            //备份mysql库

   mysqldump -uroot -p mysql user > mysql_user_20210305.sql              //备份mysql库的user表 

   还原:

   mysql -uroot -p < all_databases_20210305.sql                          //还原所有库

   mysql -uroot -p  mysql < mysql_20210305.sql                           //还原mysql库

   mysql -uroot -p mysql  < mysql_user_20210305.sql                      //还原mysql库的user表 

 

2.DDL(数据定义语言

   库操作:

   create database 数据库名 character set uft8;     --创建数据库

   use 数据库名;                                --进入、使用数据库

   drop database 数据库名;                      --删除数据库

   show databases;                              --查看所有数据库

   表操作:

   create table 表名(字段1 约束条件,字段2 约束条件,…);      --创建表

   create table 表名(字段1,字段2,字段3…) values (值1,值2,值3..)    --创建表

   rename table 表A  to 表B;              --修改表名为B

   alter table 表A to 表B;                  --修改表名为B

   drop table 表名;                        --删除表

   delete from 表名; truncate table 表名;  --删除表数据,清空表

   show create table 表名 \G;               --获取表结构

   字段操作:

   Desc 表名;   show columns from 表名;    --查看表结构,查看字段信息

   Alter table 表名 add 字段 数据类型;      --增加字段

   Alter table 表名 modify 字段 数据类型    --修改字段类型

   Alter table 表名 change 字段A 字段B 数据类型;    --修改字段名和约束条件

   Alter table 表名 drop 字段;              --删除一个字段

   备份表:

 (同步数据)create table 表A like 表B;        --复制表结构

    Insert into 表A select * from 表B;              --插入数据

   create table 表A select * from 表B where 1=2        --同步表结构(或create table 表A select * from 表B)

   create table 表A as (select * from 表B);          --同步表结构和表数据  

   创建临时表:关闭连接,临时表自动删除

   Create temporary table 表名  values(值1,…);        --创建临时表

 

 

3.DML(数据操作语言)

   Insert插入数据

   Insert into 表名 values(值);   insert into 表名 (字段) values (值);

   Update更新数据

   Update 表名 set 字段=值,字段=值 where 条件;

   Delete删除数据

   Delete from 表名 where 条件;

 

4.DQL(数据查询语言)

   Select * from 表名 where 条件;

   Where条件:

   =   !=    <>   >=    <=   >   <     等于、不等于、大于

   Between ..and ..   在什么范围           is (not) null     为空或非空

   and 与     or  或     not  非      in (‘’,’’,’’)   在之内

   %   通配符,模糊匹配(与like连用)      _   匹配一个字符,(与like连用)

   Like  模糊匹配

   字段控制查询:

   distinct 字段名   --去重             字段 as  别名   --字段命别名  

   字段1+字段2   --字段相加(都是数值型才可,新值为字段1+字段2)

   ifnull(age,o)     --对age字段判断,为空取0  

   limit 限制返回记录数    例子:select *,ifnull(age,0) from temp;    --判断,不为空

   limit 0,3 显示前三条(从0开始)    select * from aa limit 0,3   --查看前三条数据

   聚合函数

   count()   计数   max()  最大值  mix()  最小值  sum() 求和   avg()   平均值

   关键字:

   order by 字段1,字段2  --排序(默认asc升序desc降序)先按字段1后字段2排序

   group by 字段名    --按字段分组(单独使用,只显示字段第一条记录)

   group_concat(‘字段名’)  --查看每一组的内容(显示字段,一般都会在group by后跟上)

   例:select age,group_concat(age) from aa group by age  --查看分组后,某类所有的集合

   DQL书写顺序:select –from—where-group by—having—order by--limit

   DQL执行顺序:  from—where-group by—having—select—order by—limit

 

5.多表查询:(union/union all)

   合并结果的字段要一致,字段的数据类型也一样才能合并

   select * from a union (all) select * from b;     //union合并结果集去重,union all不去重

   select * from a,b;     //笛卡尔积,每张表每条数据都会交叉匹配一次

   select * from a (inner) join b on a.字段=b.字段;  //内连接,两张表都有,避免笛卡尔积

   select * from a left join b on a.字段=b.字段;     //左连接,左边全部,右边满足条件

   select * from a right join b on a.字段=b.字段;    //右连接,右边全部,左边满足条件 

   非等值连接,连接条件不是等式,是不等式

   select * from a natural join b;         //自然连接,类型一致的列作为条件        

 

6.子查询

   select * from a where 字段 in (select * from b);     //嵌套子查询in

   select * from (select * from a);                     //嵌套表名

   select * from a where 字段=(select 语句);            //where条件嵌套

   select * from a where (字段A,字段B) in (select A,B from b where 条件)  //多个条件相等

   select * from emp e,(select job,salary from emp where ename='huchao') r where e.job=r.job  and  e.salary=r.salary;     (字段1,字段2) in (select 字段1,字段2 from 表名)

 

7.常用函数

   if(values,t,f)    //条件查询,值为真,返回t,否则为t

   ifnull(值1,值2)   //若值1非空,返回1;否则返回值2

   case where then end  //判断语句

 

8.事务使用:只针对DML

   start transaction;    //开始事务

   begin/start transaction;   //开启事务

   SQL更改操作:

   commit;               //提交事务(提交后就写入到数据库)

   rollback       //回滚事务,所有操作还原

   commit         //提交事务 

   set改变msyq自动提交模式:

   set autocommit=0    //禁止自动提交

   set autocommit=1    //开启自动提交

标签:--,MySQL,基础,mysql,字段,表名,table,select
From: https://www.cnblogs.com/huchao12/p/17555027.html

相关文章

  • 汇编基础
    汇编语言的组成汇编指令(机器码的助记符)伪指令(由编译器执行)其他符号(由编译器识别)汇编语言的核心是汇编指令,它决定了汇编语言的特性存储器指令和数据在存储器中存放,也就是平时所说的内存磁盘不同于内存,磁盘中的数据或程序如果不读入内存,就无法被cpu使用指令和数据在......
  • Python基础day45
    SQL注入问题importpymysql#连接MySQL服务端conn=pymysql.connect(host='127.0.0.1',port=3306,user='root',password='123',database='db8_3',charset='utf8',autocommit=True#针对增......
  • mysql数据库3 表关系/多表查询等
    表关系(外键)#外键的前戏建立一张表:emp"""1.表不清晰,现在到底是员工表还是部门表2.字段需要重复的写,浪费资源3.兼容性很差,牵一发而动全身(这个问题是最不能容忍的)"""#以上问题该如何解决呢?我们的思路是,把一张表拆分成两张表拆成emp和depart部门表......
  • Mysql刪除binlog的方法
    参考文献:Mysql刪除binlog的方法(https://blog.csdn.net/weixin_42324463/article/details/126801856)在mysql的data目录下的binlog文件会随着时间推移越来越大。binlog文件不是直接rm就能解决的。即使rm删除了,但是mysql-bin.index档案中,还是有记录。正确步骤:1.linux进入mysqls......
  • 学科知识图谱学习平台项目 :技术栈Java、Neo4j、MySQL等超详细教学
    学科知识图谱学习平台项目:技术栈Java、Neo4j、MySQL等超详细教学0.效果展示1.安装教程安装JavaSDK11,下载前需要登录Oracle账号,下载链接,安装教程,测试是否能在命令行工具调用javajava--versionjava17.0.12021-10-19LTSJava(TM)SERuntimeEnvironment(build......
  • windows下用mysqldump导出数据库中文乱码的解决方案
    解决方案是从这篇文章得到的启发:http://www.pcxitongcheng.com/server/anz/2022-12-06/33622.html先去mysql里确认字符编码是utf8:showvariableslike'%char%'主要确认character_set_results。先创建好sql文件,比如d:\backup.sql然后备份的时候用--result-file=指定刚创建的文......
  • MySQL报错: Unknown prepared statement handler (stmt2) given to DEALLOCATE PREPAR
    上面的报错,是在MySQL里执行动态拼接SQL后报错的。--先定义两段SQLset@update_sql_fm=concat('updateads_gcl3e_patient_',@base_group_short_name,'_detail1t1jointemp_gcl3e_record_listtmpont1.report_info_id=tmp.report_info_idleftjoin(',@select_sql_fm,�......
  • 构建强大算力基础,奠定AI时代基石!
    7月6日,2023世界人工智能大会在上海拉开序幕。由中国电信主办的“算网一体融创未来”主题论坛也于当日在上海世博中心举行。上海市经济和信息化委员会副主任戎之勤、上海市金山区人民政府副区长葛钧、中国电信数字智能科技分公司副总经理何忠江、中国电信上海公司副总经理胡伟良、......
  • JavaWeb基础:安装tomcat和maven
    JavaWeb基础:安装tomcat和maventomcat闪退问题下载zip即可,无需配置,只需运行相关文件即可文档所在位置:D:\Environment\apache-tomcat-9.0.78\bin开启:startup.bat关闭:shutdown.batjava8不适用tamcat10及以上版本解决办法:https://blog.csdn.net/egegerhn/article/details/1260......
  • Linux 基础(一)
    Linux基础(一)理念一切皆文件硬件文件名显示器fb0鼠标mouse1键盘event0触摸屏event1摄像头video0打开摄像头:openvideo0​​打开摄像头(打开video0文件)拍照:readvideo0拍照(从video文件中读取数据)基本概念目录类似于windows中的......