MYSQL必知必会

    数据库相关名词释义:    

            数据库(database)保存有组织的数据的容器(通常是一个文件或是一组文件)  数据库软件应称为DBMS;

            (table)某种特定类型数据的结构化清单;

            模式(schema) 关于数据库和表的布局及特性信息;

            列(column) 表中的一个字段,所有表都是由一列或多个列组成的;

            数据类型(datetype)所容许的数据类型。每个表列都有相应的数据类型,它限制(或容许)该列中存储的数据;

            行(row)表中的一个记录;

            主键(primary key)一列(或者一组列),其值能够唯一区分表中每个行;

            关键字(key word)作为MySQL语言组成部分的一个保留字,绝不要用关键字命名一个表或者列。

            操作符(operator)用来联结或改变where子句中的子句的关键字,也称为逻辑操作符(logical operator);

            通配符(wildcard)用来匹配值的一部分的特殊字符; %通配 任意 ,  _ 通配总是匹配一个字符;

            搜索模式(search pattern)由字面值、通配符或两者组合构成的搜索条件;

            字段(field)基本上与列(column)的意思相同,经常互换使用,不过数据库列一般称为列,而术语字段通常用在计算字段的连接上;

             拼接(concatenate)将值联结到一起构成单个值;

       MYSQL 命令行实用程序

            >命令输入在mysql>之后;

            >命令用;或者\g结束,换句话说仅按Enter不执行命令;

            >输入help或\h 获得帮助,也可以输入更多的文本获得特定命令的帮助(如,help select 获得SELECT语句的帮助);

            >输入quite或exit退出命令行实用程序;    

            >cmd 在bin目录下连接数据库mysql -hlocalhost -uroot -p

       MySQL常用命令

            >    use crashcourse; //使用crashcourse数据库

            >    show databases; //展示数据库列表        

            >    show tables; //获得数据库内可用表的列表

            >    show columns from customers;  //    返回customers表中的字段的信息  

            >    describe customers;   //同上 为show columns from customers; 的快捷方式

            >    show status;  //用于显示广泛的服务器状态信息

            >    show create database 库名 和 show create table 表名,分别用来显示创建特定数据库或表的MySQL语句

            >    show grants ; //用来显示授权用户(所有用户或特定用户)的安全限制

            >    show errors 和 show warnings,用来显示服务器错误或警告消息

     SQL中的基本正则表达式

            >    REGEXP   检索文本

                    检索列prod_name 包含文本1000的所有行

                    e.g.    SELECT prod_name FROM products WHERE prod_name  REGEXP '1000' ORDER BY prod_name;

                    .   匹配任意一个字符

                    e.g.    SELECT prod_name FROM products WHERE prod_name  REGEXP '.000' ORDER BY prod_name;

                    |    进行or匹配  匹配其中之一

                   e.g.    SELECT prod_name FROM products WHERE prod_name  REGEXP '1000|2000' ORDER BY prod_name;

                    []    进行和匹配    (匹配单一字符)  匹配1 Ton 或 2 Ton 或 3 Ton

                 e.g.    SELECT  prod_name FROM products WHERE prod_name REGEXP '[123] Ton'  ORDER BY   prod_name;

                    匹配除了123以外的东西

               e.g.    SELECT  prod_name FROM products WHERE prod_name REGEXP '[^123] Ton'  ORDER BY   prod_name;

                    匹配范围      [0123456789]    [0-9]    [a-z]

              e.g.    SELECT  prod_name FROM products WHERE prod_name REGEXP '[1-9] Ton'  ORDER BY   prod_name;    

                    匹配特殊字符 ,必须要用\\为前导  \\-    \\.   \\\    

                    元字符   \\f 换页     \\n    换行    \\r    回车    \\t    制表    \\v    纵向制表    

              e.g.    SELECT    vend_name from vendros where vend_name REGEXP '\\.' ORDER BY vend_name;

                    匹配字符类

               

                匹配多个实例

                

                [0-9] 匹配数字   sticks? 匹配sticks和stick (s后的?使s可选,?匹配它前面的任何字符的0次或1次出现)

               e.g    SELECT prod_name FROM  products WHERE prod_name REGEXP '\\([0-9] sticks?\\)' ;

                [[:digit:]]{4}    匹配连在一起的任意4位数字

               e.g.    SELECT prod_name FROM  products WHERE prod_name REGEXP '[[:digit:]]{4}'; 

            定位符

            

             ^ 匹配串的开始。 ^[0-9\\.]只在.或者任意数字为串的第一个字符才会匹配到他们

            e.g.    SELECT prod_name FROM  products WHERE prod_name REGEXP '^[0-9\\.]';     

            

     SQL中的常用函数

            Concat()        拼接串,各个串之间用逗号分隔;

            e.g.    SELECT Concat(vend_name,'(',vend_country,')') from vendors;

            

            RTrim()    去掉串右边所有的空格。LTrim() 去掉串左边的空格    Trim()去掉串两边的空格

            e.g.    SELECT Concat(RTrim(vend_name),'(',RTrim(vend_country),')') from vendors;

            

            文本处理函数

                    

                

                   Soundex()函数 匹配发音类似的值

                    e.g.    

            日期函数

                

 触发器                 

            创建触发器     CREATE    TRIGGER    (每个表最多支持六个触发器)

                e.g.        CREATE    TRIGGER    newproduct    AFTER    INSTER    ON    products    FOR    EACH    ROW    

                                SELECT    'Product    added'; (创建触发器失败   not allowed to return a result set from a trigger)

            删除触发器     DROP    TRIGGER    (触发器不能更新或覆盖,如果需要修改必须先删除他);

                e.g.        DROP    TRIGGER    newproduct;

 事务处理

             标识事物    START    TRANSACTION

             回滚    ROLLBACK

             提交    COMMIT

             保留点    SAVEPOINT    deletel;

             返回保留点    ROLLBACK    TO    deletel;;

账户相关
                查询用户   USE mysql;SELECT    user    FROM    user;

                创建用户    CREATE    USER    gordon    IDENTIFIED    BY    ‘gordon’;

                删除账号    DROP    USER    gordon;

                查看访问权限     SHOW    GRANTS    FOR    gordon;

                    USAGE ON    *.* 表示没有任何权限;

                授予权限    GRANT    SELECT    ON    crashcourse.*    TO gordon;

                撤销权限    REVOKE    SELECT    ON    crashcourse.*  FROM    gordon;

                更改口令    SET    PASSWORD    FOR    gordon    = Password(‘gordon’); 

                                 SET    PASSWORD     = Password(‘gordon’); (更改当前用户密码)

                                 (口令必须传到Password()函数中加密)

                

备份数据
                 检查表键是否正确    ANALYZE    TABLE    orders ;

                 检查表    CHECK    TABLE    orders,orderitems;

                

  
    Tips 1   通配符使用技巧【通配符搜索的处理一般比其他的搜索花时间更长】

            >    不要过度使用通配符,如果其他操作符可以达到相同目的,应该使用其他操作符;

            >    在确实需要通配符时,除非绝对有必要,否则不要把他们用在搜索模式的开始处,把通配符至于搜索模式的开始处,搜索起来是最慢的;

            >    仔细注意通配符的位置。如果放错地方,可能不会返回想要的数据;

            

    

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值