mysql数据库的常用语句

对数据库操作
创建数据库

1.使用用默认的数据库与校对
			create database 数据库名;
2.指定数据库字符
			create database 数据库名 character set utf8
3.查看当前数据库服务器下的所有数据库
			show databases;
4.查看创建数据库的语句
			show create database 数据库名;
5.删除数据库
			drop database 数据库名;
6.切换数据库
			USE 数据库名;
7.查看当前所使用的数据库
			select database();

***对数据库表结构操作

1.int  整形
2.char  字符串
3.varchar         字符串
4.timestamp       yyyy-MM:dd hh:mm:ss

约束

1.主键约束
		primary key     primary key(id);
2.唯一约束
		unique
3.非空约束
		not null
4.默认值约束
		default 想要默认的值
5.自动增涨
		auto_increment

对表操作
创建表

1.create table(
字段一  类型,
字段二 类型,
....
)character set utf8;

查看表

1.查看表结构

desc 表名;

2.查看当前数据库下的所有表

show tables;	

3.查看表的字符编码集,也就是表的创建语句

	show create table 表名;

修改表(基本不用)

1.添加列操作

alter table 表名 add 列名 类型;

2.修改列的类型

	alter table 表名 modify 列名 类型;

3.删除列

alter table 表名 drop 列明;

4.修改列名称

alter table 表名 change 旧列名 新列明 类型;

删除表(基本不用)

1`.drop table 表名;`
2.truncate table 表名;
区别:前者有条件,自增主键补初始化
		   后者不可回退,速度快,相当于重新建立了空表(初始化表)

对数据库单表进行操作
insert 插入操作

1.插入所有列值

	insert into 表名(列名1,列名2...)values(列值1,列值2....);

2.插入部分列值

	insert into 表名(列名1,列名3...)values(列值1,列值3....);

3.不指定列名

insert into 表名 values(列值1,列值2...);

update更新操作

1.update语句修改表中数据

update 表名称 set 列名称=新值 where 列名称=某值;

delete删除操作

1.删除某行数据

delete from 表名 where 列名称=值;

2.删除所有行

delete from 表名;
	delete  * from 表名;

3.删除表中的数据

truncate table 表名;
	```
		关于delete 与truncate的区别	
		```					
			delete是一行一行删除   truncate是将表结构销毁,在重新创建表结构.
			如果数据比较多,truncate的性能高。					
			delete是受事务控制. 可以回滚数据.
			truncate是不受事务控制. 不能回滚.
			

select基本查询

1.查询所有的列(所有数据)

	select * from 表名称

2.查询指定列

	select 字段1,字段2,...(列名称) from 表名;
		

3.去掉重复记录

	select distinct 字段 from 表名;

4.between…and

	相当于>= and <=
	between 30 and 40;
	

5. in

select* from 表名 where price in(65,76,80);

6.模糊查询

通配符使用
	查询出商品的名称中包含java的商品信息。
		select*from  表名  where 列名   like "%java%";
	查询出书名是两个字的商品信息
		select*from  表名  where 列名   like  "__";

7.null 值操作

	is null			判断为空
	is not null 	判断不为空	

order by 排序

1.select 列名 from 表名称 where 条件  order by  列名 (默认是升序)
		asc   升序
		desc  降序

聚合函数ifnull
 1.count:统计指定列不为NULL的记录行数;

 select count(*)from 表名 where  条件语句;

 2.sum:计算指定列的数值和,如果指定列类型不是数值类型,那么计算结果为0;

	 select sum (列名 或者列之间的运算) from 表名称 where 条件语句;

 3.max:计算指定列的最大值,如果指定列是字符串类型,那么使用字符串排序运算;

select max(列名)  from 表名称 where 条件语句;

 4.min:计算指定列的最小值,如果指定列是字符串类型,那么使用字符串排序运算;

select min (列名)  from  表名称 where 条件语句;

 5.avg:计算指定列的平均值,如果指定列类型不是数值类型,那么计算结果为0;

 select avg (列名)  from 表名称;

分组操作

1.group by   语句用于结合合计函数,根据一个或多个列对结果集进行分组。
2.	select  (展示)                  				
		id,name,sum(pnum)     				
	from    (来自哪里)                  				
		products 表名   
	where	(分组前的条件)
		id<9                              
	group by(分组)
		category
	having(分组后的条件)
		order by (排序)
		sum(pnum) desc(依据pnum和的降序排列)
	limit 2   分页或者 
		(或者)limit 0,2
*****Having与where的区别*****
```
		1.having是在分组后对数据进行过滤.
			2.where是在分组前对数据进行过滤  
		3.having后面可以使用分组函数(统计函数)
			4.where后面不可以使用分组函数。


******多表设计******
	

1.一对一----一般不用   
	2.一对多----在进行数据设计时,如果存在一对多的关系,要求在多的一方加入一个外键,用来描述它来自于一方的主键
	3.多对多----多对多的关系进行设计时,为了描述关系,会产生一个中间的关系表,来描述关系


********外键约束********
		
	

1.概念模型在数据库中就对应数据表,那么表与表之间的关系也包括:一对一,一对多,多对多。而表与表之间关系是		通过外键来维护的。
    2.将两张表联系在一块 让表和表发生关系
	
	3.外键约束特性如下:
			外键必须是另一表或自身表的主键的值;
			外键可以重复;
			外键可以为空;
			一张表中可以有多个外键。


******多表数据关联操作******


**交叉连接**

1.selectfrom A表名 cross join B表名;
select
from A表名,B表名;

2.实现原理时 笛卡尔积


--------------------------------------------------------------------------------------------------------
****内连接****

1.显式内连接
Select * from A表名 inner join B表名 on (连接条件[外键字段名=另一个表的主键字段])

2.隐式内连接语法
Select * from A表名,B表名 where 条件
select * from orders A ,customer B where A.customer_id=B.id;


--------------------------------------------------------------------------------------------------------
******外连接******

1.左外连接
Select * from A表名 left join B表名 on (A表名.外键字段=B表名.主键字段)
2.右外连接
Select * from A表名 right join B表名 on (连接条件)


******联合查询******

1.Select 字段 from A表名 where 条件
Union
Select 字段 from B表名 where 条件


		可以自动消除重复记录

子查询

1. Select * from A表名 where
                    列名 in (
 				       Select 列名 from 表名 where 条件
                     )

补充的函数

1.now()----新建一列now()---列里的额内容是此时时间
		select now()from 表名;
		
2.MD5()----加密
		给添加的密码加密
		insert into 表名 (列名,PASSWORD) values ('zhangsan' ,MD5('123') ) ;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值