sql语句

1.DDL DML DQL DCL(用的比较少!!)

对数据库的操作:

create database 名称;
show databases;
show create database 数据库名称 (查看编码等信息)
drop database 数据库名称

对表的操作:

增加:

create table student(
stuId int primary key auto_increment,
stuName varchar(20) not null,
stuAge varcahr(20)
);

删除:

drop table 表名称;

show tables;显示制定的库中的所有的表

desc 表名称:显示表的结构

修改:
alter table student
后面可以接
drop 表中的某一列 删除表中的某一列
change 旧的列名称 新的列名称 修改表中的某一列的名称
modify 重新定义的某一列 重新定义某一列
rename to 新的表名称 重新定义表名称
add 列名 +属性 重新增加一列

对记录操作

insert into student(stuId,stuName,stuAge)values(null,'dahai','18');

delete from student where 条件

select * from student where 条件

update student set stuName='xiaobai' where stuId=2;

单表查询的操作:

简单的查询 select * from 表名称;

指定查询某一列: select 列名称,... from 表名称

聚合函数联合查询一起,通过函数操作以后然后查询出来

count() 查询多少列
sum() 求和
max()最大值
min()最小值
avg() 求平均值

排序:例如 select * from student order by age ;

        select * frome student order by age desc;

分组查询,

例如:查询每一种商品的总价大于30的商品,并显示总价

select product,sum(price) from orders group by products having sum(price)>30;

解析:按照商品进行分组,然后把这个商品的总价格大于30的商品和和这个总价格查询出来。

注意:where和having的区别:

1.在sql语句中的where后面是不容许添加聚合函数的,添加上去就会报错,所以就用having来
解决问题,可以使用having来过滤,所以在sql语句中,如果分组以后,还需要一些条件来
可以使用having来表示条件,在having后面可以使用聚合函数,其他的和where都差不多!

2.where后面跟的条件having都是可以的,而且having还可以跟聚合函数,但是有一点要注意
having单独使用的时候,后面跟的条件在查询字段中必须全部包含
例如:select gender from student having age>30; 这样是错误的,必须是
前面的查询字段包含后面的条件字段,例如:select gender,age from student having age>30;
这样就可以了!!

数据库的手动备份:
输入以下命令: mysqldump -uroot -p test>e:a.sql
然后输入密码即可!!

这样就是把数据库中test库备份到本地的e盘中了。

恢复数据:
首先在数据库中新建一个数据库
然后输入以下命令:
mysql -uroot -p 导入库名 <磁盘中sql文件路径