mysql_语法_01

mysql学习

一、基础部分

	1.逻辑删除:重要数据不要直接删除,增加一个域isDelete 
		增加isDelete域   bit   0/1

	2.登录mysql -u root -p 

	3.命令行模式:
		*select version(); 查看版本
		*select date();	查看时间
		*数据库的库操作:
			*create database demo charset = utf8;  添加数据库
			*show databases;	显示数据库
			*drop database demo; 删除数据库
			*use demo; 	切换数据库
			*select database();	查看当前使用的是哪个库
		*数据库的表操作
			*show tables 查看表
			*create table students(
			id int auto_increment primary key not null,
			name varchar(10) not null,
			gender bit default 1,
			birthday datetime
			)						创建表--必须记住!!!
			*desc students; 查看表结构
			*alter table students add|drop|change isDelete bit default 1;  修改表结构,不建议经常使用
			*drop table students;	删除表
			*show create table students 查看创建表语句
		*数据库的数据操作
			*insert into students values(1,'haha',1,'1990-10-02') 全部插入
			*insert into students(gender,name) values(0,'小龙女') 部分插入
			*insert into students(name) values('小龙女'),('杨过'),('郭襄') 部分多条插入
			*select * from students;
			*update students set name = '大龙女' where name = '小龙女'; 修改
			*delete from students where name='大龙女';删除  不要做物理删除,用isDelete 逻辑删除
		*备份与恢复
			*mysqldump -u root -p >~/Desktop/备份备份.sql
			*mysql -u root -p <~/Desktop/备份备份.sql
二、查询
		1.比较运算: (>= > < <= !=) select from students where id>=/<=/!=/>/<3;
		2.逻辑运算: (and or not)   select * from students where id>=3 and gender=1  
		3.模糊查询: (like % _ )   select * from students where name like 'lz_';  _匹配任意一个字符
		4.范围、判空:	(in,between and) select * from students where id in (1,5select * from students where id between 1 and 4;
		5.分组	:(group by )	select gender as 性别,count(*) from students group by gender;
			* select * from students group by name having id=1; 这里注意having和where的区别。having根group
		6.排序:	(order by 列名 asc/desc) select * from students order by gender asc,name asc 默认正序(asc),当第一个排序一样时候,第二个按照顺序进行排列。
		7.聚合: count() max() min() avg() sum() 这五个函数。
		8.分页:(limit start num) select * from students limit (n-1)*m m (n为页数,m为每页显示的数量)
		9.编写的顺序:
			*select * from students where ...
			group by ... having...
			order by ... 
			limit start nums
		10.去重:	select distinct * from students;
三、高级
		1.关系:先确定关系,在再关系的基础上建立外键。
			*foreign key(stuid)	references students(id)
			*create table scores(id int auto_increment primary key not null,
				score decimal(4,1),
				stuid int,
				subid int,
				foreign key(stuid) references students(id),
				foreign key(subid) references subject(id));														
		2.外键的级联操作:(意义不大,了解概念就行)
			*restrict 抛异常
			*cascade 	
			*set null
			*no action
			*这些操作都不好,如果该表被其他表引用的话,做逻辑删除isDelete = 1
		3.连接查询(这个很重要!!!):
			*select students.name,subject.name,score from scores 
				inner join students on scores.stuid = students.id 
				inner join subject on scores.subid = subject.id;
			当结果来源于多张表的时候需要考虑连接查询。不可忽略join 和 on
			left join,right join 和inner join 的区别:
			INNER JOIN: 两个表中都有数据,才能够显示出来
			LEFT JOIN: 即使右表中没有匹配,也从左表返回所有的行
			RIGHT JOIN: 即使左表中没有匹配,也从右表返回所有的行
			FULL JOIN: 只要其中一个表中存在匹配,就返回行
			
四、总结:
		这句话诠释了很多东西。
		select * from students inner join scores on students.id = scores.stuid where gender=1 group by gender order by gender asc
		未完。
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
	

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值