mysql基本操作忘备录

基础笔记

数据库

概念:数据库:db,database。存储数据的仓库,以文件形式存储。
DBMS:数据库管理系统
常见数据库:MASYQL,ORACLE,SQL Server,DB 2,SQLlite
数据库分类:
关系型:
MASYQL,ORACLE
优点:通用的SQL语句,易于理解
缺点:由于表结构复杂,性能比较差
非关系型:
MongDB,Redis
优点:读写性能好,易于扩展
缺点:学习成本高

结构:

类 表
属性 字段
对象 记录

语法:

1,一条执行语句可以分为单行或者多行书写
2,语句用分号结尾
3,不区分大小写,但是关键字建议用大写
4,注释:
–注释内容
#注释内容
多行:/内容/

SQL语言
SQL:结构化查询语言
分类:
1,DDL:数据定义语言

对库表进行定义,删除
create,drop,

2,DML:数据操作语言

对记录进行增删改
insert,update,delete,

3,DQL:数据查询语言

对记录进行查询
select,where,in,order by,desc,asc,like,having......

4,DCL:数据访问语言

对数据库设置安全级别和访问权限
revoke

CRUD:create,retrieve,update,delete


库的操作:
数据库的创建
直接创建:create database库名;

    创建同时设置编码:
    create database 库名 character set 编码;
    先判断数据库是否已经存在,不存在才创建:
    crate database if not exists 库名;

数据库的创建

查看管理系统中有哪些数据库
show databases;
show carate database 库名;

数据库的删除

直接删除:drop database 库名;
先判断数据库是否存在,存在才删
drop database if exists 库名;

数据库的修改

修改数据库的编码格式:
alter database库名 character set 编码;

其他操作

明确要使用的数据库:
use 库名;

表的操作:
类型:

	    int
	    double
	    varchar
	    date:yyyy-MM-dd
	    datatime:yyyy-MM-dd HH-mm-ss
	    timestamp:时间戳,yyyy-MM-dd HH-mm-ss,如果timestamp没有设置,
那么这个值就是添加此记录的时间

创建表

create table 表名(字段名1 类型 [约束],字段名2 类型 [约束],...);

删除表:

直接删除:drop table 表名;
先判断数据库是否存在,存在才删
drop table if exists 表名;

查看表

直接查看当前库所有表
show tables;
查看指定表结构:
desc 表名;

修改表结构

修改表名:alter table 表名 rename to 新表名;
添加新字段:alter table 表名 add 列名 类型 约束;
修改列名:alter table change 旧列名 新列名 类型 约束;
修改列:alter table 表名 modify 列名 类型 约束;
删除列:alter table 表名 drop 列名;

其他操作
复制表结构:create table 表名 like 要复制的表名;

记录的操作
1,添加记录:

向记录中的所有字段添加值:
insert into 表名 values (值1,值2.........);
向记录中的指定字段添加值:
insert into 表名(字段1,字段...)values(值1,值2....);

2,修改记录

修改 所有记录的指定字段表名:
update 表名 set 字段名1, 字段名2...= 字段值1,字段值2,.....;
修改指定记录的指定字段值:
update 表名 set 字段名1, 字段名2...= 字段值1,字段值2...where 条件;

3,删除记录

删除指定记录:
delete from 表名 where 条件;
删除所有记录:
delete from 表名;(逐条删除,性能差)
删除所有记录:
truncated table 表名;(一次性删除整张表,性能好。当再次使用时会根据原始状态重新构建一张新表)

4,查询记录

查询所有记录的所有信息:
select * from 表名;
查询所有字段的指定字段信息:
select 字段1,字段2,...from 表名;
查询指定记录的所有字段信息:
select * from 表名 where 条件;
查询指定记录的指定字段信息:
select 字段名 from 表名 where 条件;

条件,约束

1,条件表达式:
>
<
>=
<=
!=
<>
and(&&)
or(||)
is:一般用于判断字段值是否为空
not:
2,模糊查询

like:
下划线:_:表示单个字符的匹配
百分号:%:表示任意个字符的匹配

3,指定范围内

in(值1,值2.。。。。):在指定值中进行匹配
between 值1 and 值2:在指定范围内进行匹配

4,去重复

distinct:

5,起别名

as:as可以省略

约束

热和约束都可以在新添加列时设置约束

1,非空约束 not null

表示:被非空约束的字段值不能为空;
    alter table 表名 modify 列名 类型 not null;
    注:值为空的字段不能修改为非空

将非空字段设置为可以为空字段:
    alter table 表名 modify 列名 类型;

建表时将字段设置为非空:
    ceate table 表名 (字段1 类型 not null,.....);

2,唯一约束 unique

注:唯一约束下可以有多个null值

被唯一约束的字段不能重复
    alter table 表名 modify 列名 类型 unique;
    注:已经有重复值的,不能创建唯一约束

将唯一字段设置为可以重复的字段
    alter table 表名 drop index 列名;

建表的时候设置字段为唯一约束
    create table 表名 (字段1 类型 unique,字段2.。。。。);

3,主键约束 primary key
特点:1,非空,2唯一
作用:标识表中的指定记录,一般使用没有特殊含义的标识作为主键
一般主键定义在字段列表的第一个。
常见主键:身份证号码;学号;工号。。。。。。

建表时添加主键:
    1,create table 表名(主键 类型 primary key,。。。。);
    2,create table 表名(字段1 类型 约束,字段2 类型 约束,。。。。。。primary key(主键字段));

建表后设置主键:
    alter table 表名 modify 列名 类型 primary key;
    注意:有null或者重复值的字段不能设置为主键

删除主键约束:
    alter table 表名 drop  primary key;
    注:删除主键约束,仍会保留非空约束

主键自增长:
注:
    主键自增长是MYSQL特有的
    自增长的主键只能说数值类型的
    只有主键才能自增长
    自增长的主键可以使用null,会根据当前的最大值继续自增长
    小数类型的自增长,使用空,结果是当前的最大值向上取整。

格式:
    create table 表名(主键 类型 primary key auto_increment,.......);
    可以将字段设置成主键的同时设置他自增长:
        alter table 表名 modify 列名 类型 primary key auto_increment;
    建表后为主键设置自增长:
         alter table 表名 modify 列名 类型 auto_increment;

4,外键约束 foreign key

聚合函数

概念:将数据库表中的一列作为整体进行运算的函数
注:聚合函数不计算空值

1,sum( )
2,avg()
3,max()
4,min()
5,count()
    一般不会有null值的字段,主键
    (count*),表示所有记录

#查询语句
select
字段列表
from
表名列表
where
条件列表
group by
分组
having
分组后的条件
limit
分页
order by
排序方式

排序

格式 :
    order by 字段 asc 升序/desc(降序);
多个字段升降序:
    order by 字段1,排序方式,字段2,排序方式
注:只有前面的字段排序完了有相同的值时,才会根据后面的字段进行排序

分组

分组查询一般用于分组字段和聚合查询
    格式:group by 分组字段
where 和having 的区别
1,where用于分组前,满足where条件后再分组,having用于分组后,满足分组后的条件才会被查询
2,where 不能由于聚合函数进行判断,having可以

分页
limit 起始下标 显示数
起始下标:(页码-1)*显示记录数

每日贴图

好好赚钱,娶漂亮媳妇

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值