MySQL基础语句总结

  1. create

    1. 创建数据库: create database db1

    2. 创建数据库表:create table table1(
      列名1 数据类型1,
      列名2 数据类型2,

      列名n 数据类型n
      );

    3. 创建视图: CREATE VIEW city_country AS SELECT t1.*,t2.country_name FROM city t1,country t2 WHERE t1.cid=t2.id;

    4. 创建存储过程:DELIMITER $
      CREATE PROCEDURE 存储过程名称(参数…)
      BEGIN … END$
      DELIMITER ;

    5. 创建存储函数:DELIMITER $
      CREATE FUNCTION 函数名称([参数 数据类型])
      RETURNS 返回值类型
      BEGIN
      执行的sql语句;
      RETURN 结果;
      END$
      DELIMITER ;

    6. 创建触发器: DELIMITER $
      CREATE TRIGGER 触发器名称 – Trigger:触发器
      BEFORE|AFTER INSERT|UPDATE|DELETE – 之前|之后 插入|更新|删除(触发器类型)
      ON 表名
      [FOR EACH ROW] – 行级触发器
      BEGIN
      触发器要执行的功能;
      END$

       		DELIMITER ;
      
    7. 创建索引: CREATE [UNIQUE|FULLTEXT] INDEX 索引名称
      ON 表名(列名…);

  2. drop

    1. 删除数据库: drop database db1
    2. 删除数据库表: drop table table1
    3. 删除列 : ALTER TABLE product3 DROP 列名;
    4. 删除视图: DROP VIEW view1
    5. 删除存储过程/函数: DROP PROCEDURE/function 存储过程/函数名称;
    6. 删除触发器: DROP TRIGGER 触发器名称;
    7. 删除索引: DROP INDEX 索引名称 ON 表名;
  3. alter

    1. 修改数据库编码: alter database db1 character set utf8

    2. 修改数据库表编码: alter table table1 character set utf8

      修改数据库表 - 添加列: alter table table1 add 列名 数据类型
      修改数据库表 - 修改列类型:alter table table1 modify 列名 新数据类型
      修改数据库表 - 修改列名和类型:alter table table1 change 列名 新列名 新数据类型
      修改数据库表 - 删除列: alter table table1 drop 列名

      修改数据库表 - 添加主键:ALTER TABLE student MODIFY id INT PRIMARY KEY;
      修改数据库表 - 删除主键:ALTER TABLE student DROP PRIMARY KEY;
      修改数据库表 - 添加自动增长:ALTER TABLE student2 MODIFY id INT AUTO_INCREMENT;
      修改数据库表 - 删除自动增长:ALTER TABLE student2 MODIFY id INT;
      修改数据库表 - 添加唯一约束:ALTER TABLE student3 MODIFY tel VARCHAR(20) UNIQUE;
      修改数据库表 - 删除唯一约束:ALTER TABLE student3 DROP INDEX tel;
      修改数据库表 - 添加非空约束:ALTER TABLE student4 MODIFY NAME VARCHAR(20) NOT NULL;
      修改数据库表 - 删除非空约束:ALTER TABLE student4 MODIFY NAME VARCHAR(20);
      修改数据库表 - 添加外键约束:ALTER TABLE orderlist ADD FOREIGN KEY (uid) REFERENCES USER(id);
      修改数据库表 - 删除外键约束:ALTER TABLE orderlist DROP FOREIGN KEY ou_fk1;
      修改数据库表 - 添加索引: ALTER TABLE 表名 ADD INDEX 索引名称(列名); – 普通索引

    3. 修改视图: alter VIEW city_country AS SELECT t1.*,t2.country_name FROM city t1,country t2 WHERE t1.cid=t2.id;

  4. show

    1. 查询所有数据库:show databases

    2. 查询数据库建库语句:show create database db1

    3. 查询所有数据库表和视图:show tables

    4. 查询建表语句: show create table table1

    5. 查询建视图语句: show create view view1

    6. 查看触发器: SHOW TRIGGERS;

    7. 查看索引: SHOW INDEX FROM 表名;

--------------------------------------------以上是数据库结构的操作,以下是数据操作--------------------------------------------------------------------

  1. insert into:插入数据

    1. 默认给全部列添加数据:INSERT INTO product VALUES (3,‘电视’,2999,18,‘2099-06-06’);
    2. 添加指定列数据:INSERT INTO product (id,NAME,price) VALUES (2,‘电脑’,4999);
    3. 添加多条数据: INSERT INTO product (id,NAME,price) VALUES (6,‘微波炉’,499),(7,‘电磁炉’,899);
  2. delete :删除数据 (视图和表的查询语句基本上通用) 删除数据,是整行删除,所以delete后边不用跟列名,直接跟from

    1. DELETE FROM product WHERE NAME=‘微波炉’;
  3. update set更新数据 (视图和表的查询语句基本上通用)

    1. 更新一个数据: UPDATE product SET price=3500 WHERE NAME=‘手机’;
    2. 更新多个数据: UPDATE product SET price=1800,stock=36 WHERE NAME=‘电视’;
  4. select:查询数据 (视图和表的查询语句基本上通用) 查询数据,可以查询某几行的某几列数据,所以select后边需要跟列名

    1. 查询所有数据:SELECT * FROM product; (所有行+所有列)
    2. 查询某几列数据: SELECT NAME,price FROM product; (某几列的所有数据:所有指的是所有行)
    3. 去重查询: SELECT DISTINCT brand FROM product;

    如何查询出某几行数据,通过where关键字来是实现

    1. 范围查询: SELECT * FROM product WHERE price BETWEEN 4000 AND 6000;

    2. IN查询: SELECT * FROM product WHERE stock IN(14,30,23); # 查询满足in中条件的数据

    3. 模糊查询: SELECT * FROM product WHERE name like ‘%华为%’; # %任意多个字,_任意一个字

    4. 空查询: SELECT * FROM product WHERE stock IS NULL;

    5. 聚合查询: SELECT MAX(price) FROM product;
      max,min count,sum,avg

       count:数据行的数量,多少行数据  :数数
       sum: 求和
      
    6. 排序查询: SELECT * FROM product ORDER BY stock ASC; #desc

    7. 分组查询: SELECT brand,SUM(price) FROM product GROUP BY brand; # 分组统计

    8. 分页查询: SELECT * FROM product LIMIT 0,2; (开始索引,查询条数)(公式:开始索引 = (当前页码-1) * 每页显示的条数)

    9. 内连接:SELECT u.name,u.age,o.number FROM user u,orderlist o WHERE u.id=o.uid;

    10. 外连接:SELECT u.name,u.age,o.number FROM user u left/right outer join orderlist o WHERE u.id=o.uid;
      14:子查询:SELECT NAME,age FROM USER WHERE age = (SELECT MAX(age) FROM USER);
      15: 自关联查询: SELECT t1.name, t1.mgr,t2.id,t2.name FROM employee t1 LEFT OUTER JOIN employee t2 ON t1.mgr = t2.id;

    11. 查看存储过程: SELECT * FROM mysql.proc WHERE db=‘数据库名称’;

    总结:
    1. create,drop, alter, show : 是对数据库结构的增删改查,例如:数据库,表,视图,存储过程/函数,触发器,索引
    2. insert into , delete,update set,select:是对数据的增删改查,例如:表数据,视图数据

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值