MySQL基础

数据库

用来存储数据的仓库,本质是个文件(结构化的文件)。
数据可以持久化存储或缓存。持久化存储在磁盘内。缓存在内存中
mysql操作步骤
1- 安装mysql
	去网站直接加载(具体安装步骤查看mysql安装)
2- cmd中安装mysql
	sudo apt-get install mysql-server
3- 登录数据库
	mysql -u root -p
SQL分类
DDL: Date Definition Language:数据定义语言,用户创建、修改、删除表结构
DML: Date Manipulation Language:数据操作语言,用于对数据表进行增删改的操作
DQL: Date Query Language:数据查询语言,用于负责数据表的查询工作
DCL: Date Contril Language:数据控制语言,用来定义访问权限和安全级别
DDL
1- 创建数据库
	create database user charset=utf8;;
2- 切换数据库
	use user;
3- 查看数据库信息
	select database();
4- 查看系统中所有数据库
	show databases;
5- 退出数据库
	exit
6- 查看所有表
	show tables
7- 创建表
	create table User(
		sname varchar(20) primary key,
		sage int,
		ssex varchar(20) not null,
		sbirthday datetime,
	);
8- 查看表结构
	desc User
9- 修改表名
	alter table User rename userinfo;
10- 修改字段类型
	alter table userinfo modify ssex varchar(10)
11- 替换字段
	alter table userinfo change ssex sgender varchar(10)
12- 新增字段
	alter table userinfo add ssore int after sages;
13- 删除字段
	alter table userinfo drop ssore.
14- 字段排行
数据库的数据类型
1- 数字类型
int					大小正负: 2147483648 
tinyint				大小正负:128
smallint			大小正负:32767						(3w)2^15
mediumint			大小正负:8388608					(百万)2^23
bigint				大小正负:9223372036854775808		(百亿亿)2^53
floalt				大小正负:
double				大小正负:
decimal				大小正负:

2- 时间类型
data
datatime
timetamp
time
year

3- 字符串类型
char				大小正负:255		(默认为1)
varchar				大小正负:255
blob/text			大小正负:65535
tinyblob/tinytext
mediumblob/mediumtext	(1千6百万)
longblog/longtext		(42亿)
enum
DML
1- 插入整条数据
	insert into stu(sname,sage,sgender,sbirthday) values('张三',20,'男',1990,1,1),('李四',20,'男','2000,1,1');
2- 插入部分数据
	insert into stu(sname) values('王五')
3- 更新数据
	update stu set sgender='female',sage=18 where sname='王五';
4- 删除数据
	delete from stu where sname='王五';
	drop table stu(删除表)
	drop database user(删除数据库)
5- 查看数据
	select * from stu
DQL
1- 条件查询
	between..and..	(两则都包含,左右都为闭区间) 
	and
	or
	in
	not in
	is
	is not
2- 模糊查询
	where子句中=表示精准查询
	like:与where配合使用进行模糊查询
	通配符:
		_:匹配任一个字符
		select * from user where name like "zhang___"
		%:匹配0-n个字符【n>=1】
		select * from user where name like "%wang%"
3- 起别名
	select name as username from user(并不改变原表)
	
4- 去重
	select distinct sex from user
5- 排序
	asc:升序
	desc:降序
	select * from user order by sex asc,age desc
聚合函数
聚合函数也数据DQL中
1- count()查总数
	select count(*) from stu where sage>=18;
2- sum()己算指定列的数值和
	select sum(sage) from stu;
3- max() / min()最大最小值
	slect max(sage) from stu;
4- avg()平均值
	select avg(sage) from stu
5- 分组
	group by
6- 分页
	limit
约束
    1- 主键约束(primary key)
    	1- 方式一:
    	create table stu1(
    		id int primary key,
    		name varchar(50),
    	);
    	2-方式二:
    	create table stu2(
    		id int,
    		name varchar(50),
    		primary key(id,name)
    	)
    	3- 方式三:
    	create table stu3(
    		id int,
    		name varchar, 
    	)
    	
    	alter table stu3 add constraint stu3_id primary key(id)
查询
1- 联合查询并去重
	select * from A union select * from B;
2- 联合查询不去重
	select * from A union all select * from B;
3- 连接查询	(两表相乘,返回结果)
	select * from A,B;
4- 去重连接查询(只显示两表id相同的字段)
	select stu1.name,class1.score,class1.courseid from stu1,class1 where student1.stuid=class.stuid;
5- 取别名
	select s.name,c.score,c.courseid from stu1 s,class1 c where s.id=c.id;
5- 内连接
	select s.name,c.score,c.courseid from stu1 s join class1 c on s.id=c.id;
6- 内连接后添加条件	(将查询出的数据添加条件score>90)
	select s.name,c.score,c.courseid from stu1 s,class c where s.id=c.id and score>90;
7- 左连接	(将左表所有字段显示,字段为空则显示null)
	select * from student s left join class c on s.id=c.id
备份与恢复
备份
1- 进入指定备份目录
2- 获取需要备份的数据库mydb1
3- 指定文件名mydb1.sql(在某某目录下某某文件)
4- 指定命令
	mysqldump -u root -p mydb1>/home/rock/Desktop/mydb1.sql

恢复
1- 进入mysql
	mysql-uroot-p
2- 创建数据库
	create database mysqldb1 charset=utf8;
3- 找到备份文件
	/home/rock/Desktop/mydb1.sql;
3- 指定恢复命令
	source /home/rock/Desktop/mydb1.sql;

note:

1- 修改密码:
set password for root@localhost=password('123456')
2- 在创建虚拟环境时。可在环境变量中新增WORKON_HOME变量名来定义环境变量安装默认路径。
  • 4
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值