你的位置:首页 > 数据库

[数据库]MySQL—基础(SQL语句)


SQL语句:

    DDL(Data Definition Languages)语句:数据定义语言;操作对象:数据段、数据库、表、列、索引等。

    数据库:

        创建:CREATE DATABASE dbname;

        删除:DROP DATABASE dbname;

      表:

        创建:CREATE TABLE tablename(

                         id INT(5) auto_increment(自增关键词) PRIMARY KEY,

                         name VARCHAR(20) NOT NULL);

        删除:DROP TABLE tablename;

        修改:ALTER TABLE tablename RENAME new_tablename;(修改表名)

           ALTER TABLE tablename MODIFY name VARCHAR(10);(修改某列的属性)

           ALTER TABLE tablename ADD column_name VARCHAR(20) [FIRST/(AFTER col_name)](作为插入的位置);(添加一列)

           ALTER TABLE tablename DROP col_name;(删除一列)

           ALTER TABLE tablename CHANGE old_col_name new_col_name VARCHAR(20) [FIRST/(AFTER col_name)];(修改列名)

           (!CHANGE和MODEFY区别:CHANGE可以修改列名,MODIFY不可以,但是CHANGE两次列名都得写。)

     DML(Data Manipulation Languages)语句:数据操纵语句;操作对象:表的增删查改

         增:INSERT INTO tablename(col1_name,col2_name) values(value1,value2);

         删:DELETE FROM tablename [WHERE CONDITION];

         查:SELECT * FROM tablename;

         改:UPDATE tablename set col_name = 'value' where id = 1;

         查询升级版(还会更新):

            ONE:

              SELECT dep,COUNT(*)

              FROM tablename

              GROUP BY dep

              HAVING COUNT(*) >= 2;

            TWO:

              SELECT *

              FROM tablename

              WHERE col_name='abc'

              LIMIT 0,2(0,2意为:从序号0开始后面的两条数据,eg:2,2意为,从序号1开始后面的两条)

              ORDER BY col_name DESC;

            THREE:

              SELECT *

              FROM tablename

              WHERE dep IN(

                      SELECT dep

                      FROM tablename_1);(!如果子查询记录数唯一,IN可以用“=”代替。)

            FOUR:

              SELECT dep FROM tablename

              UNION / (UNION ALL)

              SELECT dep FROM tablename_2

         知识点:表的连接查询。

             WITH ROLLUP:对分类聚合的结果再汇总。

             HAVING和WHERE的区别:WHERE是聚合前进行条件筛选,HAVING是聚合后进行条件筛选,能用WHERE时优先使用WHERE这样对查询可以

                          做到一定的优化。

             UNION和UNION ALL的区别:UNION是将UNION ALL后的结果进行一次DISTINCT,去除重复记录后的结果。

     DCL(Data Control Languages)语句:数据控制语言(开发人员很少使用);操作对象:数据许可、访问级别

         授权:GRANT SELECT,INSERT ON tablename.* TO 'Z1'@'localhost' IDENTIFY BY '123';

         收回:REVOKE INSERT ON tablename.* FROM 'Z1'@'localhost';

        知识点:元数据,为数据的数据,如表名列名等表的各种属性名称。

            information_schema数据库就是用来记录MySQL中的元数据信息,此数据库是一个虚拟的数据库,物理上并不存在相关的目录和文件,全部为视图。

            视图:

               SCHEMATA:所有数据库信息。

               TABLES:数据库中的表信息

               COLUMNS:表中的列信息

               STATISTICS:表索引的信息