好久没梳理下Mysql基础命令了.今天抽空整理了下,虽然很简单...但是还是有必要巩固下基础滴啦

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数据表的基本操作的更多相关文章

  1. mysql数据表的基本操作:表结构操作,字段操作

    本节介绍: 表结构操作 创建数据表. 查看数据表和查看字段. 修改数据表结构 删除数据表 字段操作 新增字段. 修改字段数据类型.位置或属性. 重命名字段 删除字段 首发时间:2018-02-18  ...

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

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

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

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

  4. mysql数据库表的基本操作sql语句总结

    1,命令行登录命令 mysql -h localhost -u root -p C:\Users\lenovo>mysql -u root -p Enter password: ***** We ...

  5. 用Myisamchk让MySQL数据表更健康

    用Myisamchk让MySQL数据表更健康 2011-03-15 09:15 水太深 ITPUB 字号:T | T 为了让MySQL数据库中的数据表“更健康”,就需要对其进行定期体检.在这里笔者推荐 ...

  6. 随机获取Mysql数据表的一条或多条记录

    随机获得Mysql数据表的一条或多条记录有很多方法,下面我就以users(userId,userName,password......)表(有一百多万条记录)为例,对比讲解下几个方法效率问题: sel ...

  7. (转)MySQL数据表中带LIKE的字符匹配查询

    MySQL数据表中带LIKE的字符匹配查询 2014年07月15日09:56    百科369 MySQL数据表中带LIKE的字符匹配查询 LIKE关键字可以匹配字符串是否相等. 如果字段的值与指定的 ...

  8. MySQL 数据表修复及数据恢复

    1. MYSQL数据表在什么情况下容易损坏? 服务器突然断电导致数据文件损坏. 强制关机,没有先关闭mysql 服务等.   2. 数据表损坏后的主要现象是什么? 从表中选择数据之时,得到如下错误:I ...

  9. 设置MySQL数据表主键

    设置MySQL数据表主键: 使用“primary key”关键字创建主键数据列.被设置为主键列不允许出现重复的值,很多情况下与“auto_increment”递增数字相结合.如下SQL语句所示: My ...

随机推荐

  1. 初识Dubbo+Zookeeprt搭建SOA项目

    由于工作中天天和Dubbo打交道,天天写对外服务,所以有必要自己动手搭建一个Dubbo+zookeeper项目来更更深层次的认识Dubbo 首先了解一下SOA: 英文名称(Service Orient ...

  2. javascript中数组总结

    数组是所有高级语言都会有的东西,数组是JS中使用最多的类型之一,所以掌握JS中数组的用法相当有帮助: 由于JS是一门弱类型的语言,所以数组里面可以放各种不同的数据类型,比如 var a = [1993 ...

  3. hive 函数 nvl()

    首先用desc function,查看hive给出的函数解释 nvl(value,default_value) - Returns default value if value is null els ...

  4. hive 添加和删除分区

    命令如下: 增加分区 ', p_loctype='MHA'); 删除分区 ALTER TABLE my_partition_test_table DROP IF EXISTS PARTITION (p ...

  5. Django 信号、中间件、i18n 专题

    信号 Django中提供了“信号调度”,用于在框架执行操作时解耦.通俗来讲,就是一些动作发生的时候,信号允许特定的发送者去提醒一些接受者. 1. Django内置信号 Model signals pr ...

  6. Snapshot Types

    Volume managers Some Unix systems have snapshot-capable logical volume managers. These implement cop ...

  7. 在ASP.NET Core MVC中构建简单 Web Api

    Getting Started 在 ASP.NET Core MVC 框架中,ASP.NET 团队为我们提供了一整套的用于构建一个 Web 中的各种部分所需的套件,那么有些时候我们只需要做一个简单的 ...

  8. C#轻量级通通讯组件StriveEngine —— C/S通信开源demo(2) —— 使用二进制协议 (附源码)

    前段时间,有几个研究ESFramework通信框架的朋友对我说,ESFramework有点庞大,对于他们目前的项目来说有点“杀鸡用牛刀”的意思,因为他们的项目不需要文件传送.不需要P2P.不存在好友关 ...

  9. 【webpack】-- 自动刷新与解析

    前端需要频繁的修改js和样式,且需要根据浏览器的页面效果不断的做调整:而且往往我们的开发目录和本地发布目录不是同一个,修改之后需要发布一下:另外一点就是并不是所有的效果都可以直接双击页面就能看到,我们 ...

  10. 大叔学ML第二:线性回归

    目录 基本形式 求解参数\(\vec\theta\) 梯度下降法 正规方程导法 调用函数库 基本形式 线性回归非常直观简洁,是一种常用的回归模型,大叔总结如下: 设有样本\(X\)形如: \[\beg ...