数据表的基本操作(一)
来源:互联网 发布:360手柄淘宝哪里买 编辑:程序博客网 时间:2024/04/30 07:57
数据表是数据库中最重要、最基本的操作对象,是数据存储的基本单位。
数据表定义为列的集合
在创建数据表之前,应该使用语句 use <数据库名> 指定操作是在哪个数据库中进行
创建表的语句为create table,语法规则为:
create table 表名( 字段名1,数据类型 [列级别约束条件] [默认值], 字段名2,数据类型 [列级别约束条件] [默认值], 。。。。 [表级别约束条件]);mysql> create table tb1 -> (id int(11), -> name varchar(25), -> deptId int(11), -> salary float -> );Query OK, 0 rows affected (0.35 sec)
创建表的时候需要指定以下信息:
1.表名称,不区分大小写,不可以使用sql语言中的关键字
2.数据表中每一个列的名称和数据类型,多个列要用逗号分隔
使用show tables;来查看已经存在的表
mysql> show tables;+------------------+| Tables_in_mytest |+------------------+| tb1 |+------------------+1 row in set (0.02 sec)//我的数据库名称为mytest表名为tb1
主键,即主码,是表中一列或者多列的组合,主键约束要求主键列的数据的唯一并且不可以为空,主键可以唯一的标识表中的一条记录。
主键分为:单字段主键和多字段主键
单字段主键
1.定义列的同时指定主键,语法规则为
字段名 数据类型 primary key [默认值] 例如: id int(11) primary key,//这里就定义了id为主键
2.在定义完所有列后制定主键
[constraint<约束名>] primary key [字段名] 例如: primary key(id)
多字段联合主键
语法规则为:
primary key[字段1,字段2,字段3]mysql> create table td2 -> ( -> name varchar(25), -> deptId int(11), -> salary float, -> primary key(name,deptId) -> );Query OK, 0 rows affected (0.10 sec)
使用外键约束
外键:用来在两个表的数据之间来建立链接的,可以是一列或者多列,一个表可以有一个或者多个外键
外键对应的是参照完整性,一个表的外键可以为空值,若不为空值,那么每一个外键值必须要等于另一个表中主键的某个值
定义外键后,不允许删除在另一个表中具有关联关系的行。
主表:对于两个具有关联关系的表而言,相关联的字段中主键所在的那个表就是主表
从表:对于两个具有关联关系的表而言,相关联的字段中外键所在的那个表就是从表
创建外键的语法:
[constraint <外键名>] foreign key 字段名1 [,字段名2,。。。]references <主表名> 主键列1 [,主键列2,。。]
外键名为需要定义的外键约束的名字,一个表中不能有相同名称的外键
字段名:子表中需要添加外键约束的字段列
主表名:被子表外键所依赖的表的名称
主键列:主表中定义的主键列,或者列组合
mysql> create table tb2 -> ( -> id int(11), -> deptid int(11), -> primary key(id) -> );Query OK, 0 rows affected (0.06 sec)mysql> create table tb3 -> ( -> id int(11), -> dp int(11), -> constraint empid foreign key(dp) references tb2(id) -> );Query OK, 0 rows affected (0.06 sec)//这里最终会使得tb3中添加了名称为empid的外键约束,外键名称为dp,依赖与表tb2中的**主键**id,在这里还应该注意的是//子表的外键必须是关联父表的主键,且关联字段的数据类型必须匹配,如果类型不一致会报错
非空约束代表的是字段的值不能为空,添加了非空约束的字段,如果用户在添加数据的时候没有指定值,那么会报错
语法规则
字段名 数据类型 not null
具体案例:
mysql> create table tb4 -> ( -> id int(11) not null -> );Query OK, 0 rows affected (0.11 sec)
表明了id不可以为空
唯一性约束要求该列唯一,允许为空,但是只能出现一个空值。唯一约束可以确保一列或者几列不出现重复值
语法规则有两种
1.在定义完列后直接指定唯一约束
字段名 数据类型 unique
mysql> create table tb5 -> ( -> id int(11) primary key, -> name varchar(25) unique -> );Query OK, 0 rows affected (0.09 sec)
2.定义完所有列之后指定唯一约束
[constraint <约束名>] unique(<字段名>)
mysql> create table tb6 -> ( -> id int(11) primary key, -> name varchar(25) -> , -> constraint sth unique(name) -> );Query OK, 0 rows affected (0.19 sec)
这里指定了name的名称的唯一
unique和primary key的区别:
一个表中可以有多个字段声明为unique,但是只能有一个primary key 声明,声明为primary key的列不允许出现空值,但是声明为unique的字段允许有空值的出现
- 数据表的基本操作(一)
- 数据表的基本操作
- 数据表的基本操作
- 数据表的基本操作
- 数据表的基本操作
- 数据表的基本操作(二)
- MySQL(二)--数据表的基本操作
- 数据表的基本操作之创建数据表
- 数据表操作(一)
- mysql 数据表的基本操作
- MySQL:数据表的基本操作
- mysql:数据表的基本操作
- MySQL 数据表的基本操作
- 数据表的基本操作、数据类型
- mysql 数据表的基本操作
- Mysql数据表的操作(一)
- MYSQL基本操作(2)-数据表的操作
- JDBC对数据表的基本操作(JDBC之二)
- 批量获取主机名对应的ip地址
- 聆听中国—一款收音机类App的前世今生
- Reverse Integer
- C#常用的集合类型(ArrayList类、Stack类、Queue类、Hashtable类、SortedList类)
- Hibernate与Mybatis对比
- 数据表的基本操作(一)
- 黑马程序员——JAVA笔记——集合框架3——map
- 经过一年时间的沉淀 再次回首 TCP Socket服务器编程
- 线程的学习(一)
- Design Pattern Explained 读书笔记一 重新认识面向对象|规范使用UML
- Swift基本使用-数据类型(一)
- UIViewController的生命周期及iOS程序执行顺序
- Java基础---多线程
- [华为机试真题]73.公交站寻址