本文实例讲述了MySQL数据表基本操作。分享给大家供大家参考,具体如下:

数据表的基本操作

1.主键约束要求主键列的数据唯一,并且不允许为空。主键能够唯一地识别表中的一条记录,可以结合外键来定义不同数据表之间的关系,并且可以加快数据库查询的速度。主键和记录之间的关系如同身份证和人之间的关系。

2.字表的外键必须关联父表的主键,且关联字段的数据类型必须匹配。如果类型不一样。创建子表时,就会出现错误:ERROR 1005(HY000):can't create table 'databases.tablesname'(error:150)

3.非空约束指字段的值不能为空。

4.唯一性约束:要求该列唯一,允许为空,但只能出现一个空值。唯一约束可以确保一列或者几列不出现重复值。

5.unique和primary key 的区别:一个表中可以有多个字段声明为unique,但只能有一个primary key声明:声明为关键字的列不允许为空值,但是声明为unique的字段允许空值null的存在。

【例.1】创建员工表tb_emp1

选择创建表的数据库:

USE test_db;
CREATE TABLE tb_emp1(id int(11),name varchar(25),deptId int(11),salary float);
CREATE TABLE tb_emp2(id int(11) PRIMARY KEY,name varchar(25),deptId int(11),salary float);

定义数据表tb_emp 3,其主键为id:

CREATE TABLE tb_emp3(id int(11),name varchar(25),deptId int(11),salary float,PRIMARY KEY(id));
CREATE TABLE tb_emp4(name varchar(25),deptId int(11),salary float,PRIMARY KEY(name,deptId));

创建一个部门表tb_dept1:

CREATE TABLE tb_dept1(id int(11) PRIMARY KEY,name varchar(22) NOT NULL,location varchar(50));
CREATE TABLE tb_emp5(id int(11) PRIMARY KEY,name varchar(25),deptId int(11),salary float,CONSTRAINT fk_emp_dept1 FOREIGN KEY(deptId) REFERENCES tb_dept1(id));
CREATE TABLE tb_emp6(id int(11) PRIMARY KEY,name varchar(25) NOT NULL,deptId int(11),salary float,CONSTRAINT fk_emp_dept2 FOREIGN KEY (deptId) REFERENCES tb_dept(id));
CREATE TABLE tb_dept2(id int(11) PRIMARY KEY,name varchar(22) UNIQUE,location varchar(50));

定义数据表tb_dept3,指定部门的名称唯一,SQL语句为:

CREATE TABLE tb_dept3(id int(11) PRIMARY KEY,name varchar(22),location varchar(50),CONSTRAINT STH UNIQUE(name));
CREATE TABLE tb_emp7(id int(11) PRIMARY KEY,name varchar(25) NOT NULL,deptId int(11) DEFAULT 1111,salary float,CONSTRAINT fk_emp_dept3 FOREIGN KEY (deptId) REFERENCES tb_dept(id));
CREATE TABLE tb_emp8(id int(11) PRIMARY KEY AUTO_INCREMENT,name varchar(25) NOT NULL,deptId int(11),salary float,CONSTRAINT fk_emp_dept5 FOREIGN KEY (deptId) REFERENCES tb_dept(id));INSERT INTO tb_emp8 (name,salary) VALUES('Lucy',1000), ('Lura',1200),('Kevin',1500);select * from tb_emp8;
DESCRIBE tb_dept;DESC tb_emp1;
SHOW CREATE TABLE tb_emp1;SHOW CREATE TABLE tb_emp1\G;

2.查看表详细结构语句 show create table。 如果不加‘\G'参数,显示的结果可能非常混乱,加上参数‘\G'之后,可使显示结果更加直观,易于查看。

修改数据表

1.修改表名

【例.13】将数据表tb_dept3改名为tb_deptment3

ALTER TABLE tb_dept3 RENAME tb_deptment3;

【例.14】将数据表tb_dept1中name字段的数据类型由VARCHAR(22)的修改成VARCHAR(30)

ALTER TABLE tb_dept MODIFY name VARCHAR(30);

【例.15】将数据表tb_dept1中的location字段名称改为loc,数据类型保持不变。

ALTER TABLE tb_dept1 CHANGE location loc varchar(50);
ALTER TABLE tb_dept1 CHANGE loc location varchar(60);

【例.17】在数据表tb_dept中添加一个没有完整性约束的int类型的字段managerId(部门经理编号),输入SQL语句如下:

ALTER TABLE tb_dept ADD managerId int(10);
ALTER TABLE tb_dept1 ADD column1 varchar(12) not null;
ALTER TABLE tb_dept ADD column2 int(11) FIRST;
ALTER TABLE tb_dept1 ADD column3 int(11) AFTER name;

【例.21】删除数据表tb_dept1表中的column2字段

ALTER TABLE tb_dept1 DROP column2;

【例.22】将数据表tb_dept1中的column1字段修改为表的第一个字段

ALTER TABLE tb_dept1 MODIFY column1 varchar(12) FIRST;
ALTER TABLE tb_dept1 MODIFY column1 varchar(12) AFTER location;

【例.25】删除数据表tb_emp9中的外键约束

CREATE TABLE tb_emp9(id int(11) PRIMARY KEY,name varchar(25),deptId int(11),salary float,CONSTRAINT fk_emp_dept FOREIGN KEY (deptId) REFERENCES tb_dept1(id));ALTER TABLE tb_emp9 DROP FOREIGN KEY fk_emp_dept;
DROP TABLE IF EXISTS tb_dept2;
CREATE TABLE tb_dept2(id int(11) PRIMARY KEY,name varchar(22),location varchar(50));CREATE TABLE tb_emp(id int(11) PRIMARY KEY,name varchar(25),deptId int(11),salary float,CONSTRAINT fk_emp_dept FOREIGN KEY (deptId) REFERENCES tb_dept2(id));
DROP TABLE tb_dept2;
ALTER TABLE tb_emp DROP FOREIGN KEY fk_emp_dept;

希望本文所述对大家MySQL数据库计有所帮助。

更多相关文章

  1. MySQL系列多表连接查询92及99语法示例详解教程
  2. Android(安卓)- Manifest 文件 详解
  3. Android的Handler机制详解3_Looper.looper()不会卡死主线程
  4. Selector、shape详解(一)
  5. android2.2资源文件详解4--menu文件夹下的菜单定义
  6. Android发送短信方法实例详解
  7. Android(安卓)读取资源文件实例详解
  8. 详解Android中的屏幕方向
  9. Android学习笔记(10)————Android的Listview详解1(ArrayAdapte

随机推荐

  1. php中如何进行小写转换?
  2. PHP以正则表达式验证手机号码
  3. 如何实现php中date只显示年月日
  4. 如何解决php中fpm无法启动
  5. 如何解决php连接erp数据库失败
  6. 如何解决在php用gd库输出图片到微信浏览
  7. 详解PHP中php switch的方法实例
  8. 代码分析php中的回调函数
  9. PHP使用 is_numeric的实例解析
  10. PHP 使用 Trait 解决 PHP 单继承问题的实