MySQL里男或女 mysql性别 |
您所在的位置:网站首页 › sql设置性别为男或女 › MySQL里男或女 mysql性别 |
1.数据的查询 首先看一下表的内容 1.1 select count(1) from 表名; 显示出表中有多少个数据 1.2 group by 关键字分组 select sex from person group by sex 按照年龄来分组 select sex as "性别",count(1) as "人数" from person group by sex; 模糊查询,大量的搜索的时候使用 like 后面跟 %或者 _ 语法格式 select * from person where 字段 like %; “小_”这个_是一个占位符,只要前面一个字大后面这个字就会模糊匹配。 % 不管你有几个字符,都可以匹配到 select * from person where name like "小%"; 分组是用来统计的,一定要记住一般和count(1)一块使用 按照性别进行分组,找出来性别个数大于2 的性别 分组以后,还有条件,这个是时候用having select sex,count(1) from person group by sex having count(1) > 2; default 默认值 表示当不传入数据的时候,这个数据就为默认值的数据 not null 表示不为空,插入数据的时候必须要加的 unique关键字 primary key 在以后设计表的时候,用于标识唯一数据表的一个字段,说明这个字段和特殊,很有用。 为了找到这行数据而存在的,在数据库设计中,一般会使用一个和业务逻辑无关系的字段,设置为主键。 假如有学生的表 可以看到有许多学生在同一所学校,造成了一定的数据冗余,不利于查找 这时候我们可以再设置一个表sch专门放置学校的数据 用这些学校的编号可以替代学生表中学校的名字了,不过咱们需要在建表的时候将他们进行关联,所以最好是再建一张表,建好以后可以看到关联上了至于(怎么关联的可以往下看级联操作),不过可以发现当我们需要删除一个学校的时候,必须把在这个学校的学生都删除了,这个学校才可以删除掉,十分麻烦,也不符合我们日常生活的逻辑 如果添加了外键的约束,会有以下特征: #1.先添加主表【部门表】,再添加从表【员工表】 #2.先删除从表【员工表】,再删除主表【部门表】 #3.先修改从表【员工表】,再修改主表【部门表】 #4.查询和外键约束没有半毛线关系。 所以就出现了级联操作 首先创建学校表 create table sch ( id int primary key auto_increment, sch_name varchar(32) not null ); 在创建学生表 create table stu ( //创建学生表 id int primary key auto_increment, //设置主键 stu_name varchar(32) not null, // 设置学生名字 schID int not null, 设置学校id regTime timestamp default current_timestamp, 设置时间戳constraint fk_stu_sch foreign key(schID) references sch(id) 设置外键关联 on delete cascade 设置删除的级联操作 on update cascade 设置修改的级联操作 ); 在学校的表中插入数据
在学生表中插入数据 这时候修改学校表中的幸福路小学(编号为3)编号改为4,再查看学生表中是否编号也改为4了 接着咱们删除 东风路小学(编号为2),再查看学生表中的数据 可以看到编号为2的也都删除了 4.联合查询select a.id,a.stu_name,b.sch_name,a.regTime from stu a,sch b //起别名 stu 为a sch为b where a.schID = b.id; //约束条件 对应数据
也可以同时对字段进行起别名 语法格式:select 表名.字段 from 表名 inner join 表名 on 约束条件; 左外连接 语法格式:select * from 表名1 left outer join 表名2 on 约束条件 左边的表(表1)要全部显示,右边表去匹配左边表,如果没有匹配到就显示为null 左外连接,以sch这个表为主,如果左边表去匹配右边表, 但是右边表里面没有左边表的约束的数据,那么右边表补上null
4.2.2右外连接查询 右外连接 语法格式:select * from 表名1 right outer join 表名2 on 约束条件 右边的表(表2)要全部显示,左边表去匹配右边表,如果没有匹配到就显示为null
4.3一对多或者多对一查询 一个学生对应着一个学校 这个是一对一的关系
一个学校对应着多个学生 这就是一对多的关系 课程和学生的关系,多个学生可以选择多个课程选修 首先创建三个表 学生表 student 课程表 class 中介表 s_c 接着给这三个表中插入数据 插入后分别为 student表: class表: s_c表: 接着咱们可以通过内连接进行查询 (1)查询所有的学生选择的课程
(2)查询张三选择的课程
(3)查询选择音乐鉴赏的同学 这可一简单理解为三张表进行关联,假如四张表进行关联查询的话和这个思想是一样的,一步一步往下查,把握住规律,无论怎么扩展都可以写出来 4.5sql权限管理一个项目也有很多数据表,但是开发的时候分模块开发, 一个程序员开发的时候只需要用到表有三张,项目经理就给你分配三个权限,你只能对这三张表进行增删改查。甚至有的人,不会给你分配增删改的权限。为了保证数据的安全性!! 4.5.1创建一个用户create user 用户名 identified by 密码 4.5.2进行授权 grant all on 数据库的名字.表的名字 to 用户名 all :写select 或者 update insert delete 都可以的 all的话就是所有的增删改查的权限都给你
使用创建好的用户名和密码进行登录,并查看数据库和表格,可以看到只有root用户给你权限的数据库和此数据库中的三张表,如果想要全部表的权限可以 (数据库名字.*)
|
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |