Mysql必知会数据库脚本及电子书:
- Mysql必知会官网
- Mysql必知会中的sql脚本,网盘链接,提取码2716
SQL语言分类
SQL语法分为四大类,分别为数据定义语言DDL(Data Definition Language),数据查询语言DQL(Data Query Language),数据操纵语言DML(Data Manipulation Language),数据控制语言DCL(Data Control Language)
1、数据定义语言DDL(Data Definition Language)
关键字:create、alter、drop、truncate
创建数据库:create database database_name
删除数据库:drop database database_name
创建表:
create table table_name(
id int(4) primary key ,
name varchar(20),
pwd int(3)
);
删除表:
drop table table_name #删除整个表的内容、结构、索引、属性
truncate table table_name #只删除表的内容数据
添加表中的列:alter table table_name add column_name data_type
删除表中的列: alter table table_name drop column_name
修改列的属性:alter table table_name modify column_name data_type
2、数据库查询语言(Data Query Language)
关键字:select 查询字段、from 表、where 条件、group by 分组字段 having 条件 order by 排序字段、limit 查询数量
执行顺序:from-where-group by-having-select-limit-order by
注意:gruop up通常和聚合函数一起使用,having要和gruop by一起使用,通常先使用gruop by进行分组,然后在使用having来限制输出结果,这样只有满足条件的查询结果才会显示。
where和having的区别:
wehre,在查询数据库前对查询数据库中的查询条件进行筛选(筛选数据库中的字段),而且where后不能写聚合函数
having,在查询数据库之后对返回的结果进行筛选(在查询数据库前要查询要筛选的字段),having后可以写聚合函数
where和having都可以使用的情况:
select name,mobile from sys_user where name="张三"
select name,mobile from sys_user having name="张三"
#原因name作为筛选条件出现在了查询字段中,所以使用having不会报错
只可以使用where不可以使用having的情况:
select name,mobile from sys_user where no='1'
select name,mobile from sys_user having no='1'
#no作为筛选条件在查询字段中没有,所以having报错
#having的原理是先select 然后从select出来的进行筛选。而where是先筛选在select。
3、数据操纵语言DML(Data Manipulation Language)
关键字:insert、update、delete
插入数据:
insert into t