博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MySQL 基本语法(1.表字段操作,2表记录管理 3.运算符管理4.SQL查询 5.约束6.索引...
阅读量:6252 次
发布时间:2019-06-22

本文共 11015 字,大约阅读时间需要 36 分钟。

1、表字段的操作    1、语法:alter table 表名 执行动作;    2、添加字段(add)        1、添加到末尾            alter table 表名 add 字段名 数据类型;        2、添加到第一列            alter table 表名 add 字段名 数据类型 first;        3、添加到指定位置            alter table 表名 add 字段名 数据类型 after 字段名;    3、删除字段(drop)        alter table 表名 drop 字段名;    4、修改字段数据类型(modify)        alter table 表名 modify 字段名 新的数据类型;    5、修改字段名(change)        alter table 表名 change 旧字段名 新字段名 数据类型;    6、修改表名(rename)        alter table 表名 rename 新表名;2、表记录的管理    1、删除表记录        1、delete from 表名 where 条件;        2、注意            delete语句后如果不加where条件子句会将表中所有记录全部删除        3、示例            create table t4(            id int(3) zerofill,            name varchar(20),            sex enum("boy","girl")            );            insert into t4 values            (1,"Lucy","girl"),            (2,"Tom","boy"),            (3,"Bob","boy");            select * from t4;    2、更新表记录        1、update 表名 set 字段名=值1,字段名=值2,...,where 条件;        2、注意            update语句后如果不加where条件会将表中所有的值修改        3、练习(见建表脚本MOSHOU.hero.txt)            1、查找所有蜀国人的信息                select * from hero where country="蜀国";            2、查找女英雄的姓名、性别和国家                select name,sex,country from hero where sex="女";            3、把曹操的国籍改为蜀国                update hero set country="蜀国" where name="曹操";            4、把魏延的性别改为 女 ,国籍改为 泰国            5、把id为2的记录的姓名改为司马懿,性别为男,国家为魏国            6、删除所有的泰国人            7、将表中所有的记录的国家改为吴国            8、删除所有英雄的信息3、运算符操作(配合查询、修改、删除)    1、数值比较&字符比较        1、数值比较运算符:=、!=、>、>=、<、<=        2、字符比较运算符:=、!=        3、练习            1、找出攻击力高于150的英雄的名字和攻击力的值            2、找出防御力值不是66的英雄信息    2、逻辑比较        1、运算符:and(多个条件同时满足)                              or(多个条件有一个满足即可)        2、练习            1、找出攻击值大于200的蜀国英雄的名字、攻击值及国家            2、将吴国英雄中攻击值为110的英雄的攻击值设置为100,防御值设置为60            3、查找蜀国和魏国的英雄信息    3、范围内比较        1、运算符:between and、in、not in        2、语法            字段名 between 值1 and 值2            字段名 in(值1,值2,...,值N)            字段名 not in(值1,值2,...,值N)        3、练习            1、查找攻击值在100-200之间的蜀国英雄信息            2、找到蜀国和吴国以外的国家的女英雄信息            3、找到编号为1、3或5的蜀国英雄和貂蝉的编号、姓名、国家    4、匹配空、非空        1、空:is null        2、非空:is not null        3、练习            1、查找姓名为空值(NULL)的蜀国男英雄信息            2、查找姓名为空字符串("")的英雄信息        4、注意            1、NULL :空值,必须用is或者is not去匹配            2、""   :空字符串,用 = 或者 != 去匹配                               5.模糊比较                           1.语法                                字段名 like 表达式                          2. 表达式                                1. _ :匹配单个字符                                2. %:匹配0到多个字符                         3. 练习                               1 select  id, name, from sanguo where  name like '_%_';                               匹配名字中至少有两个字符                              2. select id,name, from sanguo where name like '%';                                匹配所有的                             3.select id, name from sanguo where name like '___';                                 匹配名字中至少有3个字符的                               4. select id, name from sanguo where name like '赵%'; 4. SQL查询                   1. 总结(执行顺序)                        3.  select ...聚合函数 from ...                        1 . where...                        2.  group by...                        4.  having...                        5.  order by...                        6.  limit...                    2. order by                         1. 作用: 给查询的结果进行排序                         2. 排序方法                                1. ASC(默认):升序                                2. DESC: 降序                     3. 语法格式                          order by 字段名   排序方法                      4. 练习                          1.将英雄信息按防御值从低到高排序                                   select * from sanguo order by fangyu ASC                          2.将蜀国英雄信息按攻击值从高到低排序                                  select * from sanguo where country='蜀国' order by gongji DESC                           3 将蜀国两国的男英雄的名字为三个字的英雄按防御力升序排列                        3.limit(永远在SQL语句的最后写)                                 1.作用: 限制显示查询记录的条数                                 2.用法                                        1.limit  n-->显示几条记录                                        2.limit m,n                                            m->从第几条记录开始显示,n表示显示几条                                                   m的值是从0开始计数,3则是表示从第四条记录开始                                  3 练习                                           1. 查找攻击值前三名且名字不为空值的蜀国英雄的姓名,攻击值和国家                                            select name,gongji country from sanguo                                            where                                            name is not null and country ='蜀国                                            order by gongji desc                                            limit 3;                                            2. 查找防御值倒数第二名到倒数第四名的蜀国英雄记录                                             select * from sanguo                                             where country='蜀国'                                             order by fangyu asc                                             limit 1, 3;                          4. 聚合函数                                   1.分类                                          1.avg(字段名) : 求字段的平均值                                          2. sum(字段名) : 求字段的和                                          3. max(字段名) :求字段的最大值                                          4. min(字段名) :求字段的最小值                                          5.count(字段名) :统计该字段的记录个数                                     2.练习                                          1.  攻击力最强值是多少?                                                 select max(gongji) from sanguo;                                          2, 统计一下啊表中id,name字段分别有多少条记录                                                select count(id), count(name) from sanguo;                                               ##空值NULL不会被统计,空字符串""会被统计                                           3.计算一下蜀国英雄的总攻击力                                                select sum(gongji) from sanguo where country ='蜀国';                                            4.统计蜀国英雄中攻击力大于200的英雄                                               select count(*) from sanguo where country='蜀国' and gongji>200;                                                                 5. group by                                        1. 作用:给查询的结果进行分组                                       2. 练习                                           1. 查询三国表中一共有几个国家                                                  select country from sanguo group by country                                           2. 计算各个国家的平均攻击力                                                  select country avg(gongji) from sanguo group by country                                            3. 查找所有国家中英雄数量最多的前两名的国家名称和英雄数量                                               select country,count(*) from sanguo                                                 group by country                                                order by desc limit 2;                                        3.注意                                           1. group by 之后的字段名必须要为select之后的字段名相同                                           2.如果select之后的字段和group by 之后的字段名不一致,则必须要对该字段名进行聚合处理(聚合函数)                                 6. having 语句                                       1.作用: 对查询的语句进行进一步的删选                                       2.练习                                              1.找出平均攻击力大于105的国家的前两名,显示国家名和平均攻击力                                                   select country, avg(gongji) from sanguo                                                    group by country                                                    having  avg(gongji) >105                order by avg(gongji) desc                                                   limit 2;                                         3.注意                                            1.having语句通常与group by语句联合使用,用于过滤由group by 语句返回的记录集                                             2.having语句的存在弥补了where条件子句不能与聚合函数联合使用的不足,where只能操作表中实际操作的值                                             ,having操作的是聚合函数生成的列                                    7. distinct                                            1.作用:不显示字段的重复值                                            2 .练习                                                  1.sanguo表中有哪几个国家                                                       select distinct country from sanguo                                                       #多个字段用逗号隔开                                                   2. 计算蜀国一共有多少个英雄                                                      select count(distinct name) from sanguo where country='蜀国';                                                   3. 注意                                                       1. distinct 处理的是di'stinct 与 from 之间的所有字段,全部相同才能去重                                                        2. distinct 不能对任何字段做聚合处理                                       8. 查询表记录时做数学运算                                              1. 运算符                                                    +, -, * ,/. %                                              2. 练习                                                   1. 查询显示所有英雄的攻击力全部 乘以10                                                      select id, name, country, gongji*10 as xgj from sanguo                                                    2 查询时显示所有英雄的防御力+5                                                      select id, name, country, gongji+5 as xgj from sanguo 5. 约束        1.作用               为了保证数据的完整型,                可以限制无效的数据插入到数据表中         2. 约束分类             1.默认约束(default)                 1 作用: 在插入记录时,如果不给该字段赋值,则使用默认值                 2 格式: 字段名, 数据类型 default值              2,非空约束(not null)                    1.作用:不允许该字段的值有NULL记录                    2.格式 :字段名 数据类型 not null 6. 索引           1.定义               对数据库中表的一列或者多列的值进行排序的一种结构                (MySQL中用BTREE方式)                   MySQL 中支持分三层           2. 优点               1. 可以加快数据的检索速度           3. 缺点               1. 当你对表中的数据进行增加修改和删除的时候索引也要动态维护,降低了数据的维护速度;               2. 索引需要占用物理空间            4. 索引类型               1. 普通索引(index)                     1. 使用规则                          1 一个表中可以有多个index字段                          2. 字段的值可以有重复,且可以为NuLL值                          3. 经常把做查询条件的字段设置为index字段                          4  index字段的key标志是MUL                      2 创建index                           1. 创建表时创建                               index(字段名1), index(字段名2)                            2. 在已有表中创建index                               create index 索引名(字段名) on 表名(字段名)                            3.注意                               索引名一般和字段名相同                       3.  查看普通索引                            1. desc 表名; -->查看key标志为MUL                            2. show index from 表名                        4. 删除普通索引                              drop index 索引名 on 表名                              注意:                                  删除索引只能一个一个删除                                          2. 唯一索引                 3. 主键索引                 4. 外键索引

 

转载于:https://www.cnblogs.com/my-love-is-python/p/9387890.html

你可能感兴趣的文章
linux sql撤销,取消请求的sql语句
查看>>
c语言学习 二维指针,二维数组和指针(C语言)
查看>>
图像压缩算法构造最优解c语言,C语言与程序设计第12章递归.ppt
查看>>
c语言飞机源代码,C语言写的飞机源码
查看>>
C语言 如果某个数大于10 归零,C:当指针实际指向某个东西时,函数继续接收归零指针(示例代码)...
查看>>
c c 语言项目实战 pdf,[计算机]C实战项目.pdf
查看>>
linux中solr创建core,Solr6.6 创建core
查看>>
android的边框阴影,android 自定义shape 带阴影边框效果
查看>>
android centos 的编码,Centos 安装 android sdk
查看>>
反编译android 状态栏沉浸,手把手教你傻瓜式开启状态栏沉浸模式
查看>>
android l job scheduler api,Android JobScheduler API
查看>>
html css 扑克牌桌面,纯CSS实现画扑克牌
查看>>
html5资源分享,12款实用的HTML5干货分享
查看>>
n9 android模拟器,Android软件将兼容诺基亚N9
查看>>
html防替换资源,html前端进行资源重载及刷新资源
查看>>
html5css做星星的形状,css评分效果的星星示例技术分享
查看>>
html实现放大镜效果,利用jquery实现放大镜特效
查看>>
拖拽排序 android,Android 支持拖拽排序的流式标签布局
查看>>
鸡兔同笼html语言,鸡兔同笼有哪五种方法
查看>>
html网页设计优秀作品和代码,从优秀的网页设计作品中学排版和配色
查看>>