MYSQL数据库笔记

笔记所用表的结构:

create table emp
(
    id          int              null comment '编号',
    workno      varchar(10)      null comment '工号',
    name        varchar(10)      null comment '姓名',
    gender      char             null comment '性别',
    age         tinyint unsigned null comment '年龄',
    idcard      char(18)         null comment '身份证号',
    workaddress varchar(50)      null comment '工作地址',
    entrydate   date             null comment '入职时间'
)
    comment '员工表';

DDL -表操作-修改

创建表:

create table +name (字段 字段类型, ····);//最后一个字段不要加逗号
例子:
create table itcast.tb_user
(
    id     int          comment '编号',
    name   varchar(50)  comment '姓名',
    age    int          comment '年龄',
    gender varchar(1)   comment '性别',
    xueli  varchar(10)  comment '学历'
) comment '用户表';

增加:

alter table 表名 add name1 类型(长度) comment '注释';
例子:alter table tb_user add xueli varchar(10) comment '学历';

修改数据类型:

alter table 表名 modify 字段名 新数据类型(长度);
alter table tb_user modify xueli int(10);//由varchar变为int

修改字段名和字段类型:

alter table 表名 change 旧字段名 新字段名 类型(长度)comment '注释';
alter table tb_user change xueli salary varchar(10) comment '工资';

删除:

alter table 表名 drop 字段名;
alter table tb_user drop salary;

修改表名:

alter table 表名 rename to 新表名;
alter table tb_user rename to tb;

删除表:

drop table 表名;

删除指定表并重新创建该表:

truncate table 表名;//只有数据被删除

查看表的结构:

desc 表名;//  更详细的方法:show create table 表名;

查看表内容:

select * from 表名;

数据库操作

查询有多少数据库:

show databases;     多少表:show tables;

创建数据库:

create database 名字;

使用数据库:

use 数据库名; 

查看当前的数据库:

selecte database();

删除数据库:

drop database 数据库名;

DML-数据库中表的数据记录进行操作

添加插入:

给指定的字段添加数据:

insert into 表名(字段1,字段2,、、) values(值1,值2、、);
insert into tb_user (id, name, age, gender) values (1,'林林',18,'女');

给全部的字段添加数据:

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

批量添加数据 :

insert into 表名(字段1,字段2,、、) values(值1,值2,、、);
insert into 表名 values (值1,值2,、、),(值1,值2,、、),(值1,值2,、、);

注意: 插入数据时,指定字段的顺序需要与值的顺序是一一对应的。

字符串和日期型数据应该包含在引号中。

插入数据的大小,应该在字段的规定范围内。

修改更新:

修改数据:

update 表名 set 字段名1 = 值1,字段名2 = 值2,.....where 条件;
update tb_user set id = 2, name = '桐桐', age = 17;

注意:修改语句的条件可以有,也可以没有,如果没有,则会修改整张表的所有数据(会跳出一条提示框,点击确认即可)

删除数据:

delete from 表名 where 条件;
delete from tb_user where id = 2;

注意:delete语句的条件可以有,也可以没有,如果没有,则会删除整张表的所有数据

delete语句不能删除某一个字段的值(可以使用update//将值改为null)

DQL-数据查询语言

语法:

select
      字段列表
from
      表名列表
where
        条件列表
group by
        分组字段列表
having
        分组后条件列表
order by
        排序字段列表
limit 
        分页参数

基本查询:

条件查询:(where)
聚合函数:(count、max、min、avg、sum)
分组查询:(group by)
排序查询:(order by)
分页查询:(limit)

1、查询多个字段:

select 字段1,字段2,字段3...from 表名;
select * from 表名;

2、设置别名:

select 字段1 as 别名,字段2 as 别名 from 表名;

3、去除重复记录:

select distinct 字段列表 from 表名;

例子:

DDL条件查询(select):

select 字段列表 from 表名 where 条件列表;

例子:

查询姓名为两个字的员工信息:

select * from emp where name like '__';

找出名字以T结尾的:

select * from emp where ename like '%T';

找出名字以K开头的:

select * from emp where ename like 'K%';

找出第二个字母是A的:

select * from emp where ename like '_A%';

找出第三个字母是R的:

select * from emp where ename like '__R%';

DQL-聚合函数:

语法:

select 聚合函数(字段列表) from 表名;

例子:

DQL-分组查询(group by):

语法:

select 字段列表 from 表名 [where 条件] group by 分组字段名 [having 分组后过滤条件];

Where与having区别:

执行时机不同:where是分组之前进行过滤,不满足where条件,不参与分组;而having是分组之后对结果进行过滤。

判断条件不同:where不能对聚合函数进行判断,而having可以。

例子:

注意:执行顺序:where > 聚合函数 > having。

分组之后,查询的字段一般为聚合函数和分组字段,查询其他字段无任何意义。

排序查询(order by)支持多字段排序:

select 字段列表 from 表名 order by 字段1 排序方式1,字段2 排序方式2;

1)排序方式:

asc :升序(默认值)//可以省略

desc:降序

注意:如果是多字段排序,当第一个字段值相同时,才会根据第二个字段进行排序。(例三)

分页查询(Limit):

select 字段列表 from 表名 limit 起始索引,查询记录数;

 例子:从第一页开始也可以直接(select * from emp limit 10;)

 第一页十条那第二页就从第十一条开始。

DQL语句练习:

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值