四十二、mysql数据库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 表名;

 

 

猜你喜欢

转载自blog.csdn.net/xk1761299425/article/details/81809608