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. 使用POI对excel进行操作生成二维数组

    import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import ja ...

  2. LOJ2360. 「NOIP2016」换教室【概率DP】【Floyed】【傻逼题】

    LINK 思路 先floyed出两点最短路 然后就可以直接\(dp_{i,j,0/1}\)表示前i节课选择换j节,换不换当前这一节的最小贡献 直接可以枚举上一次决策的状态计算概率进行统计就可以了 我变 ...

  3. Working out

    Summer is coming! It's time for Iahub and Iahubina to work out, as they both want to look hot at the ...

  4. python mysql基本操作

    1.创建数据库.表添加数据. # -*- coding: utf-8 -*- import MySQLdb.cursors conn =MySQLdb.connect(',charset = 'utf ...

  5. 随着tomcat一起启动一个线程

    package test; import javax.servlet.*; public class MyCode implements ServletContextListener { //当Tom ...

  6. 【转】VC 多线程中控制界面控件的几种方法

    原文网址:https://software.intel.com/zh-cn/blogs/2010/11/30/vc-3 为了保证界面的用户体验经常要把数据处理等放到子线程中进行,然后把结果更新到主界面 ...

  7. ubuntu下eclipse安装maven插件

    ubuntu科输入如下指令安装eclipse:sudo apt-get install eclipse ubuntu下安装maven插件打开Eclipse点击Help -> Install Ne ...

  8. 安装ecb

    mac emacs上安装ecb,通过elpa折腾得要死,死活无法使用. 解决办法:下载https://github.com/alexott/ecb,添加路径,(require 'ecb),直接ok.

  9. python接口自动化22-签名(signature)鉴权(authentication)之加密(HEX、MD5、HMAC-SHA256)

    前言 开放的接口为了避免被别人乱调用,浪费服务器资源,这就涉及到签名(Signature)加密了 API 使用签名方法(Signature)对接口进行鉴权(Authentication).每一次请求都 ...

  10. hdu 1576 A/B(拓展欧几里得)

    A/B Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...