zoukankan      html  css  js  c++  java
  • mysql数据库常用操作

     

    目前最流行的数据库:

    oracle、mysql、sqlserver、db2、sqline

    --:单行注释

    #:也是单行注释

    /* 注释内容*/:多行注释

    mysql -uroot -p密码:登录mysql

    service mysqld restart
    重启mysql

    /etc/my.cnf
    mysql的配置文件

    /var/lib/mysql
    mysql数据库的数据库文件存放位置

    /var/log
    mysql的数据库的日志输出存放位置

    create database 库名 default character set =utf8;:创建数据库

    show databases:查看所有数据库

    drop database 数据库名:删除数据

    备份的语法一:
    Mysqldump –uroot –p 要备份哪个数据库 > 备份到哪去的路径;

    备份语法二:
    Mysqldump –uroot –p - -database 要备份哪个数据库 > 备份到哪去的路径;

    source+sql文件:恢复数据库

    use 数据库名称:使用业务数据库

    show tables:查看业务数据库下有多少张表格

    desc 表名:描述表结构

    建表语法:
    create table 表名字 (列名 数据类型,l列名2 数据类型,…,列名n 数据类型)Engine=INNODB charset=utf8;

    表创建好过后添加一列或者多列:
    ALTER TABLE 表名 ADD (列名 数据类型,…,列名n 数据类型);

    换列名语法:
    Alter table 表名 change column 原有的列名 新的列名 对应的数据类型

    删除列:
    alter table 表名 drop column 要删除的列

    给列添加注释:
    Alter table 表名 modify column 列名 对应数据类型 comment ‘你要注释的内容’

    添加数据语法:
    insert into 表名(列1,列2...列n) values(值1,值2,...值n)

    一次增加多条数据:
    Insert into 表名(列1,列2,..,列n) values (值1,值2,…..,值n), (值1,值2,…..,值n)

    修改数据:
    update 表名 set 列名=值 where 条件

    Update 可以一次修改多列:
    Update 表名 set 列1=值1,列2=值2 where 条件

    删除数据:
    delete from 表名 where 条件

    删除整张表的数据:
    truncate table 表名

    删除数据库:
    drop

    添加默认值:
    create table 表名(列名称 数据类型 default 默认值)

    添加非空约束的语法:
    alter table 表名modify column 列名 对应的数据类型 not null;

    给表添加主键约束:
    Alter table表名 add constraint primary key PK_表名_需要添加约束的列名 (要添加约束的列)

    给表添加外键约束:
    alter table 表名add constraint foreign key fk_表名 _列名 (需要添加约束的列)references 引用的表 (引用的是哪一列)

    Select * from 表名: 查询这张表里面的所有数据

    Select 列名1,…,列名n from 表名:多列查询

    select 列名 from 表名:单列查询

    Select 列名1 as 别名1,列名n as 别名n from 表名:查询的时候命名别名

    Select distinct(需要去除重复的列) from 表名:去重查询(只能是单列去除重复)

    select * from 表名 where 条件:带条件查询

    SQL一共由四个部分组成:

    DQL 数据查询语言 select

    DML 数据操作语言 insert,update,delete

    DDL 数据定义语言 create,drop,alter

    DCL 数据控制语言 grant,revoke,commit,rollback


    Between and : 在……之间

    Select * from 表名 where 列名 in (范围):在范围内取值

    Select * from 表名 where 列名 is null:判断该列是否有空值

    Select * from 表名 where 列名 is not null:判断该列是否有非空的值;

    select * from 表名 where 列名 like ‘_或者%值’:模糊查询
    _只匹配一个字符
    %匹配任意个字符

    数据库里面的排序order by
    Order by后面可以跟上两个单词 ASC DESC
    语法:select * from 表名 order by 要排序的列;

    select * from 表名 limit m,n:从m行开始 取n行显示

    表连接语法:
    内链接语法:Select * from 表1 join 表2 on 主键=外键
    左外链接语法:Select * from 表1 left join 表2 on 主键=外键
    右外链接语法:Select * from 表1 right join 表2 on 主键=外键

    表连接:

    第一步:看这几张有没有相同的列
    第二步:确定这个列是哪张表的主键
    第三步:确定好了过后直接写on 主键=外键
    第四步:修改*,把*号换成一些需要显示列

    自连接:

    第一步:将张表以命名别名的方式拆分成两张表
    第二步:找准筛选出垃圾数据的关系
    第三步:分清左边的数据来自于哪张表,右边的数据来自于哪张表
    第四步:才开始写 on 主键=外键
    第五步:换*号,显示需要展示出来数据

    字符函数:
    concat(列1,'字符'); 合并函数
    select concat(userName,userPwd) '用户名和密码' from user;
    select concat('Hello','World') from dual;

    日期函数:
    sysdate(); 查询当前系统时间函数
    select sysdate() from dual;
    select * from user;
    dual??
    dual是数据库为了让我们试验函数的作用或者功能所提供的一张伪表;
    伪表就是实际上不存在,但是在数据库当中依然可以使用,表名就叫dual
    转换函数

    数字函数

    其它函数

    统计函数,又称聚合函数,专门为了统计某一列的值而研发出来的函数
    count 统计某一列的非空总行数
    sum 统计某一列的总和
    max 统计某一列的最大值
    min 统计某一列的最小值
    avg 统计某一列的平均值

    count可以忽略列的数据类型
    avg sum max min 只能用于数字类型只上;


    having 与where的区别:
    相同点:having和where都是用于条件筛选
    不同点:having多与group by 结合使用,用于分组过后的条件筛选where用于分组之前的筛选

    子查询语法:
    Select * from 表名 where 列名 in (Select 相同列 from 表名)
    Select * from 表名 where 列名 比较运算符 (select 数字列 from 表名)
    注意点:如果在where后面嵌套了子查询,一定要记得把 * 号换成where 后面的那个列名

    添加索引的语法:
    Alter table 表名 add 索引的类型 索引的名字 (需要添加索引的列)
    ALTER TABLE `orderdetail`
    ADD INDEX `orderdetailNum` (`orderdetailNum`) ;
    删除索引的语法:
    Alter table 表 drop 索引类型 索引的名字

    事务:
    Set autocommit=0;
    关闭自动提交,开启事务
    Set autocommit=1;
    开启自动提交,关闭事务;
    start transaction; -- 开启一个事务点;记录原有表中的数据,如果一旦出错,直接回到这个事务点之上
    set autocommit=0; -- 开启事务

    视图:就是一张虚拟表格里面存储了查询结果;
    特点:隐藏真正的表名,让人不知道你的表名或者列名真正叫什么

    创建试图的语法:create view 视图名字 as 查询语句

    删除视图语法:drop view 视图名字

     mysql查询表内所有列名,并用逗号分隔:

    SELECT GROUP_CONCAT(COLUMN_NAME SEPARATOR ",") FROM information_schema.COLUMNS 
    WHERE TABLE_SCHEMA = '数据库名称' AND TABLE_NAME = '表名'

    当行内容过长时,尾部+G 将结果以垂直方向输出。

    mysql> select * from db_archivelogG

    清空自增列的值:

     alter table mr_city AUTO_INCREMENT=1;

  • 相关阅读:
    httpClient模拟浏览器发请求
    中文字符所占字节
    eclipse代码左虚线对齐设置
    git 几款好用的客户端工具
    github快速入门(一)
    eclipse插件开发(一)
    SpringMVC解决跨域的两种方案
    SpringMVC SessionAttributes 简述
    关于Spring的HibernateTemplate的findByExample方法使用时的一点注意。
    Windows10 Ubuntu bash 配置 LAMP+JDK+Tomcat
  • 原文地址:https://www.cnblogs.com/yc-c/p/8867239.html
Copyright © 2011-2022 走看看