mysql——创建表、修改表、删除表(概念详细讲解)
一、创建一个数据表 create table 表名 ( 列名1 数据类型1 [完整性约束条件],
列名2 数据类型2 [完整性约束条件],
列名3 数据类型3 [完整性约束条件],
列名4 数据类型4 [完整性约束条件],
……
列名n 数据类型n
); 表名:所要创建的表的名称 列名:表示表中字段的名称 数据类型:指定参数的数据类型 完整性约束条件:指定字段的某些特殊约束条件 注意: 1、在创建表时,首先需要选择数据库‘use 数据库名’,否则会显示错误 2、一个表中可以有一个或者多个属性,定义时,字母大小写均可,各个属性之间用逗号隔开,最后一个属性后不需要加逗号 二、表的完整性约束条件 primary key : 标识该属性为该表的主键,可以唯一的标识对应的元组 foreign key : 标识该属性为该表的外键,是与之联系某表的主键 not null : 标识该属性不能为空 unique : 标识该属性的值是唯一的 default : 为该属性设置默认值 auto_increment : 标识该属性的值自动增加 三、完整性约束条件 1、设置表的主键 主键的主要目的是帮助以最快的速度找到表中的某一条记录,主键必须满足的条件就是主键必须是唯一的; 表中任意2条的主键的值必须是不同的,主键是非空值; 主键可以是单一的字段,也可以是多个字段的组合; 举例1:设置单个字段的主键 create table example0 ( stu_id int primary key,
stu_name varchar(20),
stu_sex boolean
); 举例2:设置多个字段的主键 create table example1 (
stu_id int,
course_id int,
grade float,
primary key(stu_id,course_id)
); 2、设置表的外键 设置外键的原则就是必须依赖于数据库中已经存在的父表的主键,外键可以为空值 外键的作用是建立该表与其父表的关联关系 3、设置表的非空约束 非空性是指字段的值不能为空值(NULL),非空约束将保证所有记录中该字段都有值 设置表的非空约束是指在创建表时为表的某些特殊字段加上 NOT NULL 约束条件 举例: create table example4 ( id int not null primary kye,
name varchar(20) not null,
stu_id int,
constraint d_fk foreign key(stu_id)
references example1(stu_id)
); 注释: stu_id字段为外键,d_fk为外键的别名,example1表为example4表的父表,example4表的外键依赖于父表的主键stu_id 4、设置表的唯一性约束 唯一性是指所有记录中该字段的值不能重复出现 举例: create table example5( id int primary key,
stu_id int unique,
name varchar(20) not null
); 5、设置表的属性值自动增加 auto_increment是MYSQL中的一个特殊约束条件,其主要作用是为表中新插入的新纪录自动生成唯一的ID; 一个表只能有一个字段使用auto_increment约束,且该字段必须为主键的一部分; auto_increment约束的字段可以是任何整数类型; 默认情况下,该字段的值是从1开始增加 举例: create table example6( id int primary key auto_increment,
stu_id int unique,
name varchar(20) not null
); 注释:如果第一条记录设置了该字段的初始值,那么新增加的记录就会从初始值开始增加 6、设置表的属性的默认值 在创建表时可以指定表中字段的默认值, 如果在插入一条新的记录时,没有为这个字段赋值,那么数据库系统会自动为这个字段插入默认值 举例: create table example7 (id int primary key auto_increment,
stu_id int unique,
name varchar(20) not null,
english varchar(20) default 'zero',
math float default 0,
computer float default 0
); 注释:如果没有使用default关键字指定字段的默认值,也没有指定字段为非空,那么字段的默认值为空NULL 四、查看表结构 查看表结构是指:查看数据库中已经存在的表的定义 1、查看表基本结构的语句:describe describe语句可以查看表的基本定义:其中包括字段名、字段数据类型、是否为主键和默认值等; describe语句的语法格式如下:
describe 表名; describe可以缩写为desc 2、查看表的详细结构语句show create table 该语句可以查看表的字段名、字段的数据类型、完整性约束条件等信息。除此之外还可以查看表的默认的存储引擎和字符编码 show create table的语法格式如下:
show create table 表名; 以整洁的格式显示的语法格式如下:
show create table 表名 \G; 举例:
show create table example \G; 五、修改表 1、修改表名 语法格式:alter table 旧表名 rename [to] 新表名; 举例:alter table example1 rename user; 注释:修改后example1表就不存在了,只存在名为user的新表,但是其内容是一致的,只是换了个名称 2、修改字段的数据类型 语法格式:alter table 表名 modify 属性名 数据类型; 注释:表名指所要修改数据类型的字段的表的名称; 属性名指:所要修改数据类型字段的名称; 数据类型指:修改后的新的数据类型 举例:alter table user modify name varchar(30); 修改前先desc user 修改后再desc user 就会发现name字段的数据类型改变了 3、修改字段名 语法格式:alter table 表名 change 旧属性名 新属性名 新数据类型; 举例:alter table example1 change stu_sex sex int(2); 注释:新数据类型指修改后的数据类型,如不需要修改,则将新数据类型设置成与原来一样 修改整数类型时可能会影响表中的数据,特别注意的是字符类型的字段最好不要修改成整数类型或者浮点数类型 4、增加字段 语法格式:alter table 表名 add 属性名1 数据类型 [完整性约束条件] [first | after 属性名2]; 完整性约束条件:是可选参数,用来设置新增字段的完整性约束条件 first:是可选参数,其作用是将新增字段设置为表的第一个字的 after:是可选参数,其作用是将新增字段添加到“属性名2”所指的字段后 如果执行的SQL语句中没有“first”或者“after 属性名2”参数指定新增字段的位置,则新增字段默认为表的最后一个字段 (1)增加无完整性约束条件的字段 举例:alter table user add phone varchar(20); (2)增加有完整性约束条件的字段 举例:alter table user add age int(4) not null; (3)表的第一个位置增加字段 举例:alter table user add num int(8) primary key first; (4)表的指定位置之后增加字段 举例:alter table user add address varchar(20) not null after phone; 5、删除字段 删除字段是删除表中已经定义好的表中的某个字段,删除后其字段所属的数据都会被删除 语法格式:alter table 表名 drop 属性名; 6、修改字段的排列位置 语法格式:alter table 表名 modify 属性名1 数据类型 first|after 属性名2; (1)字段修改到第一个位置 举例:alter table user modify name varchar(20) first; (2)字段修改到指定位置 举例:alter table user modify sex tinyint(1) after age; 7、更改表的存储引擎 语法格式:alter table 表名 engine=存储引擎名; 8、删除表的外键约束 ********************************************************************** 9、删除表 (1)删除没有被关联的普通表 语法格式:drop table 表名; (2)删除被其它表关联的父表 删除子表的外键约束,再删除父表 *****************************************************************************
mysql——创建表、修改表、删除表(概念详细讲解)的更多相关文章
- MySQL:创建、修改和删除表
其实对很多人来说对于SQL语句已经忘了很多,或者说是不懂很多,因为有数据库图形操作软件,方便了大家,但是我们不能忘记最根本的东西,特别是一些细节上的东西,可能你用惯了Hibernate,不用写SQL语 ...
- SQLite 入门教程(二)创建、修改、删除表 (转)
转于 SQLite 入门教程(二)创建.修改.删除表 一.数据库定义语言 DDL 在关系型数据库中,数据库中的表 Table.视图 View.索引 Index.关系 Relationship 和触发器 ...
- SQLite 入门教程(二)创建、修改、删除表
一.数据库定义语言 DDL 在关系型数据库中,数据库中的表 Table.视图 View.索引 Index.关系 Relationship 和触发器 Trigger 等等,构成了数据库的架构 Schem ...
- MySQL基础之第6章 创建、修改和删除表 .
6.1.创建表 6.1.1.创建表的语法形式 CREATE TABLE 表名 ( 属性名 数据类型 [完整性约束条件],属性名 数据类型 [完整性约束条件],...... 属性名 数据类型); 完整性 ...
- [MYSQL][1]创建,修改,删除表
查看有哪些数据库: SHOW DATABASES; 创建,删除数据库: CREATE DATAABASE mydb; DROP DATABASE mydb; 查看有哪些表: SHOW TABLES; ...
- MySQL创建、修改、删除数据库
创建数据库 CREATE DATABASE [IF NOT EXISTS] t1 CHARACTER SET [=] utf8: 中括号中的代码可有可无:CHARATER如果不写则创建为默认的字符. ...
- Oracle.数据的增删改、表操作(创建,修改,删除)、数据类型
SELECT ename,dname FROM emp,dept WHERE emp.deptno=dept.deptno; SELECT dname,loc FROM dept; SELECT JO ...
- 05Oracle Database 表空间查看,创建,修改及删除
Oracle Database 表空间查看,创建,修改及删除 查看用户表空间 查看数据库管理员表空间表结构 desc dba_tablespaces; 查询表空间名称从管理员表空间表中 select ...
- MySQL根据表前缀批量修改、删除表
注意:请先调试好,以及做好备份,再执行操作. 批量修改表 批量给前缀为 xushanxiang_content_ 的表增加一个 username 的字段: SELECT CONCAT('ALTER T ...
- Oracle 基本操作--数据类型、修改和删除表、增删改查和复制表
一.Oracle基础数据类型:数据类型: 创建数据表时,设计数据表的结构问题,也就是设计及确定数据表中各个列的数据类型,是数值.字符.日期还是图像等其他类型. 因为只有设计好数据表结构,系统才会在磁盘 ...
随机推荐
- centos 6.5 解压 zip
只查看 zip 文件内容而不解压 unzip -l filename.zip 解压到指定目录(不指定则为当前目录) unzip filename.zip -d /usr/file 压缩文件或目录为 z ...
- 【Winfrom-Panel】Panel隐藏与显示,自动隐藏菜单, Auto-Hide Menu
设计界面:2个button,一个panel 当鼠标移动到btnHome时,显示menuPanel 当鼠标离开btnHome时,隐藏menuPanel 当btnPin箭头向左时,menuPanel为自动 ...
- C# List分组
//分组 8个为一组 List<List<string>> ArrayList = sArray.Select((x, i) => new { Index = i, Va ...
- EF 批量添加数据
原文:https://www.cnblogs.com/liuruitao/p/10049191.html 原文:https://www.cnblogs.com/yaopengfei/p/7751545 ...
- React-native 触摸事件
http://www.360doc.com/content/16/0711/23/34978982_574835465.shtml
- 在py文件中运行flask cli命令
主要是打包成exe之后,用于运行命令行. 命令行是 @app.cli.command() def mock(): ... 这样定义的 本来是用flask mock 这样方式运行的 打包后,希望用 ap ...
- hdu 1297
Children's Queue Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) To ...
- codevs 1464 装箱问题 2 x
题目描述 Description 一个工厂制造的产品形状都是长方体,它们的高度都是h,长和宽都相等,一共有六个型号,他们的长宽分别为1*1, 2*2, 3*3 ...
- 「美团 CodeM 资格赛」试题泛做
LibreOJ真是吼啊! 数码 推个式子,把枚举因数转为枚举倍数.然后就发现它是根号分段的.然后每一段算一下就好了. #include <cstdio> #include <cstr ...
- php写入文件来调试接口数据
$fp = fopen('write.txt', 'a+b'); //a+读写方式打开,将文件指针指向文件末尾.b为强制使用二进制模式. 如果文件不存在则尝试创建之. fwrite($fp, prin ...