美文网首页MYSQL
2.SQL语句介绍

2.SQL语句介绍

作者: Stone_説 | 来源:发表于2020-04-14 01:28 被阅读0次

1. 关系型数据库的常见组件

数据库:database
表:table
        行:row
        列:column
索引:index
视图:view
用户:user
权限:privilege
存储过程:procedure
存储函数:function
触发器:trigger
时间调度器:event scheduler,任务计划

2. SQL语言规范

在数据库系统中,SQL语句不区分大小写(建议用大写)
SQL语句可单行或多行书写,以“;”结尾
关键词不能跨多行或简写
用空格和缩进来提高语句的可读性
字句通常位于独立行,便于编辑,提高可读性
注释:
        SQL标准:
                /*注释内容*/    多行注释
                -- 注释内容     单行注释,注意有空格
        MySQL注释:
                #

3. SQL语句分类

DDL:Data Defination Language数据定义语言
        CREATE,DROP,ALTER
DML:Data Manipulate Language数据操纵语言
        INSERT,DELETE,UPADATE
DCL:Data Control Language数据控制语言
        GRANT,REVOKE,COMMIT,ROLLBACK
DQL:Data Query Language数据查询语言
        SELECT

4. SQL语句构成

SQL语句构成:
    Keyword组成clause
    多条clause组成语句
示例:
    SELECT *                 SELECT子句
    FROM products            FROM子句
    WHERE price>400          WHERE子句
    说明:一组SQL语句,有三个子句构成,SELECT,FROM和WHERE是关键字

5. 数据库操作

创建数据库:
    CREATE DATABASE|SCHEMA [IF NOT EXISTS] 'DB_NAME';
    CHARACTER SET 'character set name' COLLATE 'collate name'
修改数据库:
    ALTER DATABASE DB_NAME character set utf8;
删除数据库:
    DROP DATABASE|SCHEMA [IF EXISTS] 'DB_NAME';
查看支持所有字符集:
    SHOW CHARACTER SET;
查看支持所有排序规则:
    SHOW COLLATION;
获取命令使用帮助:
    mysql> HELP KEYWORD;
查看数据库列表:
    mysql>SHOW DATABASES;

6. 表的操作

表:二维关系
设计表:遵循规范
定义:字段,索引
        字段:字段名,字段数据类型,修饰符
        约束,索引:应该创建在经常用作查询条件的字段上

6.1 表的创建

创建表:CREATE TABLE
    1. 直接创建
    2. 通过查询现存表创建;新表会被直接插入查询而来的数据
          CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name [(create_definitation,...)] [table_options] [partition_options] select_statement
    3. 通过复制现存的表的表结构创建,但不复制数据
          CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name {LIKE old_tbl_name} |(LIKE old_tbl_name)}
注意:
    Storage Engine是指表类型,也即在表创建时指明其使用的存储引擎,同一库中不同表可以使用不同的存储引擎
    同一库中表建议要使用同一种存储引擎类型 
CREATE TABLE [IF NOT EXISTS] 'tbl_name' (col1 type1 修饰符,col2 type2 修饰符,...)
字段信息:
    col type1
    PRIMARY KEY(col1,...)
    INDEX(col1,...)
    UNIQUE KEY(col1,...)
表选项:
    ENGINE [=] engine_name
      SHOW ENGINES;查看支持的engine类型
    ROW_FORMAT [=]
      {DEFAULT|DYNAMIC|FIXED|COMPRESSED|REDUNDANT|COMPACT}
获取帮助:
    mysql> HELP CREATE TABLE:
查看所有的引擎:SHOW ENGINES
查看表:SHOW TABLES [FROM db_name]
查看表结构:DESC [db_name.] tb_name
           SHOW COLUMNS FROM [db_name.] tb_name
删除表:DROP TABLE [IF EXISTS] tb_name
查看表创建命令:SHOW CREATE TABLE tbl_name
查看表状态:SHOW TABLE STATUS LIKE ‘tbl_name’
查看库中所有表状态:SHOW TABLE STATUS FROM db_name
DROP TABLE [IF EXISTS] 'tbl_name';
ALTER TABLE 'tbl_name'
  字段:
      添加字段:add
         ADD col1 data_type [FIRST_AFTER col_name]
      删除字段:drop
      修改字段:
         alter (默认值),change(字段名),modify(字段属性)
      索引:
         添加索引:add index
         删除索引:drop index
      表选项:
         修改:
查看表上的索引:SHOW INDEXES FROM [db_name];
查看帮助:HELP ALTER TABLE

6.2 表的创建例子

ALTER TABLE students RENAME s1;
ALTER TABLE s1 ADD phone varchar(11) AFTER name;
ALTER TABLE s1 MODIFY phone int;
ALTER TABLE s1 CHANGE COLUMN phone mobile char(11);
ALTER TABLE s1 DROP COLUMN mobile;
ALTER TABLE s1 character set utf8;
ALTER TABLE s1 change name name varchar(20) character set utf8;
Help ALTER TABLE 查看帮助
ALTER TABLE students ADD gender ENUM('m','f');
ALTER TABLE students CHANGE id sid int UNSIGNED NOT NULL PRIMARY KEY;
ALTER TABLE students drop primary key;
ALTER TABLE students ADD UNIQUE KEY(name);
ALTER TABLE studnets ADD INDEX(age);
ALTER TABLE students drop primary key;
DESC students;
SHOW INDEXES FROM students;
ALTER TABLE students DROP age;

相关文章

网友评论

    本文标题:2.SQL语句介绍

    本文链接:https://www.haomeiwen.com/subject/jjqamhtx.html