MySQL数据表基本操作实例详解
本文实例讲述了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数据库计有所帮助。
更多相关文章
- MySQL系列多表连接查询92及99语法示例详解教程
- Android(安卓)- Manifest 文件 详解
- Android的Handler机制详解3_Looper.looper()不会卡死主线程
- Selector、shape详解(一)
- android2.2资源文件详解4--menu文件夹下的菜单定义
- Android发送短信方法实例详解
- Android(安卓)读取资源文件实例详解
- 详解Android中的屏幕方向
- Android学习笔记(10)————Android的Listview详解1(ArrayAdapte