mysql相关命令和常用的sql语句

表相关命令

1、ALTER TABLE(修改表)

 ALTER TABLE table_name
    (  ADD    column  datatype   [ NULL | NOT NULL ]  [ CONSTRAINTS ]
       CHANGE  column   datatype   COLUMNS  [ NULL | NOT NULL ]   [ CONSTRAINTS ]
       DROP    column,
       。。。。
    )


  2、CREATE INDEX(在一个或多个列上创建索引

 CREATE INDEX index_name ON tb_name (column [ ASC | DESC ] , …);


  3、CREATE PROCEDURE (创建存储过程)

CREATE PROCEDURE pro([ parameters ])
    BEGIN
    …
    END


  4、CREATE TABLE(创建表)

 CREATE TABLE tb_name(
    column_name  datetype  [ NULL | NOT NULL ]   [ condtraints] ,
    column_name  datetype  [ NULL | NOT NULL ]   [ condtraints] ,
    …
    PRIMARY KEY( column_name )
    )ENGINE=[ InnoDB | MyiSAM ]DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;


  5、CREATE USER(创建用户)

  CREATE USER user_name [ @hostname ] [ IDENTIFIED BY [ PASSWORD ] ‘pass_word’ ];


  6、CREATE VIEW (在一个或多个表上创建视图)

CREATE [ OR REPLACE ] VIEW view_name AS SELECT。。。。。。


  7、DROP(永久删除数据库及对象,如视图、索引等)

 DROP DATEBASE | INDEX | PROCEDURE | TABLE | TRIGGER | USER | VIEW name


  8、INSERT (给表添加行)

      INSERT INTO tb_name [ ( columns,… ) ] VALUES(value1,…);
   
    INSERT INTO tb_name [ ( columns,… ) ]
  


   9、SELECT (检索数据,显示信息)

  SELECT column_name,…FROM tb_name [ WHERE ] [ UNION ] [ RROUP BY ] [ HAVING ] [ ORDER BY ]

存储过程 

1、创建存储过程:

>CREATE PROCEDURE pro(
    >IN num INT,OUT total INT)
    >BEGIN
    >SELECT SUM(score) INTO total FROM tb_name WHERE id=num;
    >END;

***这里的 IN (传递一个值给存储过程),OUT(从存储过程传出一个值),INOUT(对存储过程传入、传出),INTO(保存变量)


2、调用存储过程:

  >CALL pro(13,@total) //这里的存储过程两个变量,一个是IN一个是OUT,这里的OUT也是需要写上的,不写会出错

   >SELECT @total         //这里就可以看到结果了;

         
3、存储过程的其他操作: 

 >SHOW PROCEDURE STATUS;      //显示当期的存储过程
 >DROP PROCEDURE pro;         //删除指定存储过程

视图

1、创建视图

>CREATE VIEW name AS SELECT * FROM tb_name WHERE ~~ ORDER BY ~~;

  2、视图的特殊作用:
      a、简化表之间的联结(把联结写在select中);
      b、重新格式化输出检索的数据(TRIM,CONCAT等函数);
      c、过滤不想要的数据(select部分)
      d、使用视图计算字段值,如汇总这样的值。

MySQL的一些函数

    1、字符串链接——CONCAT()
    >SELECT CONCAT(name,‘=>’,score) FROM tb_name
  2、数学函数:
    AVG、SUM、MAX、MIN、COUNT;
  3、文本处理函数:
    TRIM、LOCATE、UPPER、LOWER、SUBSTRING
  4、运算符:
    +、-、*、
  5、时间函数:
    DATE()、CURTIME()、DAY()、YEAR()、NOW()…

创建表:

        1. 建表 

      >CREATE TABLE table_name(
    >id TINYINT UNSIGNED NOT NULL AUTO_INCREMENT,    //id值,无符号、非空、递增——唯一性,可做主键。
    >name VARCHAR(60) NOT NULL
    >score TINYINT UNSIGNED NOT NULL DEFAULT 0,    //设置默认列值
    >PRIMARY KEY(id)
    >)ENGINE=InnoDB    //设置表的存储引擎,一般常用InnoDB和MyISAM;InnoDB可靠,支持事务;MyISAM高效不支持全文检索
    >DEFAULT charset=utf8;  //设置默认的编码,防止数据库中文乱码
    如果有条件的创建数据表还可以使用 >CREATE TABLE IF NOT EXISTS tb_name(…


  2、复制表:

       >CREATE TABLE tb_name2 SELECT * FROM tb_name;
    或者部分复制:
    >CREATE TABLE tb_name2 SELECT id,name FROM tb_name;


  3、创建临时表:

 >CREATE TEMPORARY TABLE tb_name(这里和创建普通表一样);


  4、查看数据库中可用的表:

 >SHOW TABLES;


  5、查看表的结构:

      >DESCRIBE tb_name;
    也可以使用:
    >SHOW COLUMNS in tb_name;     //from也可以


  6、删除表:

       >DROP [ TEMPORARY ] TABLE [ IF EXISTS ] tb_name[ ,tb_name2…];
    实例:
    >DROP TABLE IF EXISTS tb_name;


  7、表重命名:

       >RENAME TABLE name_old TO name_new;
    还可以使用:
    >ALTER TABLE name_old RENAME name_new;

修改表:

1、更改表结构:   

      >ALTER TABLE tb_name ADD[CHANGE,RENAME,DROP] …要更改的内容…
    实例:
    >ALTER TABLE tb_name ADD COLUMN address varchar(80) NOT NULL;
    >ALTER TABLE tb_name DROP address;
    >ALTER TABLE tb_name CHANGE score score SMALLINT(4) NOT NULL;

插入数据:

 1、插入数据:

>INSERT INTO tb_name(id,name,score)VALUES(NULL,‘张三’,140),(NULL,‘张四’,178),(NULL,‘张五’,134);
    这里的插入多条数据直接在后边加上逗号,直接写入插入的数据即可;主键id是自增的列,可以不用写。


 2、插入检索出来的数据: 

>INSERT INTO tb_name(name,score) SELECT name,score FROM tb_name2;

更新数据:

 1、指定更新数据:

      >UPDATE tb_name SET score=189 WHERE id=2;
    >UPDATE tablename SET columnName=NewValue [ WHERE condition ]

删除数据:


1、删除数据:

   >DELETE FROM tb_name WHERE id=3;

条件控制:


        1、WHERE 语句:

 >SELECT * FROM tb_name WHERE id=3;


  2、HAVING 语句:

>SELECT * FROM tb_name GROUP BY score HAVING count(*)>2


  3、相关条件控制符:  

      =、>、<、<>、IN(1,2,3…)、BETWEEN a AND b、NOT
    AND 、OR
    Linke()用法中 % 为匹配任意、 _ 匹配一个字符(可以是汉字)
    IS NULL 空值检测

MySQL的正则表达式:

1、Mysql支持REGEXP的正则表达式: 

 >SELECT * FROM tb_name WHERE name REGEXP ‘1’ //找出以A-D 为开头的name


 2、特殊字符需要转义
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

长情知热爱

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值