数据库

数据库

【链接】mysql之系统默认数据库
https://www.cnblogs.com/progor/p/8462802.html

https://blog.csdn.net/qq_43028054/article/details/93138503

数据库

  1. 结构化查询语句
  2. ddl create alter drop
  3. dml insert update delete
  4. dql select
  5. dcl grant授权 revoke回收

数据库操作命令

  • 启动 net start mysql

  • 关闭 net stop mysql

  • 登录 mysql -u user -p 密码

  • 创建用户 create user 用户名称 identified by ‘密码’;

  • 授权 grant 权限 on 范围 to 用户

  • 创建用户时分配权限 grant 权限 on 范围 to 用户 identified by ‘密码’

  • 回收 revoke 权限 on 范围 from 用户

  • 刷新权限机制 flush privileges;

  • 更改密码

    1. 更改指定用户密码

      set password for c =password(‘123’);

    2. 更改自己的密码

      set password password=password(‘123’);

  • 创建数据库 create database 数据库名

  • 建表 create table 表名

  • mysql数据类型

    数值型:

    1. 整形 tinyint smallint mediumint int bigint
    2. 浮点型 float double
    3. 定典型 decimal

    字符型:char、varchar、blob、text、enum、set

    日期和时间类型:date、time、datetime、timestamp、year

    char与varchar的却别;datetime与timestamp的区别

  • 更新语句

    update 表名 set 列名 字段1=字段值,字段2=字段值2…… 【where条件表达式】

  • 删除用户 drop user 用户名

  • 删除数据库/表 drop database 数据库名 drop table 表名

  • unsigned 整形非负数限定

自动递增

Auto_increment 是一种数组列的一种属性,只适用于数字类型

Auto_increment 必须具备not null

一个表只能有一个字段使用auto_incerment

将字段设置auto_incerment之后,必须将设置成主键或者主键的一部本

enum、set的应用

enum 枚举字符串

另类的insert

  1. Insert into 表名(字段列表)values(字段值1,字段值2……)

  2. insert ……select……(必须先创建表)

    insert into表名(字段名)select (字段名)from 表名

  3. create ……select……(插入前自动根据源表所选字段构件表)

    create table 表名 select 字段列表 from 表名

约束(constraint)

Unique 唯一键 primary key 主键约束 主键不能为空 且唯一

primary key(字段1,字段2)组合主键 not null 非空约束

主键和唯一键会自动构建索引

数据完整性:是指存储在数据库中的数据的一致性和正确性

域完整性 not null 指定某列不为空 default 指定某个列中的默认数值

实体完整性 primary key主键 unique唯一(“候选主键”)

引用完整性 foreign key 外键

constraint fk_no_id foreign key(no) references A(id)在当前表no字段上构建引用于表A字段的id的名为fk_no_id的外键

删除语句(实质就是修改表结构)

  1. delete from 表名
  • 如果有关联的情况,要删除从表对应的关系,在删除主表数据

  • 或者构建外键引用时,设置级联操作

  • 或者将外键临时取消作用或删除外键引用

  • 模糊匹配 like 通配符(%一个或者多个,_一个字符)

  • 截取字符串

    left(源字符串,长度)从左边到右边

    right(源字符串,长度)从右边到左边

    substring(源字符串,开始字符位数,截取的长度)

  1. truncate table 表名 删除表中所有数据 不可恢复 ddl语句(与delete的区别)

  2. drop table 表名删除表 连数据对象都删除

修改数据库对象 alter

alter table 表名 drop foreign key 外键名称;删除外键

alter table 表名 drop index 唯一键名称; 删除唯一键

alter table 表名 drop primary key; 删除主键 (如果主键为自增字段则不能删除)

show create talbe A;查看建表语句

  • 对已经存在的表的结构进行修改

    添加字段:alter table 表名 add 列名 类型;

    更改字段属性:alter table 表名 modify 列名 类型 (约束);

    删除已有字段:alter table 表名 drop 列名;

函数

时间函数

字符串

拓展

explain 、desc 三大范式

image-20200115092940284

事务、存储过程、触发器、函数

select查询

  1. 查询数据 select 字段名 from 表名

  2. 列重命名 select 列名 【as】 ‘新列名’ from 表名

  3. 排序 order by select * from 表名 order by 字段1 【desc】字段2 【desc】……出现在where字句后面

    有时候因为语言设置为utf-8,使用中文字段排序须进行编码修改order by convert(字段 using gbk)

  4. limit 限制 查询数据的限制 select * from 表名 limit (a,b) ab为数字 a表示从第几位开始 b表示几条

  5. 聚合函数 聚合函数不能直接出现在where子句中

    max(字段名)最大值

    min(字段名)最小值

    avg(字段名)平均值 只能针对数值型

    sum(字段名)求和 只能针对数值型

    count(*)

    count(1)

    count(主键字段)

    count(非主键字段)

    ps:1、max()\min()\avg()\sum()count(非主键字段)在统计时自动排除字段中的null值

    ​ 2、count(*)、count(1)、count(主键字段)返回表中所有信息,不考虑空值

    ​ 3、avg(字段)、sum(字段)在统计字段的时候返回的值为0

  6. 取消重复值(distinct)如果distinct 后面跟多个自己 表示去组合的重复值

  7. 子查询

    外部数据大于内部数据,使用in

    内部数据大于外部数据,使用exists

    image-20200115141732996
  8. 合并结果集 union (默认将结果集中的重复值取消,如果不想取消重复值,则在union后加all)

  9. 聚合函数可以作为排序依据,如order by count(字段)desc

  10. 连接技术

    image-20200115162748142 image-20200115165203929
  11. group by image-20200115171128717

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值