zoukankan      html  css  js  c++  java
  • 数据库的基本操作

    SQL实用总结:

    DDL(数据定义语言):
    I.数据库中的基本操作:
    show databases; ----显示所有的数据库
    create database 库名称; ----创建数据库
    use 库名称; ----切换数据库
    drop database 库名称; ----删除数据库

    ps(补充):
    select database(); ----查看当前使用的数据库
    show create database 库名称; ----查看创建数据库定义信息
    set names 字符集; ----修改当前数据库客户端的编码

    II.表的基本操作:
    show tables; ----显示数据库中的表
    alter table 表名 add 字段名 字段类型; ----添加字段
    alter table 表名 modify 字段名 字段类型; ----修改字段类型约束
    alter table 表名 change 旧字段名 新字段名 字段类型; ----修改字段名称
    alter table 表名 drop 字段名; ----删除字段
    desc 表名; ----查看表结构
    rename table 旧表名 to 新表名; ----修改表名称
    create table 表名(字段名 字段类型 [约束]);
    约束:<1.primary key (主键约束)
    删除:alter table 表名 drop primary key;
    <2.unique (唯一约束)
    <3.not null
    <4.default (默认值约束)
    <5.外键约束
    <6.auto_increment(自增长)
    非常用:
    show create table 表名; ----查看表的编码集
    alter table 表名 charset 字符集 ----修改字符编码集

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    DML
    I.
    insert into 表名[(字段名1,字段名2,...)] values(值1,值2,...);
    II.
    update 表名 set 字段名=值 [where 条件];
    III.
    delete from 表名 [where 条件];

    注:删除表和删除表数据的区别:
    delete from 表名; (删除表)
    truncate table 表名; (删除表记录)
    1.delete是一行一行删除
    truncate是将表结构销毁,在重新创建表结构.
    如果数据比较多,truncate的性能高。

    2.delete是dml语句 truncate dcl语句
    delete是受事务控制. 可以回滚数据.
    truncate是不受事务控制. 不能回滚.
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    DQL
    I
    单表查询:
    select * from where 条件 group by ~~ having ~~ order by~~;

    条件:<1.普通条件 > < <> >= <= ,and or not,between and ,in ,like , is null
    *: <2.聚合函数 count(~) sum(~) max(~) min(~) avg(~)
    ifnull(一般是在列做运算时用), distinct(去重)
    注:having和where的区别:
    <1.having是在分组后对数据进行过滤,where是在分组前对数据进行过滤
    <2.having后面可以使用分组函数,where后面不可以使用分组函数

    II
    多表操作
    <1.一对多:
    从表添加外键:
    alter table 表名 add[constraint 外键名] foreign key(从表外键名字段) references 主表(主表主键);
    删除外键:
    alter table 从表 drop foreign key 外键名称;
    注:从表外键类型和主表主键应一致,外键名一般为"从表_主表_fk"形式。
    删除时,从表无障碍,主表要看从表是否有关联数据。
    添加时,主表无障碍,从表看是否在主表主键范围内。
    <2.
    多对多:
    需要设置一个中间表来作为从表。

    备份:
    doc窗口:mysqldump -u*** -p*** 数据库名>文件路径;
    例如:mysqldump -uroot -proot mydb1>d:mydb1.sql
    恢复(!!!首先手动创建一个数据库):
    doc窗口:mysql -u*** -p*** 数据库名<文件路径;
    例如:mysql -uroot -proot mydb1<d:mydb1.sql
    数据完整性(依靠约束来完成):
    实体完整性(行/记录完整性)的约束条件:主键,唯一,自增长
    域完整性(列/字段完整性)的约束条件:非空,默认,数据类型
    引用完整性的约束条件:外键

  • 相关阅读:
    java实现定时任务(Quartz)
    java实现发送邮件工具
    mysql服务器查询慢原因分析方法
    Vue 插槽
    Vue组件参数传递问题
    Vue路由
    Spring Boot2 拦截器对静态资源的放行
    Spring Boot过滤非法请求
    U盘安装linux(CentOS Kali ubuntu)无法挂载_实测
    如何编译Java程序以及运行程序
  • 原文地址:https://www.cnblogs.com/zbdouble/p/8414417.html
Copyright © 2011-2022 走看看