• MySql笔记


    show create table 表名     显示创建表的详细命令
     
    ALTER TABLE 表名 ADD(
    列定义1,
    列定义2);     添加列
    MODIFY COLUMN 列名 列属性;     改列字段     (column可不加)
    CHANGE 原列名 新列名 列属性;     改列名
    ALTER TABLE 原表名 RENAME TO 新表名;     改表名
    DROP PRIMARY KEY;     删除主键,如有外键无法删除主键
    ADD CONSTRAINT 约束名 PRIMARY KEY(id);     添加主键
     
     
     
     
     
    COLUMNS --返回表信息
     
    1、检索数据
      LIMIT -- 显示指定行数
      ORDER BY子句 --检索排序     ASC--升序/DESC关键字 --降序
      WHERE --条件过滤  AND OR操作符 IN NOT操作符
       where子句 IS NULL --检查是否空值select
       如果要使用通配符(模糊查询),必须使用LIKE操作符    (%通配符匹配多个,_通配符匹配单个)
       要使用正则表达式,必须使用REGEXP关键字    (like匹配整个列,如果不使用通配符,那么被匹配的文本在列值中出现,like也不会找到他,相应的行也不被返回。而regexp在列值内匹配,被匹配的文  本在列值中出现,regexp会找到它,相应的行被返回)
     
    计算字段(将几列格式化为新计算字段(字段意思基本与列意思相同))
    Concat()函数 --拼接 把值联结到一起构成单个列。 Concat(列名,'','',列名)     (没有列名,需要AS加别名才能给客户机引用)
    AS 关键字 --列名或计算字段赋予别名)
    算数计算 (直接跟检索后边,结果为一列计算过的新计算列。同样需要有列名才可引用)
     
    数据处理函数
    文本各处理函数(详见P69)
     Soundex() -- 文本串转换,字音比较而不是字母比较。详见P70) Soundex(列名)=Soundex('目标串')
    日期时间处理函数 (P71)
    Date() (如果日期时间使用了datatime这种数据类型格式,样例表中就全都具有时间值00:00:00,此时只检索日期就会匹配失败。解决办法指示mysql仅将给出的日期与列中的日期部分进行比较,而不是与整个列值比较) Date(列名)
    聚集函数(运行在行祖上,作为新结果列出现。计算和返回单个值的函数,比如avg(),count(),max(),sum()) //MAX(DISTINCT(列名)) 可加DISTINCT参数,去掉重复值
     
    -------------------------
    数据分组GROUP BY --(允许把数据分为多个逻辑组,以便对每个组进行聚集计算。)
    过滤分组HAVING子句 --(和WHERE类似,差别WHERE用来过滤行,HAVING专门过滤分组。)
     
    子查询(嵌套在其他查询中的查询)
    利用子查询过滤 --(子查询一般与IN () 操作符使用。跟在过滤后面再次查询,过滤)
     
    作为计算字段使用子查询 -- (跟在SELECT后面括号内再次查询)SELECT ..,..,(子查询)as .. FROM
     
    联结(一个表的主键和另一个有此外键的表列的关联) 可以联结多个表返回一组输出。
     
    多个表联结(其他表要包含有能与某张表组成关系的相同的列,--外键值) (联结类型:目前为等值联结,基于两个表之间的相等测试,也叫内部联结)
     
    高级联结
    使用表别名(可以省写调用而不用输入全名) FROM orders AS o,... AS .
    自联结 --通常用于在一张表中替代子查询使用(注意同一张表出现在FROM两次,对其的引用具有二义性,所以需要使用表别名)
    外部联结 -- 与其他联结一样。一个表中行与另一个表中行相关联(主键外键相关联),不一样地方在于也包含了在相关表中没有关联行的行 (此时需要关键字OUTER JOIN 来指定联结类型,)
     
    组合查询(又或者 并union或复合查询,)
    UNION --关键字(可以给出多个SELECT语句,用UNION关键字分隔,把它们的结果组合成单个结果集,必须由两条或以上SELECT语句组成,每个查询必须相同的列,表达式或聚集函数)
     
    全文本搜索(要用到全文本搜索,需要使用MyISAM数据库引擎,InnoDB引擎不支持)
    FULLTEXT() 子句 (用在语句定义表时) --对指定列或多个列进行索引。(mysql自动维护该索引,增删改行时,索引随之自动更新)
    Match() Against()进行全文本搜索 Match() --指定被搜索的列 Against('')指定要使用的搜索表达式。(这两个函数用在WHERE后)
    IN BOOLEAN MODE关键字 --布尔文本搜索。在搜索表达式内和布尔操作符一起进行更细致的查找控制作用 例:Against('rabbit -bai*' IN BOOLEAN MODE)匹配rabbit词,但排除包含有以bai开头的词(全文本布尔操作符详见P128)(布尔搜索方式即使没有定义FULLTEXT索引,也可以使用)
     
    插入数据
    INSERT INTO 表名 VALUES () (若要指定插入数据的顺序,表名后跟括号指定他们的顺序。否则按默认顺序)
    插入多行 VALUES (),()... 每行以逗号分隔
    INSERT INTO 表名() SELECT FROM...(INSERT SELECT 插入其他表检索出的数据)列名、顺序必须一致,可包含WHERE子句过滤插入的数据
     
    更新和删除数据(注意更新、删除如果没有WHERE条件将选择所有行进行操作)
    UPDATE --更新数据 UPDATE 表名 SET ... WHERE (更新某个或多个列值数据) 更新多个列应以逗号分隔。如果要删除某个列值,将其=NULL即可
    DELETE --删除数据 DELETE FROM 表名 WHERE (删除特定行)
     
    操纵表
    CREATE TABLE 表名 --(创建表基础)CREATE TABLE 表名(    表定义-列名,数据类型,是否NULL(前两项必须)        )ENGINE=InnoDB  其余可加的关键字 自增AUTO_INCREMENT 主键PRIMARY KEY ()
    ALTER TABLE 表名 --(更改表结构,可以添加一个列或删掉一个列),ADD 列名 CHAR(20);必须明确其数据类型,DROP COLUMN 列名    |    ALTER TABLE的常见用途是定义外键。FOREIGN KEY 约束,引用完整性(解释说明https://blog.csdn.net/haiross/article/details/50435374) 定义主键和外键主要是为了维护关系数据库的完整性。外键用于与另一张表的关联。是能确定另一张表记录的字段,用于保持数据的一致性。比如,A表中的一个字段,是B表的主键,那他就可以是A表的外键。A表的此字段,如果要插入一行,值必须要和B表主键某一项列值一致。https://blog.csdn.net/bestlove12345/article/details/52127061
    DROP TABLE 表名 --(删除整个表而不是删除其内容)
    RENAME TABLE --(重命名表名)例:RENAME TABLE vendnew TO vendnewnew
     
     
    视图(简化复杂SQL语句的使用,如联结 利用视图可以一次性编编写基础的SQL,然后根据需要多次使用)
    CREATE VIEW --(创建视图)CREATE VIEW vendor1 AS SQL语句...        使用视图时直接正常检索 FROM 改为视图名 (因为视图可以理解是一张虚拟的表)
     
    存储过程(情景:需要多条语句才能完成的完整的操作。)通过把处理。封装在容易使用的单元中(或理解为方法),简化复杂的操作。
    CREATE PROCEDURE --(创建存储过程) CREATE PROCEDURE 存储过程名(参数的传入传出处理) BEGIN ....  END;(顿号部分为存储过程代码,例如select max(liushui) from richang; INTO 变量)
    CALL --(调用存储过程)CALL 存储过程名(@传递的参数)    注意:调用这条语句不显示任何数据,它返回存储过程处理过的以后可以显示(或其他处理中使用的)变量。  如果想要想要显示:select @变量名
     
    游标(由一条SQL检索出来的结果集,就是游标,沿着游标可以一次取出一行,或前后几行。与检索操作返回的相匹配的行(结果集)不同) DECLARE 游标名 CURSOR FOR 检索SQL 条件语句(条件出现执行的代码); 游标在存储过程里使用
     
    CREATE TABLE 新表名 LIKE 旧表名 -- 复制表的列构造
     
    事务处理
    自动提交功能,
    AUTOCOMMIT=1(每条SQL直接自动提交)
    AUTOCOMMIT=0(可以ROLLBACK回滚操作,但此后如果不执行COMMIT,所有更新的内容不会反映到数据库中)
    SAVEPOINT 保存点名 -- 事务中定义一个保存点,可用 ROLLBACK TO SAVEPOINT 保存点名回滚到此时状态
  • 相关阅读:
    Linux sort命令使用方法
    Linux awk命令使用方法
    Linux sed命令使用方法
    Python调用外部系统命令
    [ Python入门教程 ] Python正则表达式与re模块介绍
    [ Python入门教程 ] python异常处理方法
    Python操作远程服务器paramiko模块介绍
    Hibernate的应用及注解开发
    JQuery Validate插件与实现
    Struts2的核心——拦截器
  • 原文地址:https://www.cnblogs.com/likoo/p/11681828.html
Copyright © 2020-2023  润新知