Mysql表基本操作
一. 创建表的方法
语法:create table 表名(
属性名数据类型完整约束条件,
属性名数据类型条完整约束件,
。。。。。。。。。
属性名数据类型
);
(1)举例:
1 create table example0(
id int,
name varchar(),
sexboolean);
| 约束条件 | 说明 |
| (1)primary key | 标识该字段为表的主键, |
| (2) foreign key | 标识该字段为表的外键,与某主表相连系 |
| (3) not null | 标识该属于的值不能为空 |
| (4) unique | 标识这个属性值是唯一 |
| (5) auto_increment | 标识该属性值的自动增加 |
| (6) default | 为该属性值设置默认值 |
1.1 设置表的主键
主键是一个表的特殊字段,这个字段是唯一标识表中的每条信息,主键和记录的关系,跟人和身份证一样。名字可以一样,但是身份证号码绝对不会一样,主键用来标识每个记录,每个记录的主键值都不同。
主键可以帮助Mysql以最快的速度查找到表中的每一条信息,主键必须要满足的条件那就是它的唯一性,表中的任意两条记录的主键值,不能相同,否则就会出现主键值冲突,主键值不能为空,可以是单一的字段,也可以是多个字段的组合。
主键冲突:
单主键情况:主键不能相同
多主键情况:表中有多主键时,只要主键不完全相同都是符合条件的,只有当所有主键一模一样时才会主键冲突
create table sxkj(
User_id int primary key,
user_name varchar(),
user_sexchar());
主键
1.2 设置多个字段做主键
举例:
create table sxkj2(
user_id int,
user_name float,
grade float,
primary key(user_id,user_name));
多主键
1.3 设置表的外键
外键是表的一个特殊字段,如果aa是B表的一个属性且依赖于A表的主键,那么A表被称为父表,B表被称为子表。
语法:
constraint 外键别名 foreign key(外键字段1,外键字段2) references 表名(关联的主键字段1,主键字段2);
1.4 设置表的非空值
语法:属性名 数据类型 NOT NULL
举例:
create table C(
user_id int NOT NULL);
1.5 设置表的唯一性约束
唯一性指的就是所有记录中该字段不能重复出现
语法:属性名 数据类型 unique
举例:
create table D(
user_id int unique);
1.6 设置表的属性值自动增加
Auto_increment是Mysql数据库中特殊的约束条件,它的作用是向表中插入数据时自动生成唯一的ID,一个表只能有一个字段使用auto_increment 约束,必须是唯一的。
语法:属性名 数据类型 auto_increment
*默认字段值从1开始自增。
举例:
create table F(
user_id int primary key auto_increment);
插入一条空的信息
insert into F values(); 查看表格F的内容
select * from F; 在结果中可以看到user_id为1
1.7 设置表的默认值
在创建表时,可以指定表中的字段的默认值,如果插入一条新的记录时,没有给这个字段复制,那么数据库会自动的给这个字段插入一个默认值,字段的默认值用default来设置。
语法:属性名 数据类型 default 默认值
举例:
create table G(
user_id int primry key auto_increment,
user_name varchar(20) default 'zero'); 向表中插入空数据:
insert into G values(); //系统会默认第一字段自增为1,第二字段为默认值zero
二. 查看表结构的方法
Mysql DESCRIBE可以查看那表的基本定义,包括、字段名称,字段的数据类型,是否为主键以及默认值等。。
2.1 语法:describe 表名;可以缩写为desc
举例:
desc B;
2.2 show create table查询表详细的结构语句
三. 修改表的方法
额外:修改表默认自增,从1000开始。
alter table F auto_increment=1000;
3.1 修改表名
语法:alter table 旧表名 rename 新表名;
举例;
alter table A rename zyA;
3.2 修改表的数据类型
语法:alter table 表名 modify 属性名数据类型;
举例;
alter table A modify user_name double;
3.3 修改表的字段名称
语法: alter table 表名 change 旧属性名新属性名新数据类型;
举例:
alter table A change user_name user_zyname float;
3.4 修改增加字段
alter table 表名 ADD 属性名1 数据类型 [完整性约束条件] [FIRST |AFTER 属性名2]
增加没有约束条件的字段:
alter table A add phone varchar(20)
增加有完整约束条件的字段:
alter table A add age int(4) not null;
在表的第一个位置增加字段
默认情况每次增加的字段。都在表的最后。
alter table tt add num int(8) primary key first;
执行在那个位置插入新的字段,在phone后面增加
alter table A add address varchar(30) not null after phone;
总结:
(1)默认add增加字段是在最后面增加
(2)如果想在表的最前端增加字段用first关键字
(3)如果想在某一个字段后面增加的新的字段,使用after关键字
3.5 删除一个字段
alter table 表名 drop 属性名;
举例:删除A表的age字段
alter table A drop age;
3.6 更改表的存储引擎
alter table 表名 engine=存储引擎
alter table A engine=MYISAM
3.7 删除表的外键约束
alter table 表名 drop foreign key 外键别名;
四. 删除表的方法
4.1 删除没有被关联的普通表
drop table 表名;
4.2 删除被其他表关联的父表
在数据库中某些表之间建立了一些关联关系。一些成为了父表,被其子表关联,要删除这些父表,就不是那么简单了。
删除方法:先删除所关联的子表的外键,再删除主表。
1.先用show create table 子表名 \G;查看子表的外键别名
2.再alter table 子表名 drop foreign key 外键别名;删除外键别名
3.此时可以用drop table 父表名;删除父表了
Mysql表基本操作的更多相关文章
- 数据库(MySQL)表基本操作
数据库表基本操作 思前想后,最终还是把博客的名字改成了数据库表基本操作,以前叫SQL语句大全,感觉用"大全"这个名词 ...
- MySQL系列:数据表基本操作(2)
1. 指定数据库 mysql> use portal; 2. 数据库表基本操作 2.1 查看数据表 mysql> show tables; +------------------+ | T ...
- MySQL:数据表基本操作
数据表基本操作 注意点: 1.数据表中已经有数据时,轻易修改数据类型,有可能因为不同的数据类型的数据在机器 中存储的方式及长度并不相同,修改数据类型可能会影响到数据表中已有的数据类型. 2. 数据表 ...
- linux的基本操作(mysql 的基本操作)
Mysql 的基本操作 在前面两个章节中已经介绍过MySQL的安装了,但是光会安装还不够,还需要会一些基本的相关操作.当然了,关于MySQL的内容也是非常多的,只不过对于linux系统管理员来讲,一些 ...
- mysql 的基本操作总结--增删改查
本文只是总结一下mysql 的基本操作,增删改查,以便忘记的时候可以查询一下 1.创建数据库 语法:CREATE DATABASES 数据库名; 例子: CREATE DATABASES studen ...
- (五)mysql表操作和约束条件
(1)表基本操作 1)创建表 create table 表名(字段 数据类型 约束条件) mysql> create table student1(id int,name varchar(50) ...
- (三)mysql SQL 基本操作
文章目录 MySQL服务器对象 mysql 的基本操作 SQL的注释 库操作 表(字段)操作 数据操作 MySQL服务器对象 mysql 服务器对象内部分成了 4 层: 系统(DBMS)----> ...
- mysql数据库基本操作sql语言
mysql的启动与关闭 启动 /etc/init.d/mysql start 多实例使用自建脚本启动 2种关闭数据库方法 mysqladmin -uroot -p密码 shutdown #优雅关闭/e ...
- 自学 linux——14.mysql的基本操作
MySQL的基本操作 1.名词介绍 以Excel文件举例: 数据库:可以看作是整个excel文件. 数据表:可以看作是一个excel文件中的工作表. 行(记录):可以看作是一个工作表中的一行 列(字段 ...
随机推荐
- NULL, '\0',0 '0'的区别
如题,在程序中经常遇到NULL,和'\0',常常疑惑它们是什么关系,其实它们的值是一样的,只不过表现的形式不一样: 1.NULL; NULL 即空指针,在C和C++中的形式不一样,msdn上有如下的内 ...
- 架构设计:负载均衡层设计方案(6)——Nginx + Keepalived构建高可用的负载层
1.概述 前两遍文章中,我们一直在说后文要介绍Nginx + Keepalived的搭建方式.这篇文章开始,我们就来兑现前文的承诺,后续的两篇文章我们将介绍Nginx + Keepalived和 LV ...
- ProgressBar的Indeterminate属性
Indeterminate ProgressBar默认是白色的,如果容器的背景也是白色的,这样就根本看不到Progressbar. 简单解决方案: 用style属性设定反转的颜色. <Progr ...
- Android(java)学习笔记67:多线程程序练习
需求: 某电影院目前正在上映贺岁大片,共有100张票,而它有3个售票窗口售票,请设计一个程序模拟该电影院售票. 两种方式实现 A:继承Thread类 B:实现Runnable接 1. 首先我们利用方式 ...
- wamp修改多站点配置
本文介绍如果在wamp中修改配置支持多站点. 第1步,修改httpd.conf,增加8080端口的监听 #Listen 12.34.56.78:80Listen 80Listen 8080 第2步,修 ...
- iOS 多线程讲解2
1.GCD其他方法 1.GCD应用 单例模式 static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{ NSLog(@&qu ...
- uva 216 Getting in Line 最短路,全排列暴力做法
题目给出离散的点,要求求出一笔把所有点都连上的最短路径. 最多才8个点,果断用暴力求. 用next_permutation举出全排列,计算出路程,记录最短路径. 这题也可以用dfs回溯暴力,但是用最小 ...
- AutoCAD使用技巧
1, 画指定长度的直线 水平线:拾取起点,然后输入@5,0或者@-5,0 垂直线:拾取起点,然后输入@0,5或者@0,-5如果你所要画的线是斜线,可以先画一条水平线,然后点击它,对它进行夹点编辑,使它 ...
- Ralink RT3290无线网卡驱动安装 (linux)
Ralink RT3290无线网卡驱动安装 (linux, 笔记备忘) 1. 设备信息查看无线网卡设备信息 # lspci : 2. 驱动下载http://pan.baidu.com/s/1sjsHN ...
- 索引与优化like查询
1. like %keyword 索引失效,使用全表扫描.但可以通过翻转函数+like前模糊查询+建立翻转函数索引=走翻转函数索引,不走全表扫描. 2. like keyword% 索引有 ...