孙飞学习 |
您所在的位置:网站首页 › sql中完整性约束分为三类 › 孙飞学习 |
孙飞学习--MySql #1. 数据类型 #1.1整数以及浮点数 # age 年龄不会超过127 所以考虑使用``TINYINT 这个类型的范围为-128-127`; 又因为年龄无符号 就是不会出现``负数 我们可以使用无符号的TINYINT`; 综上所以 在MySql 里面定义年龄我们就可以 sqlage TINYINT UNSIGNED (范围为 0-127) 1score 成绩 假设成绩的取值范围为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) 1char: 定长字符串 变量存储一个字符 也占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; 123to 可加可不加 删除表 drop table [if exists] 表名; if exists : 如果表存在就删除;不存在我也不不报错 (常用) sqldrop table if exists things 1truncate 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插入数据时,指定的字段顺序需要与值的顺序是一一对应的。字符串和日期型数据应该包含在引号中。插入的数据大小,应该在字段的规定范围内。DMl- 修改数据 sqlupdate 表名 set 字段名去 = 值1, 字段名2 = 值 2,...[where 条件]; 1tips: 修改语句的条件可以有,也可以没有,如果没有条件,则会修改整张表的所有数据; DML- 删除数据 #dml- 删除数据 sqldelete from 表名 where 条件 1tips: 修改语句的条件可以有,也可以没有,如果没有条件,则会修改整张表的所有数据; 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 表名 1as可以省略不写 去除重复数据sqlselect distinct 字段列表 from 表名 14. 练习题 1. 语法😍 sqlselect 字段名 from 表名 order by 字段 排序方式(asc,desc); 12. 排序方式😉 asc: 正序 || 升序; desc: 倒序 || 降序;3. 注意事项:😦 如果是升序, 可以不指定排序方式ASC ;如果是多字段排序,当第一个字段值相同时,才会根据第二个字段进行排序 ;4. 练习题😎 1. 语法😍 sqlSELECT 字段列表 FROM 表名 LIMIT 起始索引, 查询记录数 ; 12. 注意事项:😦 起始索引从0开始,起始索引 = (查询页码 - 1)* 每页显示记录数。分页查询是数据库的方言,不同的数据库有不同的实现,MySQL中是LIMIT。如果查询的是第一页数据,起始索引可以省略,直接简写为 limit 10。3. 练习题😎 查询年龄为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 |