孙飞学习

您所在的位置:网站首页 sql中完整性约束分为三类 孙飞学习

孙飞学习

2023-04-19 21:46| 来源: 网络整理| 查看: 265

孙飞学习--MySql #1. 数据类型 #1.1整数以及浮点数 #

age 年龄不会超过127 所以考虑使用``TINYINT 这个类型的范围为-128-127`;

又因为年龄无符号 就是不会出现``负数 我们可以使用无符号的TINYINT`;

综上所以 在MySql 里面定义年龄我们就可以

sqlage TINYINT UNSIGNED (范围为 0-127) 1

score 成绩 假设成绩的取值范围为0-100,但是考虑到也有 60.0 , 75.5, 85.0这样的数值存在;

我们就可以考虑使用double类型来存储这个变量;

在SQL语句中 double 有两个参数 ,

第一个: 数值的最长长度 score一般是4位 100.0第二个: 允许整数后几个数值存在 score 一般是1位小数sqlscore DOUBLE(4,1) 11.2字符串类型 #

varchar : 变长字符串 变量存储一个字符 就占一个字符 ; 最多存储10个字符 性能较差

sqlvarchar(10) 1

char: 定长字符串 变量存储一个字符 也占10 个字符大小; 性能好'

sqlchat(10) 11.3日期类型 #

31DATE 3 范围1000-01-01 至 9999-12-31 格式 YYYY-MM-DD 描述 日期值

sqlbirthday date; 12. 数据类型 课堂练习 #

根据需求创建表(设计的数据类型、长度)

设计一张员工信息表,要求如下:

编号(纯数字)员工工号(字符串类型,长度不超过10位)员工姓名(字符串类型,长度不超过10位)性别 (男/女,存储一个汉字)年龄(正常人年龄,不可能存储负数)身份证号(工代身份证号均为18位,身份证中有X这样的字符)入职时间(取值年月日即可)sqlcreate table emp ( id INT, /*编号 */ gonghao varchar(10) ,/*员工工号*/ name varchart(10), /*姓名*/ gender char(1) , /* 性别 */ age TINYINT UNSIGNED, /* 年龄 */ peoID char(18), /*身份证号码*/ joinTime DATE , /* 入职时间 */ ) comment '员工表'; 123456789103. 添加&修改&删除 #

添加字段

alter table 表名 add 字段名 类型(长度) [comment 注释 ] [约束] ;

sql/* 添加字段 */ alter table emp add nickName varchar(10) comment '昵称'; 12

修改数据类型

alter table 表名 modify 字段名 新数据类型(长度)

sql/* 将 emp 表的 nickName 字段 修改为 username , 类型位 varchart(30)*/ alter table emp change nickName username varchar(30) comment ' 新昵称'; 12

修改字段名 以及其数据类型

alter table 表名 change 旧字段名 新字段名 类型(长度) [comment 注释] [ 约束 ];

sqlalter table emp change nickName username varchar(30) comment ' 新昵称'; 1

删除字段

alter table 表名 DROP 字段名;

将emp表的字段username 这个字段 进行删除

sqlalter table emp drop username; 1

修改表名

alter table 表名 rename to 新表名

sql/* 下面两种方式 都可以重命名表*/ alter goodLists rename to things; alter goodLists rename things; 123

to 可加可不加

删除表

drop table [if exists] 表名;

if exists : 如果表存在就删除;不存在我也不不报错 (常用)

sqldrop table if exists things 1

truncate table 表名

删除指定表,并且重新创建该表 只有表结构 没有数据 (不常用)

sqltruncate table things 14. 总结 #

DDL- 数据库操作

查看数据库 : show databases;创建数据库 : create database 数据库名;删除数据库: drop database 数据库名; 可选参数 if exits查看当前是在哪个数据库当中: select database();

DML- 表操作

查看当前数据库有哪些表 : show tables;创建表:create table 表名 (字段 字段类型,字段,字段类型);可加参数 comment '注释'切换数据库: use 数据库名字;查看表详细 : desc 表名字;查看表的建表语句 : show create table 表名;删除表 : drop table 表名; 图像化界面DataGrip 的 下载 安装 使用 #

下载地址:

DataGrip:由 JetBrains 开发的数据库和 SQL 跨平台 IDE

安装好 是免费使用30天 我在pdd 花5 块 破解了一个 不想太麻烦了

DML #DML- 添加数据 #给指定字段添加数据(顺序一一对应)sqlinsert into 表名 (字段名1 , 字段名 2, ...) values (值1,值2) 1给全部字段添加数据sqlinset into 表名 values ( 值1, 值2 ) 1批量添加数据sqlinsert into 表名 (字段名1 , 字段名 2, ...) values (值1,值2...),(值1,值2 ...) -- 两种方式都可以 但一种更加直观; inset into 表名 values ( 值1, 值2 ),(值1, 值2)... 12插入数据时,指定的字段顺序需要与值的顺序是一一对应的。字符串和日期型数据应该包含在引号中。插入的数据大小,应该在字段的规定范围内。1.pngDML- 修改数据 #

DMl- 修改数据

sqlupdate 表名 set 字段名去 = 值1, 字段名2 = 值 2,...[where 条件]; 1

tips:

修改语句的条件可以有,也可以没有,如果没有条件,则会修改整张表的所有数据;

DML- 删除数据 #

dml- 删除数据

sqldelete from 表名 where 条件 1

tips:

修改语句的条件可以有,也可以没有,如果没有条件,则会修改整张表的所有数据;

2.png

DQL #DQL- 编写顺序 #sqlSELECT 字段列表 select FROM 表名列表 from WHERE 条件列表 where GROUP BY 分组字段列表 group by HAVING 分组后条件列表 having ORDER BY 排序字段列表 order by LIMIT 分页参数 limit 12345678910111213DQL- 基础查询 #

SELECT 字段列表

FROM 表名列表

WHERE 条件列表

GROUP BY 分组字段列表

HAVING 分组后条件列表

ORDER BY 排序字段列表

LIMIT 分页参数

查询指定多个字段sqlselect 字段1,字段2,字段3,.... from 表名 1查询返回所有字段sqlselect * from 表名设置别名 1设置别名sqlselect 字段1 [ as 别名1],字段2[as 别名2]... from 表名 1

as可以省略不写

去除重复数据sqlselect distinct 字段列表 from 表名 1

3.png

DQL- 条件查询 #sql-- 查询 年龄 age > 18 的员工有哪些 select * from employee where age >18; -- 查询 年龄 age < 18 的员工有哪些 select * from employee where age = 18 的员工有哪些 select * from employee where age >= 18; -- 查询 年龄 age 不为null 的员工有哪些 select * from employee where age is not null; -- 查询年龄 age 不等于 30 的员工有哪些 select * from employee where age != 30; select * from employee where age 30; -- 查询 年龄在 20 - 25 之间的 员工有哪些 select * from employee where age >= 20 && age = 20 and age 聚合函数 > having 。支持多字段分组, 具体语法为 : group by columnA,columnB

4. 练习题

6.png

DQL- 排序查询 #

1. 语法😍

sqlselect 字段名 from 表名 order by 字段 排序方式(asc,desc); 1

2. 排序方式😉

​ asc: 正序 || 升序;​ desc: 倒序 || 降序;

3. 注意事项:😦

如果是升序, 可以不指定排序方式ASC ;如果是多字段排序,当第一个字段值相同时,才会根据第二个字段进行排序 ;

4. 练习题😎

7.png

DQL- 分页查询 #

1. 语法😍

sqlSELECT 字段列表 FROM 表名 LIMIT 起始索引, 查询记录数 ; 1

2. 注意事项:😦

起始索引从0开始,起始索引 = (查询页码 - 1)* 每页显示记录数。分页查询是数据库的方言,不同的数据库有不同的实现,MySQL中是LIMIT。如果查询的是第一页数据,起始索引可以省略,直接简写为 limit 10。

3. 练习题😎

8.png

DQL 语句 练习 #习题练习 #

查询年龄为20,21,22,23岁的员工信息

sqlselect * from employee where age in (20,21,23); 1

查询性别为 男 ,并且年龄在 20-40 岁(含)以内的 姓名为三个字 的员工。

sqlselect * from employee where gender = "男" and (age between 20 and 40) and name like '___'; 1

统计员工表中, 年龄小于60岁的 , 男性员工和女性员工的人数。

sqlselect gender,count(*) from employee where age = 20 && age 0 && age


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3