MySQL数据库--基础篇

打开数据库

sudo mysql -u root -proot

查看

show database

新建

show create database 数据库名 default character set utf8

删除

drop database 数据库名

修改

alter database 数据库名 default character set 编码方式
表管理

查看默认的字符集

show create database 数据库名

选择数据库

use 数据名

新建表

    create table student(
    -> sid int,
    -> sname varchar(20),
    -> sage int
    -> );

查看所有表

show tables;

查看表结构

desc student;

删除表

drop table student;

修改表

  • 添加字段(column可以不写)
    alter table student add column sgender varchar(2);
  • 删除字段(column可以不写)
    alter table student drop column sgender;
  • 修改字段类型(column可以不写)
    alter table student modify column remark varchar(100);
  • 修改字段名称(column可以不写)
    alter table student change column sgender(旧字段名) gender(新字段名) varchar(2);
  • 修改表名称
    alter table student rename to teacher;

数据库表中增加信息

  • 插入所有字段(与数据库表中的信息一一对应)
    insert into 数据表名 values(1,'张三','男',20);
  • 插入部分字段
    insert into 数据表名(id,name)values (2,李四);

修改数据

  • 修改所有的数据(建议少用)
    update 表名 set 字段名='修改后的值';
  • 修改部分的数据(指定修改ID为1的指定字段)
    update 表名 set 字段名='修改后的值' where id = 1;
  • 修改多个字段(set只能用一次,字段名之间用‘,’隔开)
    update 表名 set 字段名='修改后的值',age=30 where id = 1

删除数据

  • 删除所有数据表中的数据
    delete from 数据表名
  • 删除指定数据(指定删除ID为2的数据)
    delete from 表名 where ID = 2;
  • 其他删除
    truncate table 表名
  • 删除的区别

delete from与truncate table的区别

  1. delete from可以带条件删除,truncate table不可以带条件删除
  2. delete from只能删除表的数据不能删除表的约束,truncate table既可以删除表的数据也可以删除表的约束
  3. 使用delete from删除的数据可以回滚(事物),既临时的删除而使用truncate table的删除就是永久的删除

查询数据

  • 查询所有列
    select * from 数据表名 ;
  • 查询指定列
    select id, name from 数据表名;(以ID和name查询)
    • 查询时指定别名[as](显示别名)
      select id as '编号', name as '姓名' from 数据表名;
  • 查询时添加常量列
    • 需求 在查询student表时添加一个班级列,内容为‘Java就业班’
      select id, name,...,'java就业班' as '班级' from 数据表名;
  • 查询时合并列
    • 查询所有科目的总成绩(科目名+科目名+...)
      select id, name, (java+jsp+...) as '总成绩' from 数据表名;
      • 注意事项 合并列 只能合并数值类型字段
  • 查询时去除重复记录
    • 需求 查询学生性别(结果 男 女)
      select distinct gender from student;
    • 另一种语法
      select distinct (gender) from student;
  • 条件查询(where)
    • 第一类 逻辑条件 and(与) or(或)
      • 查询ID为2 姓名为李四的同学
        select * from student where id=2 and name = '李四';
      • 查询ID为2 或 姓名为张三的同学
        select * from student where id=2 or name = '张三';
    • 第二类 比较条件 > < >= <= = <>(不等于) between and
      • 需求 查询Java成绩大于70的所有人
        select * from student where java>70;
    • 第三类 判空条件(null 空字符串):is null / is no null / =='' / <>''
      • 需求 查询地址为空的学生

        null vs 空字符串
        null 没有值
        空字符串 有值

      • 判断null
        select * from student where address is null;

      • 判断空值
        select * from student where address = '';
        select * from student where address is null or address = '';

    • 第四类 模糊条件 like(通常使用以下替换标记 % 表示可以替换任意一个字符 _ 表示一个字符)
      • 需求 姓张的学生
        select * from student where name like '张%';
      • 需求 姓张的学生且姓名只有两个字的人
        select * from student where name like '张_';
  • 聚合查询
    • 常用的聚合函数
      sum(字段)总数 avg()平均数 max()最大值 min()最小值 count(*/id)统计记录的数量 例如学生总数
      count统计的数据不包含null的数据 故:使用count统计数据的时候,要使用不包含null的数据
  • 分页查询(limit 起始行(从0开始),查询多少行)
    select * from student limit 0,2;查询两行
    • 没有记录就不显示
    • 分页查询当前页的sql:
      select * from student limit (当前页-1)*每页显示多少,每页显示多少;
  • 查询排序(order by)默认正序
    • 语法:order by 字段 asc/desc
    • asc:顺序 / 正序。 数值:递增,字母:自然顺序(a-z)
    • desc:倒序 / 反序。 数值:递减,字母:自然反序(z-a)
  • 分组查询(group by 字段)

例如:将学生性别分组,并统计每组的人数
select gender,count(*) from student group by gender;

  • 分组查询后筛选(having)

需求:查询性别人数大于2的值
select gender,count(*) from student group by gender having count(*)>2

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,294评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,493评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,790评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,595评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,718评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,906评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,053评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,797评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,250评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,570评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,711评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,388评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,018评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,796评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,023评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,461评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,595评论 2 350

推荐阅读更多精彩内容