创建数据库:
create database 数据库名;
create database if not exists 数据库名;(若不存在,则创建)
查看看数据库信息:
show create database 数据库名
修改数据库编码格式:
alter database 数据库名 default character set gbk(编码格式);
删除数据库:
drop database 数据库名;
drop database if exists 数据库名 ;(如果存在,则删除)
使用数据库:use 数据库名;
查询该库中的表:show tables;
创建表:
create table 表名(
字段名称 字段类型,...);
查询表的结构:
desc 表名;
修改新的表名:
later table 表名 rename to 新表名
删除表:
drop table 表名
drop table if exists 表名(若存在,则删除)
修改表:
给表新增一列:
alter table 表名 add 字段名 类型;
修改表的数据类型:
alter table 表名 modify 字段名 修改后的类型
修改表的名称:
alter table 表名 change 当前字段名 新字段名 类型
数据库的增删改查(DML,DQL)
--注释符号
查询表的结构
DML语句:操作语句
插入数据:
insert into 表名 values(值1,值2...)
插入部分字段:
insert into 表名(字段,...)values(值1...)
注:字段顺序必须要对应值
删除表的记录:
delete from 表名 条件(where)
删除全表数据:
delete from 表名:删除全表数据
注:不会影响自增长的主键,(删除全表的数据,不会清除自增长主键)
truncate table 表名:删除表以及表中数据,-创建一张一模一样的表
注:直接删除表,自增长主键会清除掉
修改表:
带条件修改单个字段:
update 表名 set 字段名 = 赋值 where 字段=值(需要带where,不然会批量处理)
修改多个字段:
update 表名 set 字段名 =赋值,字段名=赋值
where 字段=值
基本的查询语句:
查询全表数据:
select 全部字段(*) from 表名;
查询指定字段:
select 查询的字段 from 表名
条件查询:
基本条件查询:where语句
条件:使用表达式符号:<,>,<=,>=,<>(不等于)
并列关系:and(&&)
或的关系:or(||)
之间关系:between...and...
集合:in(字段)
条件:is null:xxx是null值 ,is not null(不是null)
将地址去重:
select distinct 字段名称:将该字段去查询
给某个字段起别名:
select 需要查询的字段名称 as(省略不写)'名称' from 表名
模糊条件查询:关键字:like
%:表示多个任意字符
_:代表一个字符
select 字段名称 from 表名 where 某个字段 like '模糊符号'
如果dos中出现中文乱码--查询所有包含'character'的变量
排序查询:
asc:升序查询
desc:降序排序
单个字段排序:
select 字段名称列表 from 表名 order by 排序的字段 排序规则
多个字段排序:
select 字段名称列表 from 表名 order by 排序的字段1 排序规则,排序的字段2 排序规则
注:优先按照第一个字段排序,如果第一个字段值相等,在按第二个字段规则排序
聚合函数:
count函数(统计)
select 函数名(字段)'别名' from 表名
注:一般都是里面用的非业务字段
max函数
min函数
avg函数(平均)
sum函数
分组查询:
group by 分组字段
select 分组的字段 from 表名 条件(where) group by 分组字段
筛选:having
注:是需要放在group by后面
having和group by的区别:
位置区别:
group by是在where条件后面使用,不能使用聚合函数,但是查询的时候可以
having是在group by后使用,可以使用聚合函数
分页查询:
关键字:limit
语法格式:select * from 表名 limit 起始行数((当前页码数-1)*每页显示条数),每页显示的条数
数据库约束
数据库约束:(创建表时操作)
约束:通过一些特定的关键字,保证数据的安全性,正确性和有效性!
默认约束 字段名称 类型 default'值'
当某个字段没有赋值的时候起作用,如果赋值了就按照实际值赋值即可
非空约束 not null
唯一约束 unique
删除唯一约束:alter table 表名 drop index 带有唯一约束的字段名称
主键约束 primary key
特点:非空且唯一
注:主要用在非业务字段上
删除主键:alter table 表名 drop primary key
添加主键:alter table 表名 modify 字段字段类型 primary key
自增长约束 auto_increment
外键约束 (外键声明在从表上) foreign key
让多个表之间产生一种关系,来保证数据的安全性和有效性
constraint(声明) 外键名称 foreign key
(员工表id)reference(关联) 主表的主键id
级联操作CASCADE
添加级联操作(级联修改和级联删除)
ALTER TABLE emploee ADD
CONSTRAINT dept_emp_fk FOREIGN KEY (dept_id)
REFERENCES dept(id) ON DELETE CASCADE ON UPDATE CASCADE ;
多表查询---内连接
隐式内连接
select
列名列表
from
表名列表
where
连接条件;
显示内连接
select
列名列表
from
表名1inner(可以省略) join
表名2
on
连接条件
多表查询之:外连接查询(左外/右外)
左外连接:将左表的数据全部查询并且还有查询交集部分(连接条件)(推荐方式)
select
字段列表
from
左表(表名1)
left outer join
右表(表名2)
on
连接条件
右外连接查询:将右边全部显示以及多个表的交集部分数据(连接条件)
select
字段列表
from
左表(表名1)
right outer join
右表(表名2)
on
连接条件
多表查询之:子查询: select 嵌套select语句
select
字段列表
from
表名1
where 表达式(<,<=,>=,>,=)
select
字段列表
from 表名...
三种情况:
单行单列
单行多列
多行多列
使用表达式<,>,<=,>=,=in(集合数据)
复杂嵌套:讲一个select语句的查询结果当做一个虚表进行二次查询