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. 外键索引

MySQL 基本语法(1.表字段操作,2表记录管理 3.运算符管理4.SQL查询 5.约束6.索引的更多相关文章

  1. MySQL知识补充(表字段操作、视图、触发器、事物、存储过程、内置函数、流程控制、索引、慢查询)

    今日内容概要 表字段操作补充(掌握) 视图(了解) 触发器(了解) 事务(掌握) 存储过程(了解) 内置函数(了解) 流程控制(了解) 索引(熟悉) 内容详细 1.表字段操作补充 # 1.添加表字段 ...

  2. MySQL 表字段操作

    MySQL 表字段操作 一.增加表字段 1)mysql> alter table 二.删除表字段 三.修改表字段

  3. explain为mysql关键字,不能作为表字段创建

    在用jpa自动建表时,字段名命名为了explain,发现报实体类与数据库表字段不一致的错,查询才发现explain是mysql的关键字,无法作为表字段建立,特此记录

  4. MySQL ALTER语法的运用方法 && 操作索引和字段

    语法:alter_specification: ADD [COLUMN] create_definition [FIRST | AFTER column_name ] or ADD INDEX [in ...

  5. mysql 不同库不同表字段数据复制

    需求:把一个表某个字段内容复制到另一张表的某个字段. 实现sql语句1: UPDATE file_manager_folder f1 LEFT OUTER JOIN file_manager_fold ...

  6. SqlServer设置特定用户操作特定表(插入、删除、更新、查询 的权限设置)

    目录 一.需求场景: 二.操作步骤: 表上右键选择[属性],选择[权限]选项卡: 点击[搜索],在弹出的框中点击[浏览],选择需要设置的用户: 在上面点击[确定]后,就可以在[权限]选项卡中看到权限列 ...

  7. MySQL Workbench中修改表字段字符集

    背景介绍重要性必要性作用意义略过,开门见山: 用SQL语法修改字符集,可以参考此篇: http://www.cnblogs.com/HondaHsu/p/3640180.html MySQL提供图形界 ...

  8. ORACLE-1:虚拟列影响alter修改表字段操作!

    一.问题: 昨天想要修改Oracle数据库中某张表的某个字段,发现怎么都修改不成功!!!并给出了如下提示: ORA-54031:要删除或修改的列由某个虚拟列表达式使用 二.啥是“虚拟列” [不可见的列 ...

  9. orcle增删改操作及alter修改表字段操作

    orcle增删改操作:操作前确保当前用户有增删改的权限. --创建表 create table itcast( pid ), pname ) ); drop table itcast; --复制表 c ...

随机推荐

  1. ffpmeg下rtmp踩坑记录

    1. flash端发布直播流 2.在 ffplay 命令行中 播放rtmp 直播流 ffplay "rtmp://127.0.0.1:80/live/ss live=1"  一直出 ...

  2. BZOJ4399 魔法少女LJJ【线段树合并】【并查集】

    Description 在森林中见过会动的树,在沙漠中见过会动的仙人掌过后,魔法少女LJJ已经觉得自己见过世界上的所有稀奇古怪的事情了 LJJ感叹道"这里真是个迷人的绿色世界,空气清新.淡雅 ...

  3. BZOJ4517 Sdoi2016 排列计数 【DP+组合计数】*

    BZOJ4517 Sdoi2016 排列计数 Description 求有多少种长度为 n 的序列 A,满足以下条件: 1 ~ n 这 n 个数在序列中各出现了一次 若第 i 个数 A[i] 的值为 ...

  4. 使用python处理selenium中的获取元素属性问题

    # 获取我的订单元素class属性值 at = self.driver.find_element_by_link_text('我的订单').get_attribute('class') # 判断cla ...

  5. UWP 流畅设计中的光照效果(容易的 RevealBorderBrush 和不那么容易的 RevealBackgroundBrush)

    在 Windows 10.0.16299 中,RevealBrush 被引入,可以实现炫酷的鼠标滑过高亮效果和点击光照.本文将告诉大家如何完整地实现这样的效果. Reveal 的效果(自带) 在微软官 ...

  6. JavaWeb向浏览器返回一个音频流

    浏览器直接播放音频文件,1是直接访问一个html的音频文件,,2 是返回一个Java音频流给浏览器解析. 下面实现一个java的wav文件音频流,可以直接播放音频文件 package org.lib. ...

  7. Clairewd’s message(哈希模板+)

    个人心得:一开始就是知道用哈希,但是无从下手,很明显是对哈希不太了解和思维不太好. 先来看一下这一题涉及到的哈希吧和这题的思路吧,思路就是对所给的密文用原文和翻译后进行hash处理,那么必然存在后面那 ...

  8. BZOJ1495 [NOI2006]网络收费

    题意 传送门 MY市NS中学,大概是绵阳市南山中学. 分析 参照Maxwei_wzj的题解. 因为成对的贡献比较难做,我们尝试把贡献算到每一个叶子节点上.我们发现按照题目中的收费方式,它等价于对于每棵 ...

  9. Wordpress主题站

    深度剖析WordPress主题结构 http://down.chinaz.com/try/201106/640_1.htm wordpress工作原理 http://blog.csdn.net/liu ...

  10. BZOJ3261:最大异或和

    浅谈\(Trie\):https://www.cnblogs.com/AKMer/p/10444829.html 题目传送门:https://lydsy.com/JudgeOnline/problem ...