0


MySQL---关于数据表的基本语句及操作



一、MySQL中的数据类型

  • 整型
    分类存储空间TINYINT8SMALLINT16MEDIUMINT24INT32BIGINT64

  • 浮点型 :

              FLOAT 和 DOUBLE 为浮点类型,
    
              DECIMAL 为高精度小数类型。 
    
  • 字符串:
    CHAR(n)n表示长度,固定长度的字符串,不会随数据大小而变化VARCHAR(n)n表示最大长度,变长类型能够节省空间,当实际数据小于 n 时,会自动释放多余长度

  • 时间和日期 :
    DATE年月日TIME时分秒DATETIME年月日时分秒TIMESTAMP时间戳(年月日时分秒毫秒)

    二、MySQL数据表的创建

CREATE TABLE 表名(

内容,

)

  • primary key 用于定义主键列
  • not null 表示当前字段不允许为 null
  • auto_increment:设置自动增长数字,自动增长只能为 int 类型的列设置
  • 一个表中只能存在一个自动增长列而且为主键列

例子:学生表

CREATE table tbl_student1(
stu_Id int PRIMARY KEY NOT NULL auto_increment,
stu_Name VARCHAR(20) NOT NULL,
stu_sex CHAR(1) NOT NULL,
stu_age INT NOT NULL,
stu_address VARCHAR(200) NOT NULL
)

结果:

三、MySQL对表的一些操作

1.向表中添加数据

格式1:INSERT INTO 表名 VALUES(要添加的值);【也可以一次性添加多条数据,用,隔开,例子 中后面三个】

例子:

INSERT INTO tbl_student VALUES(DEFAULT,"乔布斯","男",66,"USA加州");
INSERT INTO tbl_student VALUES(DEFAULT,"马斯克","男",55,"USA纽约");
INSERT INTO tbl_student VALUES(DEFAULT,"理想","男",54,"北京"),(DEFAULT,"蒂姆·库克","男",56,"UAS加州");
INSERT INTO tbl_student VALUES(DEFAULT,"雷军","男",22,"北京"),(DEFAULT,"任正非","男",66,"中国北京");
INSERT INTO tbl_student VALUES(DEFAULT,"放逐之刃","女",23,"德玛西亚"),(DEFAULT,"保时捷","男",56,"斯图加特");

格式2:表中部分列添加数据:INSERT INTO 表名(列名(不添加数据的列分为以下几种情况(1.自 增列,2.存在默认值的列,3.允许为空的列))) values(要添加的值);

例子:

INSERT INTO tbl_student(stu_Name,stu_sex,stu_age,stu_address)VALUES("费迪南德","男",99,"德国斯图加特");

以上几种的运行的结果:

表中的名字和地址纯属学习,没有其他意思。

2.修改表中的数据

格式:UPDATE 表名 SET 列名 1=新值 1,列名 2=新值 2,... WHERE 更新条件

UPDATE tbl_student1 SET stu_address="深圳" WHERE stu_Id= 2;  -- 把id为2的学生地址修改成深圳
UPDATE tbl_student1 SET stu_age=16,stu_sex="女" WHERE stu_Id = 3; -- 修改id为3学生的年龄和性别
UPDATE tbl_student1 SET stu_age=stu_age+20,stu_sex="女" WHERE stu_Id = 4 or stu_Id = 5;  -- 修改年龄为4和5的学生的性别和年龄

结果:

3.删除表中的数据

**格式: **DELETE FROM 表名 WHERE 条件 根据条件删除某些行数据

DELETE FROM tbl_student1 WHERE stu_Id = 4;  -- 删除id为4的学生
DELETE FROM tbl_student1 WHERE stu_age>80 AND stu_address = "德国斯图加特";  -- 删除年龄大于80和地址为德国斯图加特的同学

结果:

4.查询表中的数据

WHERE后面加限定条件

  • SELECT *FROM 表名; -- 查询表中所有的列和行
  • SELECT 列名1,列名2,... FROM 表名; -- 查询表中指定的列
  • SELECT 列名1 AS "别名1",列名2 AS "别名2",... FROM 表名; --使用别名进行查询(别名,为列名或表名重新起一个名字<外号、乳名>)
SELECT * FROM tbl_student1 WHERE stu_Id=7;  -- 查询学号为7的学生
SELECT * FROM tbl_student1 WHERE stu_age%2=0;  -- 查询年龄为偶数的学生
SELECT * FROM tbl_student1 WHERE stu_age%2!=0; -- 查询年龄为奇数的学生
SELECT * FROM tbl_student1 WHERE stu_age%2<>0; -- 查询年龄为奇数的学生
SELECT * FROM tbl_student1 WHERE !(stu_age%2=0);  -- 查询年龄为奇数的学生
SELECT * FROM tbl_student1 WHERE NOT stu_age%2=0;  -- 查询年龄为奇数的学生
SELECT *FROM tbl_student1 WHERE stu_age>=20 AND stu_age<=30; --     查询年龄在[20,30]之间的人
SELECT * FROM tbl_student1 WHERE stu_age BETWEEN 20 AND 30; --     查询年龄在[20,30]之间的人
SELECT * FROM tbl_student1 WHERE stu_age>=22 AND stu_sex="男";     -- 查询年龄大于等于22的男生
SELECT * FROM tbl_student1 WHERE stu_Name="乔布斯";  -- 查询名字为乔布斯的学生。(精确查询)

4.1模糊查询:

SELECT * FROM tbl_student1 WHERE stu_Name LIKE "%德%";  -- 查询名字中含有德的学生(模糊查询)
SELECT * FROM tbl_student1 WHERE stu_Name LIKE"_军";  -- 查询姓名由两个字组成,加强结尾学生信息
SELECT * FROM tbl_student1 WHERE stu_Name LIKE"_布_";  -- 查询姓名由三个字组成,加强第二个字学生信息

4.2计数查询(求和、平均值、最大最小值):

SELECT COUNT(stu_Id) FROM tbl_student1;  -- 如何统计所有行数据,则建议使用主键统计以提高效率
SELECT SUM(stu_age) FROM tbl_student1;  -- 获取所有学生的年龄和
SELECT SUM(stu_age) FROM tbl_student1 WHERE stu_sex="男";  -- 获取所有男学生的年龄和
SELECT AVG(stu_age) FROM tbl_student1;  -- 获取所有学生年龄的平均值
SELECT MAX(stu_age) FROM tbl_student1;  -- 获取所有学生年龄的最大值
SELECT MIN(stu_age) FROM tbl_student1;  -- 获取所有学生年龄的最小值

**4.3排序查询: **

SELECT * FROM tbl_student1 ORDER BY stu_age DESC  -- 将学生按照年龄降序排列
SELECT * FROM tbl_student1 ORDER BY stu_age ASC  -- 将学生按照年龄升序排列
SELECT * FROM tbl_student1 ORDER BY stu_age DESC,stu_Id DESC;  -- 将学生首先按照年龄降序排列,当年龄相同时按照学号
SELECT * FROM tbl_student1 WHERE stu_sex="男" ORDER BY stu_age DESC -- 将所有男生按照年龄降序排列    

4.4获取最后一次添加的自增主键 :

SELECT LAST_INSERT_ID(); 

**4.5分组查询: **

SELECT stu_sex,COUNT(*) 人数 FROM tbl_student1 GROUP BY stu_sex; -- 根据性别分组并计数
SELECT stu_age,COUNT(*) 人数 FROM tbl_student1 GROUP BY stu_age; -- 根据性别分组并计数
SELECT stu_age,COUNT(*) 人数 FROM tbl_student1 GROUP BY stu_age HAVING stu_age>30; -- 把年龄大于30岁的人分组并计数

4.6分页查询:

SELECT * FROM tbl_student LIMIT 3,3   -- 第一个参数限制起始行数(不包括第一个参数),第二个参数查询的总行数
SELECT * from tbl_student WHERE stu_id=6 OR stu_id=8 OR stu_id=10 -- 使用 OR 或运算  查询学号为6,8,10的学生
SELECT * FROM tbl_student WHERE stu_id in(6,8,10) -- 使用 IN 运算实现   查询学号为6,8,10的学生

ps:关于多表的查询在下一个博客中。写在一起博客内容太多了 。


标签: 开发语言 java php

本文转载自: https://blog.csdn.net/weixin_55166132/article/details/124174467
版权归原作者 不爱健身的数学子弟不是好程序员 所有, 如有侵权,请联系我们删除。

“MySQL---关于数据表的基本语句及操作”的评论:

还没有评论