MySQL database basic operation-1#

Enter and close MySQL

# 在链接数据库之前需要启动MySQL服务
	net start mysql
# 通过命令行连接MySQL
	mysql -h localhost -u root -p -P 3306
	# -h 服务器地址
	# -u 登录的账户名
	# -p 账户密码(可以回车后输入)
	# -P (大写)端口号, MySQL默认端口号为3306
	# 本地运行只需要写成mysql -u root -p
SQL语句中的快捷键
    \G	格式化输出(文本式、竖立显示)
    \s	查看服务器端信息
    \c	结束命令输入操作
    \q	退出当前sql命令模式
    \h	查看帮助
# 退出MySQL
	exit; 或者 quit;
# 关闭MySQL服务
	net stop mysql

Database and table related operations

创建:
	# 数据库
	# 创建数据库指定字符集;
    	Create Database 数据库名称 Default Charset=utf8mb4;
    # 创建数据库,判断不存在,再创建;
    	Create Database If Not Exists 数据库名称;
    # 创建数据库,并指定字符集;
    	Create Database 数据库名称 character set 字符集;
    # 创建数据库,判断是否存在,并指定字符集;
    	Create Database If Not Exists 数据库名称 Character set 字符集;

	# 表
	# 创建表
    	Create Table 表名(列名1 数据类型1,列名2 数据类型2...列名n 数据类型n) Default Charset=utf8mb4;
    # 创建表 如果表不存在则创建,如果存在就不执行这条命令
		Create Table If Not Exists 表名(字段名1 类型, 字段名2 类型);
    # 复制表
    	Create Table 表名 Like 被复制的表名;

删除:
	# 数据库
	# 删除数据库;
	# 删库有风险,操作需谨慎
    	Drop Database 数据库名称;
    # 判断数据库存在,存在删除数据库
    	Drop Database If Exists 数据库名称;

	# 表
	# 删除表
    	Drop Table 表名;
    # 判断表存在,存在删除表
    	Drop Table If Exists 表名;
    
修改:
	# 数据库
	# 修改数据库的字符集;
    	Alter Database 数据库名称 Character Set 字符集名称;
	
	# 表
	# 修改表名
    	Alter Table 表名 Rename To 新的表名;
    # 修改表的字符集
    	Alter Table 表名 Character Set 字符集名称;
	# 添加一列
    	Alter Table 表名 Add 列名 数据类型;
    # 修改列名称 类型
    	Alter Table 表名 Change 列名 新列名 新数据类型
    # 修改列的类型
    	Alter Table 表名 Modify 列名 新数据类型
    # 删除列
    	Alter Table 表名 Drop 列名

查询:
	# 数据库
	# 查询所有数据库的名称;
		Show Dartabases;
	# 查询某个数据库的创建语句
		Show Create Database 数据库名称;	

	# 表
	# 查询某个数据库中所有表名称
		Show Tables;
	# 查询表的创建语句
		Show Create Table 表名;
	# 查看当前的编码
		Show Variables Like '%char%';
	查询表结构
		Desc 表名;

数据库的使用:
	# 查询当前正在使用的数据库名称;
		Select Database();
	# 使用数据库
		Use 数据库名称;

Data related operations

Additions and deletions

添加数据
    # 添加数据
    # 列名和值要一一对应
    # 如果表名后不定义列名,则默认给所有列添加值
    # 除了数字类型,其他类型需要使用引号(单双都可以)引起来
    Insert Into 表名 Values (1,2,...值n);
    Insert Into 表名(列名1,列名2,...列名n) Values (1,2,...值n);
    Insert Into 表名(字段1, 字段2, 字段3) values(a值1, a值2, a值3), (a值1, a值2, a值3);

删除数据:
    # 如果不加条件,则删除表中所有记录。
    # 删除数据
    	Delete From 表名[Where 条件];
    # 删除表,然后再创建一个一模一样的空表
    	Truncate Table 表名;
修改数据:
	# 不加任何条件,则会将表中所有记录全部修改
	Update 表名 Set 列名1 =1,列名2 =2,...[Where 条件]

check

# 查询语法
Select 字段列表 From 表名 Where 条件列表 Group By 分组字段 Having 分组之后的条件 Order By 排序 Limit 分页限定;

# 查询表中的记录
Select * From 表名;
# 多个字段的查询
Select 字段1,字段2... From 表名;
# 去除重复
Select Distinct 字段1,字段2... From 表名;
# 计算列
# 如果有null参与的运算,计算结果都为null
	解决:math + IFNULL(english,0)
Select 字段1,字段2,计算字段 From 表名
# 起别名
#可以使用空字符替代as
Select 字段1,字段2,计算字段 As 别名 From 表名

比较运算符:
    # <>在SQL中表示不等于,在MySQL中也可以使用!=,但是没有==
    # >、<、<=、>=、=、<>

	# 在一个范围之内,如:Between 100 And 200 相当于条件在100到200之间,包头又包尾
		Between...And
	# 集合表示多个值,使用逗号分隔
		In(集合)
	# 模糊查询
		Like'张%'
	# 占位符:
		# 单个任意字符
			# _
		# 多个任意字符
			# %
	# 查询某一系列为NULL值,注:不能写=NULL
		Is NULL

逻辑运算符
    # 与,SQL中建议使用前者,后者并不通用
    	And&&
    # 或
    	Or||
    # 非
    	Not!
条件查询
    Select 字段列表 From 表名 Where 条件列表
排序查询
    # ASC:		升序,不写排序方式默认升序
    # DESC:		降序
    Select 字段列表 From 表名 Order By 排序字段1 排序方式1,...
聚合函数
	# 计算个数
	# 一般选择非空的列:主键
		Count(字段):
	# 计算最大值
    	Max(字段):
    # 计算最小值
    	Min(字段)# 计算和
    	Sum(字段)# 计算平均值
    	Avg(字段):
    #聚合函数的计算,排除NULL值
    #	解决方案:
    #		1.选择不包含非空的列进行计算
    #		2.IFNULL函数
    Select 聚合函数(列名) from 表名
	#分组之后查询的字段:分组字段、聚合函数
	
WhereHaving的区别:
	# where在分组之前进行限定,如果不满足条件,则不参与分组。Having在分组之后进行限定,如果不满足结果,则不会被查询出来
	# where后不可以跟聚合函数,Having可以进行聚合函数的判断
分组查询
	Select [分组字段],聚合函数 From 表名 Group By 分组字段
分页查询
    # 开始索引 = (当前页码 - 1) * 每页显示的条数
    # limit分页是一个方言,limit只能在MySQL里面用
    Select * From 表名 Limit 开始的索引,每页查询的条数;

Guess you like

Origin blog.csdn.net/BrightZhuz/article/details/108410226