1.创建表:之前需要use database database_name 然后create table 表名();

例:创建员工表tb_employee1,结构如下表所示

字段名称

数据类型

备注

id

int(11)

员工编号

name

varchar(25)

员工名称

depld

int(11)

所在部门编号

salary

float

工资

mysql> create database aa;
mysql> use aa;
mysql> create table tb_employee1(id int(11),name varchar(25),depld int(11),salary float);

2.主键约束:主键又称主码,是表中一列或多列的组合。主键约束要求主键列的数据唯一,并且不能为空。主键能够唯一标识表中的一条记录,可以结合外键来定义不同数据表之间的关系,并且可以加快数据库查询速度。主键分为两种类型:单字段主键和多字段联合主键。

(1)单字段主键

mysql> create table tb_employee1(id int(11)primary key,name varchar(25),depld int(11),salary float);
mysql> create table tb_employee1(id int(11),name varchar(25),depld int(11),salary float,primary key(id));

(2)多字段联合主键

mysql> create table tb_employee1(id int(11),name varchar(25),depld int(11),salary float,primary key(id,name));

3.外键约束:外键用来在两个表之间建立联系,它可以是一列或者多列。一个表可以有一个或者多个外键。外键对应的是参照完整性,一个表的外键可以是空值,若不为空值,则每一个外键必须等于另一个表中主键的某个值。

下面介绍几个概念。是表中的一个字段,它可以不是本表的主键,但对应另外一个表的主键。外键的主要作用是保证数据引用的完整性,定义外键后,不允许删除在另一个表中具有关联关系的主键。例如:部分表的主键id,在表tb中有一个键deptld与这个id关联。

主表(父表):对于两个具有关联关系的表而言,相关字段中主键所在的那个表就是主表。

从表(自表):对于两个具有关联关系的表而言,相关字段中外键所在的那个表就是从表。

例:定义数据表tb_employee5,并且在该表中创建外键约束

创建一个部门表tb_dept1,表结构如下表所示

字段名称

数据类型

备注

id

int(11)

部门编号

name

varchar(22)

部门名称

location

varchar(50)

部门位置

mysql> create table tb_dept1(id int(11)primary key,name varchar(22),location varchar(50));
定义数据表tb_employee5,让它的deptld字段作为外键关联到tb_dept1的主键id:
mysql> create table tb_employee5(id int(11)primary key,name varchar(25),deptld int(11),salary float,constraint fk_emp_dept1 foreign key(deptld) references tb_dept1(id));

4.非空约束(not null):是指字段的值不能为空。对于使用了非空约束的字段,如果用户在添加数据时没有指定值,数据库系统会报错。

语法规则:字段名 数据类型 not null

例:定义数据表tb_employee6,指定员工的名称不能为空

mysql> create table tb_employee6(id int(11)primary key,name varchar(25)not null,deptld int(11),salary float);

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

(1)在定义完列之后直接指定唯一约束

语法规则:字段名 数据类型 unique

mysql> create table tb_dept2(id int(11)primary key,name varchar(22)unique,location varchar(50));

(2)在定义完所有列之后指定唯一约束

语法规则:constraint 约束名 unique(字段名)

mysql> create table tb_dept3(id int(11)primary key,name varchar(22),location varchar(50),constraint sth unique(name));

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

6.默认约束:指定某列的默认值。如男性同学较多,性别就可以默认为“男”。如果插入一条新的记录时没有为这个字段赋值,那么系统自动会为这个字段赋值为男。

语法规则:字段名 数据类型 default 默认值

例:mysql> create table tb_employee7(id int(11)primary key,name varchar(25)not null,deptld int(11)default 1111,salary float);

7.设置数据表的属性值自动增加:在数据库应用中,经常希望在每次插入新数据时,系统会自动生成字段的主键值。可以为表主键添加auto_increment关键字来实现。在mysql中,默认情况下auto_increment初始值为1,每新增一条记录,字段自动加1.一个表只能有一个字段使用auto_increment约束,且每个字段必须为主键的一部分。auto_increment约束的字段可以是任何整数类型(tinyint/samllint/int/bigint)。

语法规则:字段名 数据类型 auto_increment

例:定义数据表tb_employee8,指定员工标号自动增加

mysql> create table tb_employee8(id int(11)primary key auto_increment,name varchar(25)not null,deptld int(11),salary float);
mysql> insert into tb_employee8(name,salary) values('lucy',1000),('lii',800),('cai',20000);
Query OK, 3 rows affected (0.00 sec)
Records: 3 Duplicates: 0 Warnings: 0 mysql> select * from tb_employee8;
+----+------+--------+--------+
| id | name | deptld | salary |
+----+------+--------+--------+
| 1 | lucy | NULL | 1000 |
| 2 | lii | NULL | 800 |
| 3 | cai | NULL | 20000 |
+----+------+--------+--------+
3 rows in set (0.00 sec)

8.查看数据表的结构

查看表基本结构:describe 表名 或 desc 表名

mysql> desc tb_employee8;
+--------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| name | varchar(25) | NO | | NULL | |
| deptld | int(11) | YES | | NULL | |
| salary | float | YES | | NULL | |
+--------+-------------+------+-----+---------+----------------+

(1)NULL:表示该列是否可以存储null值

(2)key:表示该列是否已经编制索引。pri为该列主键的一部分;uni表示该列是unique索引的一部分;mul表示在列中某个给定值允许出现多次。

9.查看表详细结构

语法规则:show create table 表名\G

mysql> show create table tb_employee8\G
*************************** 1. row ***************************
Table: tb_employee8
Create Table: CREATE TABLE `tb_employee8` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(25) NOT NULL,
`deptld` int(11) DEFAULT NULL,
`salary` float DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=4 DEFAULT CHARSET=latin1
1 row in set (0.00 sec)

10.修改数据表:修改数据库中已经存在的数据表结构。常用的修改表的操作有:修改表名,修改字段数据类型或字段名,增加和删除字段,修改字段的排列位置,更改表的存储引擎,删除表的外键约束等。

(1)修改表名

alter table 旧表名 rename 新表名
例:mysql> alter table tb_dept3 rename tb_deptment3;

(2)修改字段数据类型

alter table 表名 modify 字段名 数据类型
例:mysql> alter table tb_dept1 modify name varchar(30);

(3)添加字段

alter table 表名 add 新字段名 数据类型
例1:mysql> alter table tb_dept1 add managerld int(20);(没有完整性约束条件的字段)
例2:mysql> alter table tb_dept1 add column1 varchar(12) not null;(添加有约束条件)
例3:mysql> alter table tb_dept1 add column2 int(11) first;(添加到第一列)
例4:mysql> alter table tb_dept1 add column3 int(11) after name;(添加到name后一列)

(4)删除字段

alter table 表名 drop 字段名
例:mysql> alter table tb_dept1 drop column3;

(5)修改字段排序

alter table 表名 modify 字段1 数据类型 first after 字段2
例1:mysql> alter table tb_dept1 modify id int(11) first;
例2:mysql> alter table tb_dept1 modify column2 int(11) after column1;

(6)更改表的数据引擎

alter table 表名 engine=更改后的存储引擎
例:mysql> alter table tb_dept1 engine=innodb;

(7)删除表的外键约束

alter table 表名 drop foreign key 外键约束名

(8)修改字段名

mysql> alter table customers change c_contact c_phone varchar(50);

11.删除数据表

drop table 表1 表2 。。。

删除被其他表关联的主表:先删除字表,再删除主表(或取消外键约束,删除主表)

Mysql-5-数据表的基本操作的更多相关文章

  1. mysql(三) 数据表的基本操作操作

    mysql(三) 数据表的基本操作操作 创建表,曾删改查,主键,外键,基本数据类型. 1. 创建表 create table 表名( 列名 类型 是否可以为空, 列名 类型 是否可以为空 )ENGIN ...

  2. 02 MySQL之数据表的基本操作

    01-创建数据表 # 切换数据库 use test_db; # 创建数据表 语法规则如下: create table 表名 ( 字段名1, 数据类型 [列级别约束条件] [默认值], 字段名2, 数据 ...

  3. MySql修改数据表的基本操作(DDL操作)

    1.查看数据库的基本语句:show databases; 2.选择相应的数据库进入语法:use 数据库名; 3.查看数据库中的表语法:show tables; 4.查看表的基本结构语句:desc 表名 ...

  4. MySql修改数据表的基本操作(DDL操作)

    1.查看表基本结构语句: DESC 表名 2,查看表详细结构语句:show create table 表名 3.修改表名:alter table 旧表名 rename to 新表名 4.修改字段的数据 ...

  5. MySQL(一) 数据表数据库的基本操作

    序言 这类文章,记录我看<MySQL5.6从零开始学>这本书的过程,将自己觉得重要的东西记录一下,并有可能帮助到你们,在写的博文前几篇度会非常基础,只要动手敲,跟着我写的例子全部实现一遍, ...

  6. MySQL数据库 | 数据库和数据表的基本操作

    第一篇博文,一个小小的纪念仪式^-^ 以下正文 一.数据库的基本操作 --数据库的操作 --连接数据库 mysql -uroot -p密码 mysql -uroot -pmysql --退出数据库 e ...

  7. MySQL<数据库和表的基本操作>

    数据库和表的基本操作 数据库基础知识 创建数据库 就是在数据库系统中划分一块存储数据的空间 CREATE DATABASE itcast; 查看数据库 SHOW CREATE DATABASE 数据库 ...

  8. Mariadb/MySQL数据库单表查询基本操作及DML语句

    Mariadb/MySQL数据库单表查询基本操作及DML语句 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一数据库及表相关概述 1>.数据库操作 创建数据库: CREATE ...

  9. MySQL数据库-数据表(上)

    数据表的基本操作. MySQL 数据库支持多种数据类型,大致可以分为 3 类:数值类型.日期和时间类型.字符串(字符)类型. (1)数值类型 数值类型用于存储数字型数据,这些类型包括整数类型(TINY ...

  10. MySQL为数据表的指定字段插入数据

    username not null 没有默认值/有默认值   insert不插入username字段 均不报错 2014年07月23日21:05    百科369 MySQL为数据表的指定字段插入数据 ...

随机推荐

  1. 为什么jdk1.8不支持sql.append,该如何解决

    StringBuilder sql = new StringBuilder("SELECT ID,COMMAND,DESCRIPTION,CONTENT FROM message where ...

  2. 重写ScrollView实现两个ScrollView的同步滚动显示

    1.背景介绍 最近项目用到两个ScrollView的同步显示,即拖动左边的ScrollView滚动的同时,实现右边的ScrollView同步滚动.此种情形常用在复杂界面布局中,比如左边的ScrollV ...

  3. 洛谷【P1561】[USACO12JAN]爬山Mountain Climbing

    我对\(Jhonson\)算法的理解:https://www.cnblogs.com/AKMer/p/9863620.html 题目传送门:https://www.luogu.org/problemn ...

  4. strcmp strcpy的使用 char类型

    //判断从控制台输入的密码是否正确 BOOL varifyPassWord(char passWord[] , int index) { BOOL result = YES; int count = ...

  5. java用write()拷贝一个文本文件

    总结:灵活运用循环语句,或条件判断语句.每一种流的正确使用方法: 这里是两种方法: package com.ds; import java.io.*; public class tyut { /*pu ...

  6. css中的特殊居中

    大图居中: 先看一下普通的居中: 代码为: <!DOCTYPE html> <html lang="en"> <head> <meta c ...

  7. Spring MVC Flash Attribute 的讲解与使用示例

    转自:https://www.oschina.net/translate/spring-mvc-flash-attribute-example Spring MVC 3.1版本加了一个很有用的特性,F ...

  8. 【java并发编程艺术学习】(三)第二章 java并发机制的底层实现原理 学习记录(一) volatile

    章节介绍 这一章节主要学习java并发机制的底层实现原理.主要学习volatile.synchronized和原子操作的实现原理.Java中的大部分容器和框架都依赖于此. Java代码 ==经过编译= ...

  9. Matlab零碎知识

    1.不定积分的求取 int syms x;%为自变量 f=x.^2; s=int(f,x); 其中显示辅助函数simple()和pretty()

  10. 【总结整理】关于IE6的兼容性

    1. /*IE6兼容性,input边框border:none无效,不能去掉,只能把背景颜色去掉*/ background: none; /*background-color:#fff ;*/ 2. / ...