MySQL数据库(⼆)—MySQL数据库表的基本操作
该章要点
⼀、查看数据库表; 【show tables;】
命令语句:use db_demo1;
show tables;
⼆、创建数据库表【create table 表名(字段名1,数据类型列级别约束条件默认值,字段名2,数据类型列级别约束条件默认值,…表级别约束条件); 】
命令语句:
查看当前所有数据库show databases;
创建数据库:create database db_demo1;
选择数据库:use db_demo1;
创建包含字段表:create table tb_employee(id int(11),name varchar(25),departmentIdint(11),salary float);
三、查看数据表结构【describe 表名; 或者 desc 表名; 】
查看表的详细结构:【show create table 表名\G; 】
四、定义主键约束
主键是唯⼀能够表⽰⼀条记录的字段,他们之间是⼀⼀对应的关系,就像⾝份证号码和⼈之间的关系⼀样,通过主键可以定义不同数据表之间的关系。主键分为两种类型:单字段主键和多字段联合主键。
(1).单字段主键
同时定义单字段主键
语法结构:create table 表名(字段名,数据类型列级别约束条件默认值 primary key,…);
命令语句:create table tb_employee2(id int(11) primary key,name varchar (25),departmentId int(11),salary float);
最后定义单字段主键
语法结构:create table 表名(字段名,数据类型列级别约束条件默认值,…primary key (字段名));
(2) 多字段联合主键
语法结构:create table 表名(字段名,数据类型列级别约束条件默认值,…primary key (字段1,字段2,…,字段n));
五、定义外键约束
外键是表中的⼀个字段,它不是本表的主键,但对应另外⼀个表的主键,⼀个表可以有⼀个或多个外键,多个外键字段名称不能相同。外键⽤来在两个表之间建⽴连接,它可以是⼀列或多列。
外键对应的是参照完整性,⼀个表的外键可以是空值,如果不为空值,那么每⼀个外键值必须等于另⼀个表中主键的某个值。
语法结构:create table ⼦表名(字段名,数据类型列级别约束条件默认值primary key,…constraint 外键约束名称 foreign key(字段) references ⽗表名(主键字段));
定义数据表tb_employee5,让它的键departmentId作为外键连接到tb_department1表的主键id
六、定义⾮空约束
⾮空约束是指字段的值不能为空,对于使⽤了⾮空约束的字段,如果⽤户在添加数据时没有指定值,数据系统会报错。
语法结构:create table 表名(字段1 数据类型默认值 primary key,字段2 数据类型默认值 not null,…);
七、定义唯⼀性约束
唯⼀性要求该列唯⼀,允许为空,但只能出现⼀个空值,唯⼀性能确保⼀列或⼏列值不重复。
(1)在定义玩列后直接定义唯⼀约束
语法结构:create table 表名(字段1 数据类型默认值 primary key,字段2 数据类型默认值 unique,…);
mysql删除重复的数据保留一条
(2)在定义完所有列之后指定唯⼀约束
语法结构:create table 表名(字段1 数据类型默认值 primary key,字段2 数据类型默认值 ,…,constraint sth unique(字段1,字段2,…));
⼋、定义默认值约束
默认约束可以指定某列的默认值
语法结构:create table 表名(字段1 数据类型默认值 primary key,字段2 数据类型 default 默认值 ,…);
九、定义表属性值的⾃动增加
在数据库应⽤中,经常希望在每次插⼊新纪录时,系统会⾃动⽣成字段的主键值,这可以通过为主键添加AUTO_INCREMENT关键字来实现。
MySQL中它的初始值默认为1。注意,⼀个表只能有⼀个⼀个字段使⽤⾃增约束,且该字段为主键的⼀部分。它可以是任意的整数类型
(tinyint,smallint,int,bigint等)
语法结构:create table 表名(字段1 数据类型默认值 primary key auto_increment,字段2 数据类型默认值 ,…);
⼗、修改数据表
修改表是指修改数据库中已有数据表的结构。MySQL使⽤alter table语句修改表。
(1)修改表名

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。