zoukankan      html  css  js  c++  java
  • MySQL-表操作

    MySQL-表操作  

    一、表定义语句

    1、创建表:

     

    (1)基本形式

     

    create  table  [if not  exists] 表名(字段列表, [约束或索引列表]) [表选项列表];

     

    说明:列表都是表示“多个”,相互之间用逗号分开。

     

    字段基本形式:  字段名   类型   [字段修饰属性]

     

    例如,建立一个名为MyClass的表,
    
    字段名 数字类型 数据宽度 是否为空 是否主键 自动增加 默认值
    id int 4 primary key auto_increment  
    name char 20      
    sex int 4     0
    degree double 16      





    mysql
    > create table MyClass( > id int(4) not null primary key auto_increment, > name char(20) not null, > sex int(4) not null default '0', > degree double(16,2));

     

    (2)字段属性设置

     

    ①not  null: 不为空,表示该字段不能放“null”这个值。不写,则默认是可以为空

     

    ②auto_increment:(添加条件:整形,主键)  设定int类型字段的值可以“自增长”,即其值无需“写入”,而会自动获得并增加,此属性必须随同 primary key  或 unique key 一起使用。

     

    ③[primary] key: 设定为主键。是唯一键“加强”:也不能重复并且不能使用null,并且可以作为确定任意一行数据的“关键值”,最常见的类似:where id= 8;  或  where  user_name = ‘zhangsan’;

     

    通常,每个表都应该有个主键,而且大多数表,喜欢使用一个id并自增长类型作为主键。但:一个表只能设定一个主键。

     

    ④unique  [key] : 设定为唯一键:表示该字段的所有行的值不可以重复(唯一性)。

     

    ⑤default  ‘默认值’: 设定一个字段在没有插入数据的时候自动使用的值。

     

    ⑥comment  ‘字段注释’。

     

    (3)索引设置

     

    ①什么是索引:

     

    索引是一个“内置表”,该表的数据是对某个真实表的某个(些)字段的数据做了“排序”之后的存储形式。

     

    作用是:极大提高表查找数据的速度!——其效率(速度)可以匹敌二分查找。

     

    注意:索引在提供查找速度的同时,降低增删改的速度。

     

    对创建(设计)表来说,建立索引是非常简单的事,形式如下:

     

      索引类型 (字段名1,字段名2, .... ) //可以使用多个字段建立索引,但通常是一个

     

    ②有以下几种索引:

     

    普通索引:key(字段名1,字段名2, .... ):它只具有索引的基本功能——提速

     

    唯一索引:unique  key (字段名1,字段名2, .... )

     

    主键索引:primary  key (字段名1,字段名2, .... )

     

    全文索引:fulltext (字段名1,字段名2, .... )

     

     

    (4)约束设置

     

    ①什么叫约束:约束就是一种限定数据以符合某种要求的形式(机制)

     

    ②约束主要有:

     

    主键约束:primary  key (字段名1,字段名2, .... )

     

    其实就是主键索引,也是主键属性。即primary  key有3个角度的理解(说法):字段属性设置为主键,或建立的主键索引,或设定一个主键约束,但他们的本质是一样

     

    唯一约束:unique  key  (字段名1,字段名2, .... ),其实也是“3体合一”(类似primary key)

     

    外键约束

     

    什么叫外键:就是设定一个表中的某个字段的值,必须“来源于”另一个表的某个主键字段的值。

     

    语法形式:

     

    foreign key (字段名1,字段名2, .... ) references 表名2(字段名1,字段名2, .... )

     

    说明:

     

    对某个(些)字段设定外键,则其相对应的其他表的对应字段需要设置为主键。

     

    (5)表选项

     

    ①表选项就是对一个表的有关属性的设定,通常都不需要。如果不设定,则有其默认值。

     

    ②有以下几个可用:

     

    comment = ‘表的注释’;

     

    charset = 字符编码名称; //跟数据的字符编码设定一个意思。

     

    字符编码设定的范围及继承关系:

     

    系统级设定:安装时确定了。

     

    库级设定:建库时设定;

     

    表级设定:就是这里的charset = 字符编码名称

     

    字段级设定:作为字段属性出现。

     

    他们都只对“字符类型”的字段有效。每一级如果没有设定,就会“继承使用”其上一级的设定。

     

    auto_increment = 起始整数; //自增长类型值的初值,默认是1

     

    engine = “表的存储引擎名”; //

     

    存储引擎就是将数据存入硬盘(或其他媒介)的方式方法。通常就几个可用,默认是InnoDB

     

    存储引擎决定一个数据表的各方面的信息:功能和性能。

     

     

     

    (6)最重要的例子

     

     

     

    2、修改表:

    (1)一般概述

    通常,创建一个表,能搞定(做到)的事情,修改表也能做到。大体来说,就可以做到:

     

    ①增删改字段:

     

    增:alter  table  表名  add  [column]  字段名  字段类型  字段属性;

     

    删: alter  table  表名  drop  字段名

     

    :alter  table  表名  change  原字段名  新字段名  新字段类型  新字段属性;

     

    增删索引:

     

    增删约束:

     

    ②修改表选项:

     

     

     

    (2)修改表的基本形式:

     

    alter  table  表名   修改语句1,修改语句2, ..... ;

     

     

    3、删除表:

     

      drop   table  [if  exists]  表名;

     

     

    4、表的其他操作:

     

    (1)显示所有表:show  tables:

     

    (2)显示表结构:desc  表名;

     

    (3)显示表的创建语句: show  create  table  表名;。

     

    (4)从已有表复制表结构:create table [if not exists] 新表名 like 原表名;

     

    (5)从已有表复制表结构:create table [if not exists] 新表名 select * from 原表名 where 1<>1;(不推荐)

     

     

  • 相关阅读:
    JavaScript DOM 编程艺术 公用方法
    JavaScript DOM 编程艺术
    Echart 的formatter及重写line chart
    PHP 导出csv
    Linux 搭建PHP环境
    学习新思路
    fork产生子进程利用pipe管道通信
    进程间通信 管道
    进程间通信(IPC) 简介
    java 多态
  • 原文地址:https://www.cnblogs.com/wjglm/p/9466327.html
Copyright © 2011-2022 走看看