赞
踩
目录
数据表的每行称为一条记录,每一列称为一个字段。
标准的建表语法:
CREATE TABLE 表名(
列名 列类型,
列名 列类型
);
例子:创建一个学生表
- mysql> create table su(
- -> id int(10),
- -> name varchar(10),
- -> age int(5)
- -> );
在MySQL中,有三种主要的类型:文本、数字、日期/时间类型。
注意:这些整数类型拥有额外的选项 UNSIGNED。通常,整数可以是负数或正数。如果添加
SHOW TABLES;
(1)DESC 表名;
(2)SHOW COLUMNS FROM 表名;
(3)SHOW CREATE TABLE 表名 \G; ————查看更全面的表定义信息
DROP TABLE语法:DROP TABLE [IF EXISTS] 表名;功能:删除指定的表
alter table 表名 modify 列名 列类型;
alter table 表名 add 列名 列类型;
alter table 表名 drop 列名;
alter table 表名 change 旧列名 新列名 列类型;
alter table 表名 modify 列名2 列2类型 after 列名1;
注意:如果要将列名放在第一位
atler table 表名 列名 列类型 first;
(1)alter table 表名 rename 新表名;
(2)rename table 表名 to 新表名;
复制一个表结构的实现方法有两种:
方法一、在create table 语句的末尾添加like子句,可以将原表的表结构复制到新表中。
语法格式如下:
create table 新表名 like 源表;
方法二、在create table 语句的末尾添加一个select 语句,可以实现表结构的复制,甚至可以将原表的表记录拷贝到新表中。
语法格式如下:
create table 新表名 select * from 原表;
如果已存在一张结构一致的表,需要复制数据。
语法格式如下:
insert into 表 select * from 原表;
定义:约束是在表上强制执行的数据校验规则。约束主要用于保证数据库的完整性。当表中数据有相互依赖性时,可以保护相关的数据不被删除。大部分数据库支持下面五类完整性约束。
约束作为数据库对象,存放在系统表中,也有自己的名字创建约束的时机在建表的同时创建建表后创建(修改表)可定义列级或表级约束有单列约束和多列约束定义约束的语法列级约束:在定义列的同时定义约束语法:列定义 约束类型,表级约束:在定义了所有列之后定义的约束语法:列定义[CONSTRAINT 约束名] 约束类型(列名)约束名的取名规则推荐采用:表名_列名_约束类型简介约束可以在创建表时就定义,也可以在创建完后再添加语法:alter table 表名 add constraint 约束名 约束类型(要约束的列名)
列级约束,只能使用列级约束语法定义。确保字段值不允许为空只能在字段级定义CREATE TABLE tb_student(id INT PRIMARY KEY AUTO_INCREMENT, #主键、自增。NAME VARCHAR(18) NOT NULL);NULL所有数据类型的值都可以是NULL。空字符串不等于NULL。0也不等于NULL。
唯一性约束条件确保所在的字段或者字段组合不出现重复值唯一性约束条件的字段允许出现多个NULL同一张表内可建多个唯一约束唯一约束可由多列组合而成建唯一约束时MySQL会为之建立对应的索引。如果不给唯一约束起名,该唯一约束默认与列名相同。CREATE TABLE tb_student(id INT PRIMARY KEY AUTO_INCREMENT,NAME VARCHAR(18) UNIQUE NOT NULL);
主键从功能上看相当于非空且唯一一个表中只允许一个主键主键是表中唯一确定一行数据的字段删除表的约束自动增长和默认值存储引擎主键字段可以是单字段或者是多字段的组合当建立主键约束时,MySQL为主键创建对应的索引主键约束名总为PRIMARY。CREATE TABLE tb_student(id INT PRIMARY KEY AUTO_INCREMENT,NAME VARCHAR(18));
外键是构建于一个表的两个字段或者两个表的两个字段之间的关系外键确保了相关的两个字段的两个关系:子(从)表外键列的值必须在主表参照列值的范围内,或者为空(也可以加非空约束,强制不允许为空)。当主表的记录被子表参照时,主表记录不允许被删除。外键参照的只能是主表主键或者唯一键,保证子表记录可以准确定位到被参照的记录。格式FOREIGN KEY (外键列名)REFERENCES 主表(参照列)CREATE TABLE tb_dept(dept_id INT PRIMARY KEY,NAME VARCHAR(18),description VARCHAR(255));CREATE TABLE tb_employee(employee_id INT PRIMARY KEY,c_id int,foreign key (c_id) REFERENCES tb_dept(dept_id),);
(1)删除NOT NULL约束alter table 表名 modify 列名 类型;(2)删除UNIQUE约束alter table 表名 drop index 惟一约束名;(3)删除PRIMARY KEY约束alter table 表名 drop primary key;(4)删除FOREIGN KEY约束alter table 表名 drop foreign key 外键名;
auto_increment :自动增长为新的行产生唯一的标识一个表只能优一个auto_increment,且该属性必须为主键的一部分。auto_increment的属性可以是 任何整数类型default : 默认值
由information_schema数据库负责维护tables-存放数据库里所有的数据表、以及每个表所在数据库。schemata-存放数据库里所有的数据库信息views-存放数据库里所有的视图信息。columns-存放数据库里所有的列信息。triggers-存放数据库里所有的触发器。routines-存放数据库里所有存储过程和函数。key_column_usage-存放数据库所有的主外键table_constraints-存放数据库全部约束。statistics-存放了数据表的索引。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。