设为首页 收藏本站
查看: 375|回复: 1

[经验分享] MySQL管理表和索引

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-9-6 08:59:46 | 显示全部楼层 |阅读模式
MySQL管理表和索引

SQL语句:
    数据库
    表
    索引
    视图
    DML
   

1
2
3
4
创建数据库:
    CREATE DATABASE|SCHEMA [IF NOT EXISTS] db_name [CHARACTER SET=] [COLLATE=]   
删除数据库:
    DROP {DATABASE | SCHEMA} [IF EXISTS] db_name



   
创建表:
    1、直接定义一张空表;
    2、从其它表中查询出数据,并以之创建新表;
    3、以其它表为模板创建一个空表;   

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
1.   
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name
    (create_definition,...)
    [table_options]
    [partition_options]
2.
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name
    [(create_definition,...)]
    [table_options]
    [partition_options]
    select_statement
3.
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name
    { LIKE old_tbl_name | (LIKE old_tbl_name) }   
创建一个空白表:   
CREATE TABLE [IF NOT EXISTS] tb_name (col_name col_defination, constraint )    ENGINE [=] engine_name



键也称作约束,可用作索引,属于特殊索引(有特殊限定):B+Tree


1
2
3
CREATE INDEX创建索引
SHOW INDEXES FROM tb_name:显示指定表上的索引
DESC table_name  显示表结构




修改表定义:
    ALTER TABLE
        添加、删除、修改字段
        添加、删除、修改索引
        改表名
        修改表属性

InnoDB支持外键(外键约束极其消耗系统资源)        


1
2
3
4
5
6
7
8
9
10
11
删除表:        
DROP [TEMPORARY] TABLE [IF EXISTS]
    tbl_name [, tbl_name] ...
    [RESTRICT | CASCADE]   
索引创建:
    CREATE INDEX index_name ON tb_name (col,...);
    col_name [(length)] [ASC | DESC]
删除索引:
    DROP INDEX index_name ON tbl_name   
     
SELECT select-list FROM tb WHERE qualification




查询语句类型:
    简单查询
    多表查询
    子查询(嵌套查询)

1
2
3
4
     
SELECT * FROM tb_name;
SELECT field1,field2 FROM tb_name; 投影
SELECT [DISTINCT] * FROM tb_name WHERE qualification; 选择



DISTINCT  相同的值只显示一次

FROM子句: 要查询的关系         表、多个表、其它SELECT语句
WHERE子句:布尔关系表达式
    =、>、>=、<=、<         数值比较不加引号,字符串比较加引号
    逻辑关系:
        AND
        OR
        NOT

    BETWEEN ... AND ...
    LIKE ‘’
        %: 任意长度任意字符
        _:任意单个字符
    REGEXP, RLIKE                   支持正则表达式
    IN                              使用离散取值
    IS NULL
    IS NOT NULL
ORDER BY field_name {ASC|DESC}        查询结果排序(ASC升序,DESC降序)
字段别名:AS   
select name as student_name from student;   显示时显示为student_name不是name

LIMIT子句:LIMIT [offset,]Count   从第offset开始显示,显示count个

聚合:SUM(), MIN(), MAX(), AVG(), COUNT()

GROUP BY: 分组
    HAVING qualification        过滤
   

多表查询:
   
    连接:
        交叉连接:笛卡尔乘积
        自然连接:
        外连接:
            左外连接:... LEFT JOIN ... ON ...
            右外连接: ... RIGHT JOIN ... ON ...
        自连接:   使用别名来进行


子查询:
    比较操作中使用子查询:子查询只能返回单个值;
    IN(): 使用子查询;
    在FROM中使用子查询;


联合查询:
    UNION   
   
视图: 存储下来的SELECT语句;(在MySQL中用处不大,跟安全相关时有意义)
    基于基表的查询结果;

1
2
3
4
5
6
7
8
CREATE
    [OR REPLACE]
    [ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}]
    [DEFINER = { user | CURRENT_USER }]
    [SQL SECURITY { DEFINER | INVOKER }]
    VIEW view_name [(column_list)]
    AS select_statement
    [WITH [CASCADED | LOCAL] CHECK OPTION]



1
2
3
     
显示创建某个表、视图、数据库等用了什么语句
SELECT CREATE {DATABASE | TABLE | VIEW} NAME





广义查询:
DML:
    DELETE
    INSERT INTO
    UPDATE

1
2
3
INSERT INTO tb_name (col1, col2, ...) VALUES (val1, val2, ...)[,(val1, val2, ...),...]
INSERT INTO tb_name SET col1= ,col2= ,....
INSERT INTO tb_name (col1,col2...) SELECT ....



    字符型:单引号
    数值型:不需要引号
    日期时间型:
    空值:NULL, ''

REPLACE INTO     与INSERT类似



1
2
3
4
DELETE:
    DELETE FROM tb_name WHERE condition;
TRUNCATE tb_name: 清空表,并重置AUTOINCREMENT计数器;
UPDATE tb_name SET col1=..., col2=... WHERE






运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-268294-1-1.html 上篇帖子: MySQL基本知识 下篇帖子: MySQL事务和隔离级别
累计签到:2 天
连续签到:1 天
发表于 2016-9-6 09:03:28 | 显示全部楼层
全都是MySQL的资料么?

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表