美文网首页
mysql 命令

mysql 命令

作者: 顾不上回头的奔跑者 | 来源:发表于2019-02-26 15:07 被阅读0次

    1.在终端中输入添加MySQL路径的命令:
    PATH="$PATH":/usr/local/mysql/bin

    2.查看文件的权限
    ls -l /etc/my.cnf

    3.修改文件的权限为root权限
    chmod 644 /etc/my.cnf

    4.查看mysql的进程
    ps -e|grep mysql

    5.杀死mysql 进程
    sudo kill -9 mysql的进程号



    mysql 数据库命令

    DDL语句

    (DDL语句)以';'或者\g结束语句

    6.查询系统里有多少数据库
    show databases;

    7.创建名字为b1的数据库
    create database b1

    8.选择要操作的数据库(b1 数据库)
    use b1

    9.查看数据库中的表(先用use选出要操作的数据库)
    show tables

    10 删除b1数据库
    drop database b1

    11.创建表
    create table 表名(
    字段1名 字段1类型 列的约束条件,
    字段2名 字段2类型 列的约束条件,
    ...
    )
    列的约束条件,可加可不加
    实际敲代码:create table t1(id1 int,id2 int);

    12.查看表属性
    desc 表名
    例子:desc t1; 展示t1表

    13.展示创建表语句:跟desc 语句差不多都是展示用的(没有分号)
    show create table t1\G

    14.删除表
    drop table 表名;

    15.表内容的增删改查
    []里的可加可不加:
    *1. 修改字段的属性:
    alter table 表名 modify [column] 字段定义 [first|after 字段名]
    例子:alter table t1 modify tinyint;
    *2.增加字段:
    alter table 表名 add [column] 字段定义 [first|after 字段名]
    例子:alter table t1 add id3 int;
    *3.删除表字段
    alter table 表名 drop [column] 字段名
    例子:alter table t1 drop id3;
    *4.字段改名
    alter table 表名change [column] 旧的字段名 新字段名 字段定义
    例子:alter table t1 change id2 id4 int;
    *5.更改表的名字
    alter table 表名 rename [to] 新表名;
    例子:alter table t1 rename to t2;

    mysql 中的数据类型

    DML语句
    1. 修改表内容语句
      *1.插入记录
      insert into 表名 (字段1,字段2,...字段n) value (值1,值2,...值n)
      可以不指定字段名,但值的排序要跟字段的排序一致。
      例子:insert into t1 value (1,20);
      例子:一次插入多条数据:insert into t1 (age,id1) values (25,2),(30,3);
      *2.更新记录
      @1>更新一个表
      update 表名 set 字段1=值1,字段2=值2,...字段n=值n [where 条件];
      例子:update t1 set age=70 where id =2 and age=23;
      @2>更新多个表
      update 表名,表名 set 表名.字段=值,表名.字段=值 [where 条件]
      例子:update t1,t2 set t1.age=2,t2.age=20 where t1.id=t2.id;
      *3. 删除记录
      @1>删除单表中的记录
      delete from 表名 [where 条件]
      例子:delete from t1 where id=1;(条件不加。整个表的内容就都删除了,慎重)
      @2>删除多表中的记录
      delete 表名,表名...表名 from 表1,表2...表3 [where 条件]
      *4.查询:
      @1>.简单的查询
      select * from 表名 ;
      *的意思是查看全部的字段。
      @2>.查询不重复的记录。
      select distinct * from 表名;
      @3>.条件查询
      条件:“=,>,<,>=,<=,!=,or,and”
      例子: select * from t1 id=1 or id=2;
      @4.排序和限制
      asc 由低到高,desc 由高到低。order by
      例子1:select * from t1 order by salary asc,id desc;
      例子1的意思先按照salary 由低到高排序,再按id 由高到低排序。
      例子2:select * from t1 order by salary asc,id desc limit 2,6;
      limit 1,取出第一条来,limit 2,6从第2 条开始取出6条数据来。
      5.聚合
      ① sum 求和
      select sum(salary) from t1; (切记:没有 * 号)
      ②count 记录总数
      select count(
      ) from t1;
      ③max 最大值,min 最小值
      ④ GROUP BY 按分组 聚合
      例子:select department,sum(salary) from t1 group by department;
      ⑤ WITH ROLLUP 获得分类后的再得到总的
      image.png
      ⑥ having 对聚合后的结果进行条件过滤。等同于where
      但是where 是先过滤,having 是先聚合,后过滤。
      image.png

    17.表连接
    ①连接分类
    内连接:选取两张变表中相互匹配的记录。
    select * from t1,record where t1.id = record.eid;

    可以给表或者字段起别名: image.png 外连接:不仅仅选取两张相互匹配的记录,并且会选出其他不匹配的记录。
    左连接:
    select *from t1 left join record on t1.id = record.eid;
    left join 左边的表的内容会全展示出来。
    image.png

    右连接:
    select *from t1 right join record on t1.id = record.eid;
    右边表的内容全展示出来。

    18.子查询
    *需求:一个查询需要另一个查询的结果参与的时候
    ①:in
    一张员工表t1,一张记录员工迟到事件的表late。查询出迟到的员工。
    select * from t1 where id in (select distinct eid from late);
    如果查询的结果只有一个,那么in 可以写成 =

    image.png
    ②:not in 与上面的相反。
    ③:exists 存在,
    select * from t1 where exists (select * from late where t1.id=late.eid);
    只要后面语句有记录返回,就是ture,记录内容是null 也是ture ,没找到结果就当false 处理;
    执行过程相当与双重循环。
    image.png
    ④: not exists 与上面相反。
    ⑤:记录联合 : union union all
    区别:union 会去重复后合并 union all 不去重复
    合并的条件:想要合并必须两个表的列数是一样的。
    image.png


    mysql 的数据类型

    19 数字类型
    整形
    tinyint smallint mediumint int bigint
    类型属性
    auto_increment 自增,必须整形数,必须设置成主键
    not null 字段不能设置为空
    default 111 字段默认是111
    设置主键
    create table t3(id int,name int,primary key(id));
    忘记设置了,添加主键
    alter table t3 add primary key (id)
    删除主键
    alter table t3 drop primary key
    小数
    float double
    定点数: decimal(6,2)总共6位,小数点后2位,不四舍五入

    20 .日期类型
    1,datetime now()函数获取当前时间。
    alter table t4 add time datetime;
    insert into t4 (time) value (now())

    21.字符串类型
    ①:char(M) 字符最长存M个字符 cahr 最长255个字符,中英文都是255个字符
    create table t5 values(ch char(8));//字符串长度不能超过8个
    ②:varchar(M) 最长 65535个字符
    alter table t5 add varch varchar(10) 添加的时候必须指明长度
    ③:枚举类型 enum
    alter table t5 add enum enum('man','woman');
    insert into t5 (enum) values ('man'),('woman');
    //只能插入man 跟woman 不能插
    入其他值(单选)
    ④:set 类型(跟enum类似)
    insert into t5 (set) values ('man,woman');//一条记录可以是man 也可以是woman
    枚举的查询语句:
    select * from t5 where find_in_set('man',set);//在set 集合里找带man 的记录。
    show character set;//查看mysql 支持的编码。

    22.查看数据库字符集跟校验规则
    show variables like 'character_Set_database';
    创建数据库的时候指定字符集
    create database d4 default character set gbk;
    查看客户端,连接层,服务器端的字符集是什么。
    show variables like 'character_set_%';
    设置各个层的字符集
    set character_set_client = gbk

    23 mysql 支持 + -* / % 运算符
    between and, in , is null ,is not null,like,
    like 通配符 select 'abcee' like '%b%';

    24 mysql 函数
    借有下网友的整理吧,懒得整理了
    https://www.cnblogs.com/slowlyslowly/p/8649430.html
    其他函数
    select database(); 返回数据库名字
    select version();数据库版本
    select user();//返回当前登录用户名
    select md5('abdd');//返回字符串的MD5加密结果

    相关文章

      网友评论

          本文标题:mysql 命令

          本文链接:https://www.haomeiwen.com/subject/qyjreqtx.html