mysql Day1
创建表格
- 创建表格的时候一定要指定主键
- auto_increment 加上了以后主键会自动自增 方便我们管理表格数据
- default null表示默认为空
- 字段加上not null之后 该字段就不能够为空值,不加或者写上null 可以部传值为空
在输入sql代码的时候,一定要时刻注意分号,sql语言和JS不同,它一定要有分号,否则就很容易出错。
删除表格
- drop table if exists class 表示的是如果存在,删除class数据表
- 在做删除数据表的时候,一定要加上if exists这个关键字,因为我们呢一般是在后端写这个代码,可能不是很清楚数据库中是否真的有这个表格,如果没有这个表格,这句代码也不会报错。
添加数据
- 主要的两种添加方式,最好是使用第二种方式会比较好,毕竟代码量会更少一点
- 在添加数据的时候,如果主键或这其他字段是有自动增加的属性的时候,就不用往这个字段中添加数据了,系统会自动的往这个字段中添加数据。
复制表格
复制表格的这个操作并不是很经常的会使用到,但是我i们得要到会用的程度,其实使用会更加频繁一点的是复制结构
create table a like class 这里的like我们可以理解成是像,像class一样的结构
- 查询数据是我们呢用到的最多的sql语句之一了,到后面还有多表查询,单表查询还是属于非常简单的一种操作。
特殊查询
- 如果查询的数据筛选的条件比较多且是并列的关系,那么需要使用关键字and连接
- 如果要使用模糊查询,如查询包含某特殊字符的,使用 like “%字符串%” 这样的形式即可,如:select * from class where cname like “%js%” and id != 2;表示查询所有cname包含js且id不等于2的数据。
查询关联词
like查询
- like表示的是包含的意思,当我们要取不包含的某个数据的时候只需要在like关键字前面加上not即可,not like表示的就是不包含
- %d%表示的是包含字符串d %d表示的是以字符串d结尾 d%表示的是以字符串d开头
distinct去除重复项
- 当我们用以上代码查询的时候,如果没有加上关键字distinct会有重复项,我们只是想知道哪些班级有被选,所以重复是没有意义的 所以这时候使用distinct能够去掉重复项。
范围查询
- 范围查询的语法有三种,使用和js类似的符号,between and 和 in集合都是意义的
- in 集合是闭集合 如(20,22)表示的是20到22,是包含20和22的
or或查询
or 和 and是对立的关系,or只需要两边有一个满足即可,and要两个都满足。
sql对null值的处理
- 因为在sql的理解中null不是一个值,所以是没有办法用 = 来进行比较判断的,所以要判断一个值是否为null要使用 is null来判断
- 判断不是null 只要要前面家伙是那个一个not即可 is not null表示不是空值
排序的处理
- 排序我们需要知道,需要引用关键字order by,
- asc表示从大到小排列
- desc表示从小到大排列
筛选数据
- 筛选数据运用到的是limit关键字
- 这个关键字可以传递两个参数,第一个参数表示从哪个索引位置开始筛选,第二个参数表示的是筛选几个。
数据更新和删除
- 在数据的更新和删除这两个操作中,我们要铭记,一定要加上where条件,否则大量的数据就会被我们呢所修改
- 当我们where条件不是主键的时候,大部分编译器会抛出一个错误,这时候我们要加这段代码SET SQL_SAFE_UPDATES = 0;来解除安全模式
update更新操作
删除操作
今天sql的基础知识复习完了,很熟徐,因为大一下的时候都学习过~~,现在重温感觉效率蛮高的
撒花!!~~~