mysql基本操作

158 阅读7分钟

在DOS系统Mysql的配置和基本操作

环境变量
			
我的电脑 -> 右击属性 -> 高级系统设置 -> 环境变量 -> 新建
																	  |
变量值:MySQL下的bin目录路径 <-变量名:PATH   
		DOS系统下清屏的命令:cls
		mysql -h localhost -u root -p -b
		
		mysql 数据库
		-h	服务器(本地、指定服务器IP的)[本地localhost可以省略]
		-u	用户名(我们用的是root用户:超级管理员)
		-p	用户密码(不需要再它后面写密码,密码是回车之后写的)
		-b	蜂鸣器(当命令敲错了,报错时提示的声音)
		
	7.进入MySQL数据库以后的命令
		
		注意:
			1> 每一行命令结束了以后,请使用 ; 或 \g 来结束,否则命令可以一直写下去
			2> 在MySQL的命令中,如果一行命令没有敲完,就回车了,它会继续执行下去,前提是必须是一条完整的命令
			3> 退出敲错的命令、或不想继续执行下去的命令时,用\c
			4> 我们要想让数据竖起来显示,在命令后用\G,有时候一行盛不下了会乱,
			   \G可以解决这个问题
			5> \s 可以显示当前服务器的配置
			6> help 查看所有可以使用的快捷命令
			7> 如果在命令行中遇到了单引号,则MySQL认为你要输入一段字符串,所以,它是
			   必须使用结束的单引号,可以跳出字符串输入状态;
		
	8. 退出数据库服务器
		\q
		exit
		quit
	```
##基础命令
create database 数据库名;//创建数据库

注意:
1.如果数据库已存在,不能创建同名的数据库
2.创建命令和数据库名都不区分大小写
if not exists 如果数据库已存在,加上前面的关键字可以避免报错

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

show databases;//查看已创建的数据库

use 数据库名;//使用一个数据库

select database();//查看当前我们所使用的数据库

show create database 数据库名;//查看建库语句

注意:通过该命令,我们可以看到所建数据库的建库语句、编码类型;
			1.MySQL数据库中命令不区分大小写。
			2.数据库的名字也是不区分大小写的。
			2.每创建一个数据库,就会在data目录下创建一个以此数据库名称命名的文件夹。
			3.在Windows下,数据库名称也是不区分大小写的,但在Linux下,数据库名称严格区分大小写。
		tee命令:可以将MySQL中的练习语句导出到外部的一个文件当中
		使用方法:tee E:\wamp\www\lamp171\lesson23_MySQL01\test.txt
		
		创建数据表
		create table 表名(
						字段名1 字段类型,
						字段名2 字段类型,
						字段名3 字段类型
		);
			注意:
				1.创建一个数据表时,它的每个字段之间用逗号","隔开;
				2.最后一个字段不用逗号",";
				3.创建完表以后,最后的括号后面使用分号结束
				4.建表时,表名后面的括号中写表的字段名(字段类型)
				5.
desc 表名;//查看表结构

show create table 表名;//查看建表语句

show tables;// 查看当前数据库存在的数据表

drop table 表名//删除数据表

添加数据
① insert into 表名 (字段1,字段2……) values (值1,值2……);
② insert into 表名 values (值1,值2……),(值1,值2……);
③ insert into 表名 (字段1,字段2……) values (值1,值2……),(值1,值2……);
④ insert into 表名 values (值1,值2...);
⑤ insert into 表名 set 字段1=1,字段2=2...;
注意:
1.值和字段名要一一对应,否则会报错
2.你写入的值一定要和数据类型相匹配
		
删除数据
delete from 表名 where 条件;
注意:删除数据的时候,也一定要加上where条件,否则会删除所有的数据

修改数据
update 表名 set 要修改的字段=修改后的值,要修改的字段=修改后的值 where 条件
注意:修改数据的时候,一定要加上where条件,否则会修改所有的数据

查找数据
select *(所有字段) from 表;
select 字段1,字段2.. from 表;

##数据库文件的导出

	1.在DOS命令行下导出数据库(带数据)
		mysqldump -u root -p 数据库名 > E:\wamp\www\lamp175\lamp175.sql

	2.在DOS命令行下导出数据表(带数据)
		mysqldump -u root -p 数据库名 数据表名 > E:\wamp\www\lamp175\lamp175_stu.sql
		
	3.在DOS命令行下导出数据库(不带数据)
		mysqldump -u root -p -d 数据库名 > E:\wamp\www\lamp175\lamp175.sql
		
	4.在DOS命令行下导出数据表(不带数据)
		mysqldump -u root -p -d 数据库名 数据表名 > E:\wamp\www\lamp175\lamp175_stu.sql

##数据库文件的导入

1.在DOS命令行下导入数据库文件
mysql -u root -p 数据库名 < E:\wamp\www\lamp175\lamp175.sql
		
2.在MySQL命令行下导入数据库文件(必须在指定的库当中)
source E:\wamp\www\lamp175\lesson24_MySQL02\lamp175.sql

##数据库密码的添加:

1.在DOS命令行下
mysqladmin -u root -p password 新密码
注意:新密码处不要加双引号、分号,否则可能出现问题
			
2.在MySQL命令行下
set password for 'root'@'localhost' = password('新密码');
			

##密码改错的找回方法:

1.先关闭数据库服务(任务栏右击,打开任务管理器,找到mysqld.exe)
	
2.打开一个DOS命令框,将路径跳转到 E:\wamp\bin\mysql\mysql5.7.9\bin 目录下
	
3.输入命令 mysqld --skip-grant-tables ,光标会一直在下方闪烁
	
4.再打开一个DOS命令框,输入 mysql 直接以root权限进入数据库服务系统
	
5.进入mysql库,查看user表,再修改root用户的 authentication_string 的值
	
6.update user set authentication_string=password('123456') where User='root';
	
7.flush privileges; 修改完成之后,使用该命令刷新几次
	
8.重启mysql服务,进入DOS命令框,登陆修改之后的密码即可

##建表(MySQL当中的数据类型):

当我们存储不同的数据时,需要配合不同的类型来进行存储

1.php当中的数据类型:
布尔型、整型、浮点型、字符串型、数组型、对象型、资源型、空型
		
2.MySQL当中的数据类型:
整型、浮点型、定点型、字符串型、日期时间型、集合型、枚举型	
1> 整型
			
tinyint:	短整型(常用)
smallint:	小整型
mediumint: 中整型
int:		整型(常用)
bigint:	长整型
			
这些数据类型,其实都是存储整数的,只是占用长度不同,存储范围不同
			
注意:
1.在定义整型数据时,不需要指定长度,它会采用默认的长度来存储
2.如果要是定义长度,该长度是为后续的一个约束条件准备的
3.在插入整数类型的值的时候,注意不要越界,否则会报错
4.我们使用整数类型时,选用合适的存储范围即可
				
2>浮点型:
			
float(M,D):	单精度
double(M,D):	双精度
decimal(M,D):	定点数
			
3.14	3.1415926
使用浮点型数据的时候,肯定会指定一下精度和标度
			
注意:
1.单精度、双精度唯一的区别就是长度和存储范围
2.精度:整数位和小数位的长度和
3.标度:小数位的长度就是标度
4.当我们想要存储一些需要准确精确表达的数据时,不要使用单、双精度
5.我们推荐使用定点数进行存储
				
3> 字符串型:
			
char:		定长字符串(常用)
varchar:	变长字符串(常用)
tinytext:	短文本
text:		文本(常用)
mediumtext:中文本
longtext:	长文本
			
字符串型的最大的区别在于他们的存储范围
			
注意:
1.char定长字符串,可以不指定长度,默认长度为1;如果指定长度, 则该长度就为固定长度了!
2.varchar变长字符串,必须指定长度,存储到varchar中的数据,会根据数据的长度,自动调整存储范围,但是不能越界!
3.超出长度的,会报错
4.charvarchar除了上述的区别外,就是存储范围的不同了
5.当我们存储内容比较长的长文本时,例如小说、文章等内容,可以使用text长文本格式进行存储!
 
4> 日期时间型:
这个日期时间型,我们了解一下即可,存储时间我们推荐使用整型,因为时间戳就是一个整型值
			
5> 枚举型:
			
多选一
enum("dabolang","xiaobolang","meibolang","lang");
			
注意:
1.枚举类型的数据,必须使用双引号将每一个值括起来,每个值使用逗号隔开
2.枚举型的值,只能多选1
			
6> 集合型:
多选多
set("dabolang","xiaobolang","meibolang","lang");
注意:
1.集合型的数据和枚举型的数据定义方式一样
2.区别在于,枚举型只能多选一,集合型可以多选多!
				
3.字段的约束条件
1.给整型准备的约束条件
1> unsigned :无符号
注意:
1.当我们给整型的字段加上无符号余数条件之后,该字段的存储 范围会发生改变(具体范围参考word文档)
2.unsigned无符号修饰符必须加在我们所定义的字段类型之后
			
2> zerofill :前导零
注意:
1.整型当中所定义的长度,其实是给前导零准备的
2.当我们给某个整型的字段添加了前导零的约束条件之后,它自动 给我们添加了一个unsigned约束条件,说明,我们如果使用前导零 则不能添加负数值
					 
2.通用的约束条件
1> not null :不能为空
注意:
1.改关键字所修饰的字段不能为空
2.如果你非得让它为空,那么你只能通过给定默认值解决此问题
3.not null的顺序不限,但是不能放到unsigned之前
			
2> default :默认值
注意:
1.当我们给某个字段添加默认值时,该字段为何类型,则默认值也 是该类型
2.默认值一般放到最后  
3.因为高版本mysql默认开启严格模式,如果不传值并设置为非空的情况下,int类型设置默认值0,字符串类型设置EMPTY  STRING类型
			
3> auto_increment :自增
注意:
1.自增通常是给表中的ID准备的约束条件
2.每一个表都会有一个id字段
3.如果我们要给id字段添加自增关键字,则必须要给该字段一个索引修饰,该索引修饰可以使 primary key(主键索引)或者是 unique(唯一索引)
4.具有自增条件的字段,每次自增1
5.一个表中只能有一个自增字段