mysql基本操作

简介

MySQL是最流行的关系型数据库管理(relational Database Management Sysmtem)简称RDBMS
作用:
	用来存储数据
结构:
	数据组成表,表组成库。

登录

doc窗口登录MySQL:
      mysql -uroot -ppassword
      root本地登录,password数据库密码
 退出MySQL:
 		quit;
 注意:
 	数据库的大小写不敏感,也就是大写小写都一样

数据库操作

显示所有的数据库:
		show databases;
创建数据库:
		create	database db_name charset=utf8;		charset解决中文乱码
删除数据库:
		drop database db_name;
使用某个数据库:
		use	db_name;
查看当前使用的数据库:
		select database();
查看表结构:
		desc table_name;
表操作
创建表:
		create table t_name(列名 数据类型 约束条件,列名2 ...)engine innodb default charset=utf8 auto_increment=1;
		t_name						表名
		engine innodb 				设置引擎为innodb
		default charset=utf8		设置编码格式
		auto_increment=1			设置自增的起始值,
		上面的都可以直接用默认值的	
数据类型

整型

类型名称大小用途
tinyint1字节极小整数值
smallint2字节 -32768 32767小整数值
mediumint3字节大整数值
int或integer4字节 -2147483648 2147483647大整数值
bigint8字节极大整数值
float4字节单精度 浮点数值
double8字节双精度 浮点数值
decimaldecimal(m,n) 无固定大小decimal(8,3) 小数

字符类型

类型名称大小用途
char0-255字节定长字符串 char(10)固定占用10字节
varchar0-65535字节变长字符串 varchar(20) 表示最大长度
tinyblob0-255字节不超过255个字符的二进制字符串
tinytext0-255字节短文本字符串
blob0-65535字节二进制形式的长文本数据
text0-65535字节长文本数据
mediumblob0-16777215字节二进制形式的中等长度文本数据
mediumtext0-16777215字节中等长度文本数据
longblob0-4294967295字节二进制形式的极大文本数据
longtext0-4294967295字节极大文本数据

日期和时间类型

类型名称格式用途
DATEYYYY-MM-DD日期
TIMEHH:MM:SS时间
DATETIMEYYYY-MM-DD HH:MM:SS混合日期和时间
TIMESTAMPYYYY-MM-DD HH:MM:SS混合日期和时间,时间戳
计算字符大小:
		x**(size*8byte)/2		
		size:字节数,byte:位数。1字节=8byte		因为正负数,所以除2
timestamp:
		格林威治时间,也就是只能表示从1970年到2038年。
表约束
对列中的数据做修饰:
		primary key 主键,表中每条记录的唯一标识,一个表中必须有一个,唯一且不为空,可以联合使用
		not null 	非空,也就是数据不能为空
		null		可空,默认是空
		unique		唯一,但可为空,可联合使用
列选项:
		auto_increment		自增,可与其他的联合使用
		default 			默认值
联合约束:
		也就是上面的约束条件,可以	联合起来使用,如primary key(name,age)把name和age作为主键。
		对于列的约束可以写在创建列的时候写,也可以单独写出来
如:
	create table user(id int auto_increment primary key,
		name varchar(20));
也可以:
	create table user(id int auto_increment,
	name varchar(20),
	primary key(id));	 		
	
表选项
engine					引擎选择,一般是innodb
default charset=utf8	 设置表的字符集
auto_increment=1			设置自增的起始值
联合约束
就是表约束中数据修饰:
			primary key(id,name)			以id和name做为主键
			unique(id,name)					是id,name是唯一的
insert 插入数据
insert into table_name(表属性1,2,3...) values(1,2,3...);
注意分号,每个sql语句后面都有分号
select 查询数据
select * from table_name;
*代表所有值,也可以单独写值,但必须是表中的列名
多个列名用逗号(,)隔开
可视化工具navicat
对数据库进行操作的软件。
列操作
算数运算:
		+ - * /				对列的数据进行运算
列拼接:
		concat(col_name,'值')
列别名:
		select name as 别名 from table_name;
		as可省略
列去重:
		select distinct age			distinct(独特的)

where子句

作用:
	对数据进行筛选
语法:
	where 表达式
例:
	select * from table_name where age>20;
	查找年龄大于二十的人的信息
	
表达式:
	比较运算符:
			= != > < >= <= <>(不等于,等同!=)
	逻辑运算符:
			and or
	范围:
		in ,not in,between a and b (a<=num<=b,包括a和b)
对于以上的,都可以联合使用,只要符合我们的逻辑,也就是逻辑不出错误,都可以。
空值判断
is null 			空值
is not null			不是空值
例:	
	select * from table_name where name is null;
	查找table_name中名字为空的。
模糊查询
%			匹配0个或多个字符,相当于正则中的*
_			一个字符
例:
	select * from table_name where name like '%a%;
	查询名字中含有a字符的
like:
	模糊查询,(像)
关于上面两个的用法,可以随意组合。
分页查询
limit 起始位置,读取的个数(number)
注意下标是从零开始的,也就是如果从2开始,需要写		limit 1,number;
分页查询从本质上理解:
			就是从起始位置开始,读取number条数据
排序
order by 属性 排序方式
asc    升序(默认)
desc   降序
例:
		order by name asc;
		通过名字升序排列
聚合函数:组函数
max()		最大值
min()		最小值
sum()		求和
avg()		求平均数
count()		总数

bug问题:
	select max(age),name from table_name;
	结果:
		最大年龄和表中第一行的名字
		逻辑扭曲
分组统计:group by
分组的意思是:
		把满足某一条件的数据分到同一组,也就是学生分组、员工分组等等。
用法:
	group by 分组的依据
例:	
	select count(id) from table_name group by age;
	统计每个年龄断的个数
分组限制:having子句
作用:
	限制分组,也就是对分组的筛选
用法:
	group by 分组的依据 having 分组的条件限制
	
where与having的区别:
		where对总表进行筛选,放在前面
		having对分组进行筛选,放在后面
		如果有一个需求,where和having都可以实现的话,where效率更高
		
例:
	select count(id) from table_name group by age having id>3;
	对id大于三的人进行年龄分类,统计个数
case子句
作用:
	对查询的列进行分类
用法:
	case
		when 条件 then 类1
		when 条件 then 类2
		else
			类3
	end as 总类

例:
	select case
			when age<10 then '青少年'
			when age<50 then '中年'
			else
				'老年'
			end as '年龄段',name
	from table_name;
子查询
组成:
	一个查询语句的结构可以是另一个查询语句的条件
两个表,employee(员工表),department(部门表)
查询部门为人事部的员工的信息
select * from employee where depart_id in(select id from where name='人事部');
其他函数
length()			获取字符的长度
lcase()				小写
ucase()				大写
trim()				去除前后的空格
now()				获取当前的日期和时间
curdate()			当前日期
curtime()			当前时间
date_format(now(),'%Y/%m/%d %H:%i:%s')		日期格式化
datebase()			数据库名称
user()				当前用户名
version()			当前服务器版本
得同sql语句联合使用
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
该资源内项目源码是个人的课程设计、毕业设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 该资源内项目源码是个人的课程设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值