04_mysq数据表的创建(CREATE)、插入(INSERT INTO)、查询(SELECT)、更新(UPDATE)、修改(ALTER)、删除(DELETE)、截断(TRUNCATE)

数据表查询

  1、创建 --创建数据库、表、索引、视图

    CERATE [table table_name | index index_name | view view_name] ;

    ①cerate table stu_tb(

      id int,

      name varchar(20),

      class char(20),

      PRIMARY KEY(id)

      ); --创建数据表

      image

  2、插入 --用于在指定表中插入记录

    INSERT INTO table_name (col1, col2, ....) VALUES (val1, val2,....);

    ① insert into stu_tb (id, name, class) values (1, '张三', '大班’);  --单行插入

     image

    ② INSERT INTO stu_tb (id,  name, class)  VALUES (2, '李四', '中班'),(3, '王五', '大班'); -- 多行插入

     image

    ③INSERT INOT tb_name1 SELECT col1,col2... FROM tb_name2 [WHERE condition]  [ORDER BY col] [LIMIT N] ; --f选择tb2数据复制插入tb1

 

  3、查询--用于查询mysql数据表中数据

    SELECT col1, col2,...

    FROM tabble_name

    [WHERE condition] --用于指定过滤条件,只返回符合条件的行(WHERE 子句中,可以使用各种条件运算符(如 =<><=>=!=),逻辑运算符(如 ANDORNOT),以及通配符(如 %))

    [ORDER BY col_name [ASC | DESC]] --用于指定结果集的排序顺序(默认ASC升序)

    [LIMIT number];

    ① SELECT * FROM stu_tb; -- 查询所以列数据

    image

   ② SELECT * FROM stu_tb LIMIT 2; --限制查询前2行数据

    image  

   ③ SELECT name, class FROM stu_tb WHERE age=6; --查询age=6的名字和班级

    image

   ④SELECT  * FROM stu_tb ORDER BY age; --对age升序查询

    image

   ⑤ SELECT * FROM stu_tb WHERE age >5 AND class = 'big'; --多条件查询    

    image

   ⑥ SELECT * FROM stu_tb WHERE name LIKE 'z%' ; --模糊查询

    image

   ⑦ SELECT COUNT(*) FROM stu_tb;--聚合查询(统计行数)

    image

  ⑧ SELECT COUNT(*)  age_cnt FROM stu_tb WHERE age=5; --聚合查询并设置WHERE条件(统计年龄5岁的学生个数)

    image

  ⑨ SELECT AVG(age) age_avg FROM stu_tb WHERE class='mid'--聚合AVG()函数统计中班的平均年龄,还可以使用MAX()、MIN()、SUM()等函数

    image

  10 :SELECT class,COUNT(*)  cnt FROM stu_tb GRUOP BY class; --使用聚合分组功能统计中、大班的学生人数(先分组再统计个数)  

    image

   11:SELECT  class, age, COUNT(*) FROM stu_tb GROUP BY class,age;--多条件聚合分组查询(按年级、年龄分组统计)或者用在班级男女统计

    image

  12:SELECT * FROM stu_tb, cust_copy; --多表查询,返回列数等于两表之和,行数为两表乘积;

    image

   13:select s.id sid, s.name sname, c.id cid, c.name cname FROM stu_tb s,cust_copy c;--多表查询,使用表名.列名这样的方式来引用列和设置别名

    image

    image

   14:JOIN 连接查询

 

  3、更新--用于修改指定表中的现有记录(修改表数据)

    UPDATE table_name SET col = val, col1=val1,....WHERE condition;

    ① UPDATE stu_tb SET class = '中班' WHERE id = 1;

    image

  4、修改 --ALTER 查询 可用于在现有表中添加、删除或修改列(修改表结构)

    ①ALTER TABLE table_name  [ADD | DROP] COLUMN column_name datatype; --添加或删除列

      ALTER TABLE stu_tb ADD COLUMN age int;

    image

    ②ALTER TABLE tb_name CHANGE COLUMN old_col_name new_col_name datatype; --修改列名

      ALTER  TABLE stu_tb CHANGE COLUMN id id_sn INT AUTO_INCREMENT;

    image

    ③ ALTER TABLE tb_name MODIFY COLUMN col_name new_datatype; --修改列类型

       ALTER TABLE stu_tb MODIFY COLUMN class VARCHAR(10);

    image

    ④ ALTER  TABLE tb_name ADD PRIMARY KEY (col_name); -- 添加列为主键

      ALTER TABLE stu_tb ADD PRIMARY KEY (id);

    ⑤ALTER TABLE tb_name RENAME TO tb_name_new;

 

  5、删除--用于删除指定表中的现有记录

     DELETE FROM table_name WHERE condition;

    ① delete from stu_tb where id = 1;

    image

 

  6、替换--用于替换表中现有记录,不要删除,INSERT需要先查找,存在需要先删除在更新

    REPLACE INTO tb_name (col1, col2,...) VALUES (val1,val2,...);

  

   7、截断表--用于删除所有记录,但不能删除表本身

    TRUNCATE [TABLE] table_name;

    ① TRUNACTE TABLE stu_tb; --清空表

    image

 

  

 

    

posted @ 2025-12-16 14:41  zbl1118  阅读(5)  评论(0)    收藏  举报