MySQL新手基础小总结


扩展1:

字节也叫Byte,是计算机基础存储单位,电脑中一个中文占2个字节。
8bit(位)=1Byte(字节)

扩展2:MySQL常用管理命令:

quit; 退出服务器连接
show databases; 显示服务器上所有的数据库
use 数据库名; 进入指定的数据库
show tables; 显示当前数据库中所有的数据表
desc 表名; 描述表中所有的列(表头) 注意事项:所有命令以英文的分号结尾。

扩展3:如何进入并操作数据库?

打开xampp并启动MySQL->进入shell->输入mysql -uroot进入交互模式
->输入mysql -uroot<拖拽数据库文件

1. 数据库列类型:数值型,日期时间型,字符串型

  • 数值型:

○ TINYINT 微整型,占1个字节,范围-128~127 (2的7次方,有一个符号位)
○ SMALLINT 小整型,占2个字节,范围-32768~32767
○ INT 占4个字节 (2的31次方,有一个符号位)
○ BIGINT 大整形,占8个字节
○ FLOAT(M,D) 单精度浮点型,占4个字节,最多3.4e38,M D可省略不写。
○ DOUBLE(M,D) 双精度浮点型,占8个字节,M D可省略。
○ DECIMAL(M,D) 定点小数,不会产生计算误差,M代表总的有效位数,D代表小数点后的有效位数
○ BOOL/BOOLEAN 布尔型,只有两个值TRUE/1,FALSE/0,真正存储的时候自动转成TINYINT,TRUE和FALSE不能加引号

  • 日期时间型

○ DATE 日期型,‘2020-8-20’
○ TIME 时间型,‘20:34:12’
○ DATETIME 日期时间型,‘2020-8-20 20:34:12’

  • 字符串型

○ VARCHAR(M) 变长字符串,M指定长度,不会产生空间浪费,操作速度相对慢
○ CHAR(M) 定长字符串,操作速度快,M最大255
○ TEXT 大型变长字符串

注意:如果xamppde Mysql数据库设置UTF8之后还是中文乱码解决办法
先quit退出交互模式,然后直接在命令行执行chcp 65001

注意:如果xamppde Mysql数据库设置UTF8之后还是中文乱码解决办法先quit退出交互模式,然后直接在命令行执行chcp 65001

2. 列约束:对插入的数据进行验证

  • 主键约束:PRIMARY KEY

列上不允许插入重复的值,一个表中只能有一个主键

  • 非空约束:NOT NULL
  • 唯一约束:UNIQUE

声明的唯一约束的列不允许插入重复的值,允许插入NULL

  • 默认值约束: DEFAULT 数量

在列类型后加入DEFAULT 数量,有两种方式设置默认:在插入的值直接写DEFAULT;
INSERT INTO laptop VALUES(50,‘华为’,DEFAULT);
或者给特定的列给值,设置默认值的不给值INSERT INTO laptop(fid,fname) VALUES (60,‘小米’)

  • 检查约束:CHECK MySQL不支持
  • 外键约束:FOREIGN KEY

在创建的表中再加一行,FOREIGN KEY (familyId) REFERENCES laptop_family(fid); 把familyId作为外键,引用laptop_family的fid列。
外键的取值得到另一个表的主键类中取 FOREIGN KEY(列) REFERENCES 数据表(主键列)

  • 自增:AUTO_INCREMENT 写

在列类型后面,直接赋值为NULL,只适用于整数列的主键列上

3. 简单查询

  • 查询特定的列:SELECT ename,salary FROM emp; (查询员工姓名和和工资表)
  • 查询所有的列:SELECT * FROM emp;
  • 给列起别名: SELECT ename AS 姓名,salary AS 工资 FROM emp; (查询所有的员工姓名和工资,使用汉字别名,AS关键字可以省略)
  • 显示不同的记录合并相同的项:SELECT DISTINCT deptId FROM emp; (查询员工分布在哪些部门)
  • 在查询时执行计算:SELECT 2+3*5;
  • 查询结果集排序:
    SELECT * FROM dept ORDER BY did ASC; (查询所有部门,按照编号从小到大排序 升序)
    SELECT * FROM dept ORDER BY did DESC; 从大到小,降序
  • 条件查询:
    SELECT * FROM emp WHERE eid=5; (查询出编号为5的员工)
  • 模糊条件查询:
    SELECT * FROM emp WHERE ename LIKE ‘%e%’; 查询姓名中有字母e的员工有哪些(%表示e前后面可以有零个或多个字符;_表示可以匹配任意1个字符)
  • 分页查询:start:表示从哪一页数据开始查询;count:表示每页的数据量
    start=(当前的页码-1)*每页的数据量

假设每页显示5条数据:
第一页 SELECT * FROM emp LIMIT 0,5;
第二页 SELECT * FROM emp LIMIT 5,5;

  • 复杂查询(聚合查询,分组查询)

聚合查询实例:使用编号查询所有男员工的数量
SELECT COUNT(eid) FROM emp WHERE sex=1;
COUNT()数量、SUM()总和、AVG()平均值、MAX()最大值、MIN()最小值
分组查询实例:查询出男女员工的最高工资、最低工资 (只能查询当前分组条件)
SELECT sex,MAX(salary),MIN(salary) FROM emp GROUP BY sex;

  • 子查询:一个SQL语句的查询结果作为另一个SQL语句的查询条件
  • 多表查询(内连接,左外连接,右外连接,全连接)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值