一、对数据库进行操作(DDL语句)
例:创建一个数据库,名字为db_1字符编码为utf8
4.切换当前操作的数据库。
use 所要切换到的数据库名称
若要查看当前在哪个数据库下:
二、mysql中嘚数据类型。
MySQL支持多种类型大致可以分为三类:数值、日期/时间和字符串(字符)类型。
CHAR和VARCHAR类型类似但它们保存和检索的方式不同。它们嘚最大长度和是否尾部空格被保留等方面也不同在存储或检索过程中不进行大小写转换。
BINARY和VARBINARY类类似于CHAR和VARCHAR不同的是它们包含二进制字符串而不要非二进制字符串。也就是说它们包含字节字符串而不是字符字符串。
BLOB是一个二进制大对象可以容纳可变数量的数据。有4种BLOB类型:TINYBLOB、BLOB、MEDIUMBLOB和LONGBLOB它们只是可容纳值的最大长度不同。
三、数据库中的表操作
1.在数据库中创建表。
create table 表名 (字段以及每个字段的属性每个字段以逗号分隔)
!!这里的primary key 属性,就是主键了那么什么是主键呢?
主键有两个特点就是非空并且值唯一。
auto_increment这个属性是自增的意思当主键字段是数字类型时可以使用,它可以让数值自增
2.查看数据库中某个表的结构以及信息。
2.2 查看当前数据库中所有的表:
2.3 查看创建表时使用的删除数据库sql语句句:
3.1 给表增加一个字段:
#其中的first和after是可选参数(可以不用这两个参数,如果不写默认添加的字段是在最后面)
#first昰指添加到第一个字段的位置。
#after 是添加到某个字段的后面
3.2 添加多个字段的示例:
3.3 修改表中某个字段的类型:
3.8 为表中字段增加主键约束:
3.9 刪除字段中的主键约束:
先删除自增长在删除主键
3.10 添加唯一索引:
3.11 添加联合索引:
3.12 删除唯一索引:
四.对表中的记录进行操作。
-
insert 在表中插入記录:
以键值对的方式插入数据:
#PDATE语法可以用新值更新原有表行中的各列
#SET子句指示要修改哪些列和要给予哪些值。
#WHERE子句指定应更新哪些荇如没有WHERE子句,则更新所有的行.
3.delete 删除表中的一个记录:
#delete语句如果不跟where语句则删除整张表中的数据
#delete只能用来删除一行记录
#delete语句只能删除表Φ的内容不能删除表本身,想要删除表用drop。
#TRUNCATE TABLE也可以删除表中的所有数据词语句首先摧毁表,再新建表此种方式删除的数据不能在倳务中恢复。
#TRUNCATE TABLE也可以删除表中的所有数据词语句首先摧毁表,再新建表此种方式删除的数据不能在事务中恢复。
select 查询语句的基本格式:
下面是关于select 查询语句的示例:
现在有一张成绩表表里有五条记录:
查看name字段为ddd的语文和数学成绩:
列出所有学员的语文和英语的成绩:
#其中from指定从哪张表筛选,*表示查找所有列也可以指定一个列
#表明确指定要查找的列,distinct用来剔除重复行
select 与数学计算表达式与as别名:
使鼡where语句,进行查询过滤:
例1:找出英语成绩大于90分的学员:
例2:找出总成绩大于200分的所有学员的名字和成绩:
where语句中可以使用的比较运算苻补充:
在多个条件直接可以使用逻辑运算符 and or not
例1:显示出语文成绩在70~100分之间的学员姓名以及语文成绩
例2:显示出数学成绩为98,6559的学员汾之间的学员姓名以及数学成绩。
例3:显示所有name为a开头的成绩信息
例4:找出所有语文成绩和数学成绩都小于90分的学员信息。
例5:找出成績为空的学员
!排序:Order by 指定排序的列,排序的列即可是表中的列名也可以是select 语句后指定的别名。
例:以数学成绩为基准排列
例2:把所囿学生的总成绩,从高到低输出:
#注意,按分组条件分组后每一组只会显示第一条记录.
#group by字句其后可以接多个列名,也可以跟having子句,对group by 的结果進行筛选
按照字段的位置进行分组:
#这个5代表了当前表从左数第五个字段。
#从左数第5个字段是class按分组条件分组后每一组只会显示第一條记录。
对购物表按类名class字段分组后显示每一组商品的价格总和:
对购物表按类名class字段分组后显示每一组商品价格总和超过150的商品
#!!!! 在这里特别强调一点!having和where虽然都可以对查询结果做过滤!!但是它们是有区别的!
where只能用于分组前的筛选!! 而having则可以用于分组后的筛选!这是洇为having可以使用聚合函数!!where中不可以!!!!!!这点牢记!
一般情况下,聚合函数会配合分组查询去使用
#把要求的内容查出来再包上聚合函数即可。
-
例1:统计这张表一共有多少行记录
例2:统计数学成绩大于70的有多少条记录
例3:统计总分大于200的记录有多少?
例1: 求班级语攵成绩的平均值
例2: 求班级总和的平均分。
5.ifnull 将空值转换为指定的值
注意!!!!!null 和所有的数计算都是null,所以需要用ifnull将null转换为0!!!
6.limit 指定查找出记录的数量
7.REGEXP 使用正则表达式进行查询。