Mysql--MySQL的基础操作

mysql的初次使用

安装及环境变量配置

初次使用

  1. 以管理员身份打开cmd
    在这里插入图片描述

  2. 启动MySQL服务
    输入命令 net start mysql80启动服务器,只有启动了服务器,数据库才能正常使用。
    在这里插入图片描述

//对版本号不同的MySQL需要的命令可能不同,可以在任务管理器查看自己的MySQL版本

  1. 进入MySQL
    输入命令 mysql -u root -p弹出提示后输入密码进入MySQL
    或者直接输入命令 mysql -u root -p进入MySQL,其中123为root密码,使用时以自己设置的密码为准
    在这里插入图片描述
    //安装MySQL时未设置密码的用户可通过 mysql -u root直接进入MySQL

  2. 修改密码
    ·处于MySQL交互界面的用户
    输入命令 set password ='123'设置或重置密码,其中123为所指定的新密码
    在这里插入图片描述
    ·处于CMD交互界面的用户
    输入命令 mysqladmin -u root -p password 123设置或重置密码,其中123为所指定的新密码
    这种方式下需要输入老密码确认修改
    在这里插入图片描述

  3. 退出MySQL交互界面
    退出MySQL交互有 exit quit /q这几种命令,在作用上没有什么区别,可以依据个人习惯使用,下面举例一种情况
    在这里插入图片描述

  4. 关闭MySQL服务*
    输入命令net stop MySQL80关闭MySQL服务,关闭服务后在进入MySQL服务需要重启服务,详见第一步
    在这里插入图片描述

mysql基础操作

·使用show variables like 'version'查看当前使用的MySQL的版本
在这里插入图片描述
·多行语句
在MySQL中以分号(;)作为语句结尾,所以一条语句可以分为多行输入,直到“ ; ”出现
如将上述版本查询多行输入,可以得到相同的效果
在这里插入图片描述

库的创建与管理

  • 创建数据库
	creat database 数据库名;

在这里插入图片描述

  • 显示所有的数据库
   show databases ;

在这里插入图片描述

  • 删除指定的库
   drop database 数据库名; 

在这里插入图片描述
为了避免没有指定的数据库,在执行删除操作会报错,可将命令优化为

	drop database if exists 数据库名;
  • 数据库的连接
    use 数据库名

在这里插入图片描述

  • 数据库的备份
   mysqldump -u 用户名 -p 数据库名 (表名) > 导出的文件地址

文件地址为绝对路径,下面的数据库恢复也是如此
其中只指定数据库名时,将备份整个数据库 , 当在数据库后接表名时,将只备份指定的表

  • 数据库的恢复
   mysqldump -u -u 用户名 -p 数据库名 < 导入的文件地址

当已经连接数据库时,可以使用下面的命令直接恢复到当前数据库

   	source 文件地址

表的创建与管理

- 数据表的基本概念
数据表是一种行与列数据的组合,也是数据库中最基本的组成单元,所有数据操作(增删查改)以及约束都要依赖于数据表而存在。而数据表可以理解为对显示或者业务抽象的结果。

使用表前需要先连接表所在的数据库通过use 数据库名命令连接指定数据库

  • 创建表
     creat table 表名 (
    	字段名1 字段数据类型,
    	字段名2 字段数据类型,
    	其他字段...
    )
    

在这里插入图片描述

  • 复制表

     	create table2
    	select * from1;--表1数据将会全部复制到表2中
    

    如果仅需复制表的字段可以使用命令:

    create table3
    like1; --表3将会拥有和表1相同的字段,但不会拥有具体的数据
    
  • 查看指定表的所有字段属性

    	desc 表名;
    

在这里插入图片描述

  • 删除表

    		drop table 表名;
    
  • 查看库内的所有表

    	show tables;
    
  • 修改表属性
    ·对表重命名

     	alter table 表名
    	rename 新表名;
    

    ·添加字段

    	alter table 表名
    	add 字段名 字段数据类型;
    

    由这种方式添加的字段默认添加到表末,如果需要指定字段的添加位置可以使用下面的命令:

     	alter table 表名
    	add 字段1 字段数据类型 after 字段2;--字段1将被添加到字段2后
    
     	alter table 表名
    	add 字段名 字段数据类型 first;--该字段将被添加到第一列
    

    ·删除字段

     	alter table 表名
    	drop 字段名 ;
    

    ·修改字段

     	alter table 表名
    	change 字段名 新字段名 字段数据类型;--可以用来重命名字段或更改字段属性
    
  • 临时表
    临时表的创建的普通的表创建类似,可以使用下面的命令可以创建临时表

    	create temporary table 表名 (
    		字段名1 字段数据类型,
    		字段名2 字段数据类型,
    		其他字段...
    	);
    

    临时表有如下特点:
    1.临时表无法使用show tables命令查看,但临时表可以进行一系列操作
    2.仅在当前会话可见,退出MySQL交互界面后,创建的临时表都会消失
    3.临时表也可以使用drop table 表名命令删除

数据的创建与管理

  • 向表中添加数据
    	insert into 表名 (1,2, ... ) values (1,2, ... );
    

每项值将分别对应每项列插入到表中,当存在列未指定时,该值为空(null)
如果向表中添加元素时,元素的每项值依照表的列名排列,可以不用指定列名: sql insert into 表名 values (值1,值2, ... );

  • 数据的更新

    	update 表名 set 字段=[,字段=] where 条件;
    
  • 从表中删除数据

       delete form 表名 where 删除条件;
    
  • 数据的基础查询

    	select 查询列表  from 表名;
    

    //查询列表可以是一个字段、常量、表达式、函数,也可以是多个
    // 查询结果是一个虚拟表
    // 当要查询表内的所有数据时可用select * from 表名
    模糊查询:

       select 查询列表 
        from 表名
        where 列名 like 条件 ;
    

    例如SELECT * FROM users WHERE userName LIKE '%三%'会将字段userName中含字符“三”的记录全部找出
    模糊查询中各个通配符的作用:

符号作用
%表示任意0个或多个字符。可匹配任意类型和长度的字符
_表示任意单个字符
[ ]表示括号内所列字符中的一个
[^ ]表示不在括号所列之内的单个字符

数据的进阶查询

  • 联合查询,使用union关键字将多个查询结果合并为一个,合并的是数据相同的行而不是列
    语法:

    	查询1
    	union (all)
    	查询2
    	union (all)
    	... ...
    

    同时对两张表进行查询,如果用表1union表2,查询结果中表1 不会新增列,而是表2的查询结果会添加到表1
    使用union进行联合查询,结果会去重复项
    使用union all 进行联合查询,结果会保留重复项

  • 连接查询
    内连接查询( inner join)
    语法:

    	 select 列名  
         from1  别名 inner  join2 别名
         on1.列名 =2.列名  
    

    组合两个表中的记录,返回关联字段相符的记录,也就是返回两个表的交集

    左(外)连接查询(left join)
    语法:

      	 select 列名  
    	 from1 别名 left  join2  别名
         on1.列名 =2.列名  
    

    左连接的全称是左外连接,是外连接中的一种。
    通过该查询,表1的记录将会全部表示出来,而表2只会显示符合搜索条件的记录。表1记录不足的地方均为空(NULL)

    右(外)连接查询(right join)
    语法:

      	 select 列名  
    	 from1 别名 right  join2  别名
         on1.列名 =2.列名  
    

    右连接的全称是右外连接,是外连接中的一种。
    与左连接相反,通过该查询,表2的记录将会全部表示出来,而表1只会显示符合搜索条件的记录。表1记录不足的地方均为空(NULL)

  • 排序
    语法:

    	查询语句
    	order by 排序列表 (desc||asc)
    

    1、 asc代表的是升序,可以省略; desc代表的是降序

    2、order by子句可以支持 单个字段、别名、表达式、函数、多个字段

    3、order by子句在查询语句的最后面

  • 使用正则表达式查询
    正则表达式使用regexp(regular expression)关键字进行查询
    语法:

    		select 列名 from 表名 where 列名 regexp 表达式
    

    示例:
    查找name字段中含有字符“a”的所有数据:select name from student where name regexp 'a';
    正则表达式与模糊查询类似,下面是regexp操作符中部分符号的作用

符号描述
^查询以匹配字符串开头的所有数据(如查询以abc开头所有数据‘^abc’)
$查询以匹配字符串结尾的所有数据(如查询以ab结尾所有数据‘ab$’)
*匹配前面的子表达式零次或多次。(如,zo* 能匹配 “z” 以及 “zoo”)
+匹配前面的子表达式一次或多次。(如,‘zo+’ 能匹配 “zo” 以及 “zoo”,但不能匹配 “z”)

主键与索引

索引(index)用来来快速地寻找那些具有特定值的记录,通过索引可以减少MySQL执行查询时的速度,可以有多个索引,索引类似于书的目录
主键(primary key)主键是索引的一种,主要用来区分,所以只能有一个主键

  • 添加主键
    	alter table 表名
    	add primary key(列名);
    
    上面这种情况适用于表已经被创建。创建新表时也可以直接添加主键:
    	create table 表名(
    		字段名 字段数据类型 primary key,
    		其他字段...
    	);
    
    也可以使用这种方式在新建表时添加主键:
    	create table 表名(
    		字段名0 字段数据类型 ,
    		primary key(字段名0)
    		其他字段...
    	);
    
  • 联合主键
    当仅有一个主键不能满足需求时,则需要将多个字段联合起来一起作为主键,这就是联合主键
    添加联合主键的语法基本与添加单一主键类似
    	 alter table 表名 
    	 ADD PRIMARY KEY(列名1,列名2);
    
    或者在建表时添加联合主键:
    	create table 表名(
    		字段名0 字段数据类型 ,
    		字段名1 字段数据类型 ,
    		primary key(字段名0 ,字段名1)
    		其他字段...
    	);
    
  • 删除主键
    	alter table 表名
    	drop primary key;--删除主键或联合主键
    
  • 添加索引
    	alter table 表名
    	add index(列名)
    
  • 查看索引
    	show index from 表名;
    
  • 删除索引
    	create table 表名
    	drop index 列名;
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值