四十二、mysql数据库1:数据库初识、数据库与数据库表的相关操作
阅读原文时间:2021年04月21日阅读:1

一、关系型数据库

当前主要使用两种类型的数据库:【关系型数据库】和【非关系型数据库】**

所谓的关系型数据库RDBMS是建立在关系模型基础之上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。

1、关系型数据库核心元素

数据行(记录)

数据列(字段)

数据表(数据行的集合)

数据库(数据表的集合)

2、关系型数据库的主要产品:

Oracle:在以前的大型项目中使用,银行、电信等项目

Mysql:web时代使用最广泛的关系型数据库

Ms sql server:在微软的项目中使用

Sqlite:轻量级数据库,主要应用在移动平台

二、数据库与数据库表的相关操作

(1)windows上远程连接虚拟机的数据库**

1、打开电脑上的Wampserve 软件;**

2、如果在本机windows平台上使用数据库,直接黑窗口上输入命令:

mysql  -u  root  -p

3、如果要远程连接服务器(虚拟机)

打开虚拟机—在windows黑窗口上输入命令:虚拟机的IP地址

mysql -h  192.168.163.129 * -u  root  -p*

(2)数据库的相关操作(以; 或\G 结尾)

1、显示数据库:show databases;**

2、show  create  database 库名; — 查看库的详细信息**

3、创建数据库:create database 数据库名  charset=utf8;

4、删除数据库:drop database  库名;**

5、注意:数据库名中有中横线的,会当成特殊意义,需要使用` `进行包含住。

` `符号在Tab键上方,与 ~ 一起

  

6、选择数据库: use 数据库名; (切换)

此时你已经进入你刚才所建立的数据库

7、显示你所选择数据库中所有的表show tables;**

8、查看当前使用的数据库:select  database( );

9、查看默认存储引擎: show variables like '%storage_engine%';**

10、查看mysql数据库系统支持的存储引擎的类型:show engines;

也可以

(3)数据库表相关操作:—** *可选择相应的库,进行表的操作***

1、查看当前数据库中数据表:show  tables;

2、注意:表名不能为sql语言的关键字,一个表中可以有一个或多个字段。定义时,字母大小写均可,**

各字段之间用逗号隔开,最后一个字段后不需要加逗号。

3、约束条件: 创建表时从约束条件找相应属性

完整性约束条件是对字段进行限制。要求用户对该属性进行的操作符合特定的要求。如果不满足完整性约束条件,

数据库系统将不执行用户的操作。其目的是为了保证数据库中数据的完整性。

① MYSQL中基本的完整性约束条件如下表:

主键primary key:物理上存储的顺序(唯一性,可不写unique)**

非空not null:此字段不允许填写空值**

惟一unique:此字段的值不允许重复**

默认default:当不填写此值时会使用默认值,如果填写时以填写为准**

外键foreign key:对关系字段进行约束,当为关系字段填写值时,会到关联的表中查询此值是否存在,如果存在则填写成功,如果不存在则填写失败并抛出异常。**

② 常用数据类型如下:

整数:int,bit**

小数:decimal**

字符串:varchar,char**

日期时间: date, time, datetime

枚举类型(enum) (有选择的选项)必须写默认值,不然报错。**

③ 特别说明的类型如下:

decimal 表示浮点数,如decimal(5,2)表示共存5位数,小数占2位

char 表示固定长度的字符串,如char(3),如果填充'ab'时会补一个空格为'ab '

varchar表示可变长度的字符串,如varchar(3),填充'ab'时就会存储'ab'**

字符串text表示存储大文本,当字符大于4000时推荐使用

④ 也可从下表中选择:

⑤ 使用数据类型的原则是:

够用就行,尽量使用取值范围小的,而不用大的,这样可以更多的节省存储空间。

4、创建数据库表  (表必须要有定义的名字和类型,其余的条件自己增加)

可在notepad++ 或 Sublime Test 软件写完程序,复制粘贴到窗口,文件保存后缀名.sql 结尾

可添加约束条件,无顺序

可以用Navicat软件查看

字符串一般不设置自增长

代码如下:

# id :#整型、无符号数值在0-255、不能为空、自动增加、唯一性,可不写unique

# name:字符串(30长度)、默认值为空

# age :数值类型、无符号范围0-255、默认值为0

# high:浮点数,如decimal(5,2)表示共存5位数,小数占2位

# gender:枚举类型(enum)  (有选择的)必须写默认值

# cls_id:整型、无符号范围0-255、

# birthday:日期时间类型 date,格式 "1992-08-01"

create table students(

id int unsigned not null auto_increment primary key,

name varchar(30) default "",

age tinyint unsigned default 0,

high decimal(5,2),

gender enum("男","女","保密") default "保密",

cls_id int unsigned,

birthday date

);

5、显示表的结构

desc 表名;**

查看表详细结构语句show create table 表名 \G;

6、修改表名:二选一

alter table 旧表名 rename 新表名;**

alter table 旧表名 rename to 新表名;**

7、修改字段名和字段的数据类型**

alter table语句也可以修改字段的数据类型。主键的字段数据类型不能修改。

三条指令:

特别值得注意的是,字符类型的字段最好不要改成整数类型、浮点数类型。

注意:Modify和change都可以改变字段的数据类型。不同的是,change可以在改变字段数据类型的同时,改变字段名。

如果要使用change修改字段数据类型,那么change后面必需跟两个同样的字段名。

8、添加字段

① 在表的末尾添加字段: alter table 表名 add stu_age int not null;

② 在表的第一个位置增加字段: alter table 表名 add stu_num int first;**

③ 在表的指定位置之后增加字段: alter table 表名 add stu_add varchar(20) after stu_phone; #在…之后添加字段**

**④ 一次性添加多个字段: *alter*** ***table ** *表名 add (wuli int , huaxue int );

9、删除字段: alter table 表名 drop stu_age;**

10、修改字段的排列位置

① 字段修改到第一个位置: alter table 表名 modify stu_id int first;**

②字段修改到指定位置:alter table 表名 modify stu_num int after stu_phone;

11、(了解,一般不改)更改表的存储引擎

①先查看一下表的结构:show create table 表名 \G;

② 修改:alter table 表名 engine=myisam;

12、(后会细讲)删除表的外键约束

Alter table 表名 drop foreign key c_de;

13、(后会细讲)删除自增长的主键

先删除自增长删除主键

Alter table 表名 change id id int(10); //删除自增长

Alter table 表名 drop primary key; //删除主建

14、删除表:删除没有被关联的普通表: drop table 表名;