zoukankan      html  css  js  c++  java
  • Mysql操作之部分DDL语句

    DDL(Data Definition Languages)语句:数据定义语言,这些语句定义了不同的数据段,数据库,表,列,索引等数据库对象。常用的语句关键字主要包括create,drop,alter等。

    toc

    库操作

    命令不区分大小写
    数据库名称严格区分大小写
    数据库名称必须是唯一
    数据库名称不允许使用数字
    数据库名称不能使用关键字命名,如:create select

    ## 创建数据库
    mysql> create database test;
    ## 查看所有数据库
    mysql> show databases;
    ## 删除数据库
    mysql> drop database test;
    ## 进入数据库
    mysql> use test;

    表操作

    ## 创建表
    mysql> create table student(
          id int(4) primary key auto_increment,
          name varchar(20),
          score int(3)
        );
    ## 列出当前库所有的表
    mysql> show tables;
    ## 查询表结构
    mysql> desc mysql.slow_log;
    ## 查看表的建表语句
    mysql> show create table mysql.slow_logG
    ## 修改表名 student 为 teacher
    mysql> alter table student rename (to) teacher;
    ## 增加列 password 
    mysql> alter table student add password varchar(20);
    ## 修改列 password 为 pwd
    mysql> alter table student change password pwd varchar(20);
    ## 修改 pwd 数据类型为 int
    mysql> alter table student modify pwd int;
    ## 删除列 pwd
    mysql> alter table student drop pwd;
    ## 删除表
    mysql> drop table test.student;

    Mysql数据类型

    锁表和索引

    锁表(慎用,一般用于数据库备份。为了数据库一致性)

    ## 锁表
    mysql> FLUSH TABLES WITH READ LOCK;  
    ## 解锁  
    mysql> UNLOCK TABLES;  

    索引就好比一本书的目录,它会让你更快的找到内容,显然目录(索引)并不是越多越好,假如这本书1000页,有500也是目录,它当然效率低,目录是要占纸张的,而索引是要占磁盘空间的。

    • 索引分类
      • 普通索引INDEX:最基本的索引,没有任何限制
      • 唯一索引UNIQUE:与"普通索引"类似,不同的是索引列的值必须唯一,但允许有空值。
      • 全文索引FULLTEXT:仅可用于 MyISAM 表,针对较大的数据,生成全文索引很耗时好空间。
      • 主键索引 PRIMARY KEY:它是一种特殊的唯一索引,不允许有空值(主键自带)。

    创建表时创建索引

    ## 创建普通索引示例
    CREATE TABLE tt ( id INT,
            name VARCHAR(30) ,
            comment VARCHAR(50),
            'INDEX' index_tt_name (name)
         );
    ## 创建唯一索引示例
    CREATE TABLE tt (
            id INT,
            name VARCHAR(30) ,
            comment VARCHAR(50),
            'UNIQUE INDEX' index_tt_name (name) 
        );
    ## 创建全文索引示例myisam
    CREATE TABLE tt (
            id INT,
            name VARCHAR(30) ,
            comment VARCHAR(50),
            log text,
            'FULLTEXT INDEX' index_tt_log (log)
        );
    ## 创建多列索引示例
    CREATE TABLE tt (
            id INT,
            name VARCHAR(30) ,
            comment VARCHAR(50),
            'INDEX' index_tt_name_comment (name, comment)
        );

    在已存在的表上创建索引

    ## 创建普通索引示例
    CREATE 'INDEX' index_name ON product(name);
    ## 创建唯一索引示例
    CREATE 'UNIQUE INDEX' index_name ON product(name);
    ## 创建全文索引示例
    CREATE 'FULLTEXT INDEX' index_dept_name ON product (name);
    ## 创建多列索引示例
    CREATE 'INDEX index_dept_name_comment' ON product (name, id);

    查看和删除索引

    ## 查看索引名称
    mysql> show create table t5G
    ## 删除索引语法: DROP INDEX 索引名 ON 表名
    mysql> drop index index_t5_id on t5;
  • 相关阅读:
    体检前注意事项
    SSO之CAS单点登录详细搭建教程
    如何通过session控制单点登录
    谈谈防止Ajax重复点击提交
    js判断是移动端还是pc端
    HttpClient通过GET和POST获取网页内容
    HttpClient 4.x 执行网站登录并抓取网页的代码
    360每日自动签到,领取积分 (java httpclient4.x)
    Java @override报错的解决方法
    无开发经验,初学python
  • 原文地址:https://www.cnblogs.com/songguoyou/p/11883732.html
Copyright © 2011-2022 走看看