数据库

作者: 蓝色海洋_bd2b | 来源:发表于2018-11-13 10:05 被阅读0次

    常用数据库命令

    系统数据库:数据库服务器自带四个 information_schema
    mysql
    performance_schema
    sys

    创建数据库:create database 数据库名称;

    删除数据库:drop database 数据库名称;

    查看数据库:show databases;

    使用(进入)数据库:use 数据库名称;

    查看数据库中有多少表:show tables;

    注意:先使用数据库再去看 有多少表

    DDL(数据定义语言)

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

    还可以:create database 数据库名称 charset=utf8;

    使用切换数据库:use 数据库名称

    制定表结构:create table 表名(
    id bigint,
    name varchar(2),
    email varchar(2),
    age bigint
    );
    注意最后一行不加逗号

    添加一列:alter table 表名 add 列名 数据类型

    查看表的字段信息:desc 表明

    修改表的字段类型:alter table 表名 modify 字段名 bigint;

    删除一列:alter table 表名 drop 列名;

    修改表名字:rename table 原表名 to 新表名

    查看表的创建细节:show create table 表名;

    修改表的字符集gbk:alter table 表名 character set gbk;

    修改表的列名字:alter table 表名 change 原列名 新列名 数据类型;

    删除表:drop table 表名;

    DML(数据操作语言)

    插入数据:insert into 表名 (列名1,列名2,列名3) values (列值1,列值2,列值3);
    注意 列名与列值的类型,个数,顺序要一对应
    值不要超出列定义的长度
    插入的日期和字符一样,都使用引号括起来

    SQL(更新数据)
    学生分数全部改为90:update 表名 set 列名1=列值;
    把名字为zs的学生分数改为:update 表名 set 列名=60 where name = “zs”

    把姓名为lisi的年龄改为20和分数改为70:update 表名 set 年龄=20,分数=70 where name=“lisi”;

    把wangwu的年龄的基础上加一:update 表名 set 年龄=年龄+1 where name=“wangwu”

    修改数据库密码:mysqladmin -u root -p password 211010

    删除操作:delete from 表名 where name=“lisi”

    删除所有数据:truncate table 表名;

    指定查询:select 列名1,列名2 from 表名;

    查询性别为男,并且年龄为20的学生记录:select * from 表名 where 列名=“男” and 年龄=20;

    查询学号为1001或者名为zs的:select * from 表名 where 学号=1001 or name=“zs”

    查询学号为 1001 1002 1003:select * from 表名 where 学号=1001 or 学号=1002 or 学号=1003;或者:select * from 表名 where 学号 in (1001,1002,1003);

    查询年龄为null的:select * from 表名 where 年龄 is null;

    查询年龄在18-20之间的学生:select * from 表名 where 年龄>=18 and 年龄<=20; 或者:select * from 表名 where 年龄 between 18 and 20;

    查询性别非男的学生:select * from 表名 where 性别 !=“男”

    查询姓名不为null的学生:select * form 表名 where 名字 is not null;

    模糊查询

    。_:任意一个字母
    。%:任意0~n个字母

    查询姓名由5个字母构成名字:select * from 表名 where 列名 like “_____”;

    查询以m开头的学生:select * from 表名 where 列名 like “m”;

    查询名字由5个字母构成,并且 第五个字母为s:select * from 表名 where 列名 like“____s”;

    查询名字中第二个字母为u的:select * from 表名 where 列名 like “_u%”;

    查询名字中包含s字母:select * from 表名 where 列名 like “%s%”;

    查询名字里面有 z s l :select * from 表名 where 列名 like ”[zsl]“;

    查询名字去除重复:select distinct 列名 from 表名;

    查询所有内容,又添加新列为年龄和性别:select * ,年龄+性别 from 表名;

    把查询字段的结果进行运算,必须都要是数值型:select *,列名1+列名2 from 表名;

    把null转化成数值0的函数ifnull:select *,age+ifnull(score,0) from 表名;

    在上面查询列名为sx+ifnull(yw,0),这很不美观,现在给列起个别名,为total:select *,sx+ifnull(yw,0) AS total from 表名; AS可以省略

    排序

    关键词 order by
    排序类型(默认是asc)
    升序asc从小到大
    降序desc 从大到小

    select * from 表名 order by 列名工资 desc;

    聚合函数

    对于查询结果进行运算
    常用聚合函数
    count():统计指定列不为null的行数
    max():计算指定列的最大数值,如果指定列是字符串类型,那么使用字符串排序运算
    min():计算指定列的最小值,如果指定列是字符串类型,那么使用字符串排序运算
    sum():计算指定列的数值和,如果指定列类型不是数值类型,那么计算结果为0
    avg():计算指定列的平均值,如果指定列类型不是数值类型,那么计算结果为0

    查询表中记录数:select count(*) from 表名;

    查询员工表中有效的人数:select count(列名) from 表名;

    查询员工表中月薪大于2500的人数:select count(*) from 表名 where 列名 > 2500;

    统计月薪与绩效之和大于5000元的人数:select count(*) from 表名 where ifnull(列名,0)+ifnull(列名,0)>5000;

    查询有绩效的人数,和有管理费的人数:select count(列名),count(列名) from 表名;

    查询所有雇员月薪和:select sum(列名) from 表名;

    查询所有雇员月薪和,以及所有雇员绩效和:select sum(列名),sum(列名) from 表名;

    查询所有雇员月薪+绩效和:select sum(列名+ifnull(列名,0)) from 表名;

    统计所有员工平均工资:select avg(列名) from 表名;

    查询最高工资和最低工资:select max(列名),min(列名) from 表名;

    分组查询

    将查询结果按照一个或者多个字段进行分组,字段值相同的为1组(列如:有十个人,女的站一排,男的站一排,把男女进行分组):select 列名 from 表名 group by 列名;

    列名 名字性别同时进行分组:select 名字,性别 from 表名 group by 名字,性别;

    相关文章

      网友评论

          本文标题:数据库

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