- [ 测试基础 ]

1-1,数据库建库建表操作

2018-11-05  本文已影响0人  好多可乐

数据库和表的概念

1,数据库的概念:存储数据的容器(对比仓库去理解),、

2,表的概念:真正的存储单元

3,数据库与表的关系:一对多的关系,一个库里通常维护了多个表

MySQL是关系型数据库(每个表都存在关联)开源免费

Oracle:付费软件

SQL:

概念

SQL:结构化查询语言,Structured Query Language。

SQL是用于访问和处理数据库的标准计算机语言

SQL是弱语法,不区分大小写和单双引号

SQL能做什么?

1,创建数据库,表,视图,存储过程等数据库对象

2,数据库记录的增删改查

1,打开数据库

语法:service mysqld start;

2,退出数据库

语法:quit/exit/Ctrl+C,

3,查看所有数据库

语法:show databases;

4,创建数据库

语法:create database 数据库名称

示例:创建数据库

create database future;

create database if not exists python_ai_test default charset utf8 collate utf8_general_ci;

5,使用某个数据库

语法:use 数据库名称;

示例:use mysql; 使用名为mysql的数据库

6,创建表

语法

create table<表名>

(

<字段名1><类型1>

<字段名2><类型2>

.....

<字段名n><类型n>

) DEFAULT CHARSET =utf8;(可省略不写,为了防止中文乱码)

解释

①,create:创建

②,table:表

③,字段名:用来标示表的一列

④,字段类型:用来声明每一个字段存储数据的类型,因为在mysql中,数据是有类型的(整型,小数,字符,时间)

⑤,字符集:UTF8,用来指定表支持中文数据存储

示例:创建项目对应的会员表:member(切记不可用中文输入法!!!)

主键

主键是什么?它有什么特征

1,主键字段存储的值不能重复,因此主键可以唯一标识一行数据。

2,一个表只能有一个主键

3,主键自动设置为NOT NULL(非空)

补充 :

NULL ,字段值可为空

NOT NULL,字段值不为空

同一个字段不可能既为NULL,又为NOT NULL。

在创建数据表的时候,如果字段值为空,可以写NULL,也可省略,不写的话默认为空(如果为空可赋值也可不赋值)

4,主键是非必须的,也就是说一个表可以不声明主键字段

语法

<字段名><类型>primary key

补充:

1,自动编号: AUTO_INCREMENT(INCREMENT:增加,增长)

(1)必须与主键PRIMARY KEY组合使用,否则会报错。

(2)默认情况下,起始值为1,每次的增量为1,可不进行赋值,可保证记录唯一性)

但是一旦数据手动更改为指定数字,那么下一个的排序是从指定数字的下一位开始,切记!!!

(3)而PRIMARY KEY 可以不和AUTO_INCREMENT一起使用,可以被赋值但是不允许有相同值的出现

(4)COMMENT:备注,后面可以跟双引号,也可以跟单引号

7,查看帮助

语法:help xxx;

例:help create;

常见的字段类型

每个字段都有自己的类型,如整数型,字符型,时间类型,日期类型,浮点型等。下面介绍常用的数据类型。

整型

int:整数,取值范围为:-2147483648~2147483647

扩展:无符号的数不能为负数,有符号的可以为负数

有符号值(位):数字的最高位用0或1来表示数字是正数还是复数。

无符号值(位):不存在复数的情况,永远是正数。

无符号位的存储范围是有符号位的两倍。

要选择合适的数据类型,而不是最大的数据类型。如年纪选TINYINT即可,也省去字节。

字符串型

char(n):n个字符,最多255个字符,固定长度(没达到指定长度后面用空格来补齐)

例:char(5),但是写值的时候只写了abc,在存储时除了将abc存好,后面还补充了2个空格

varchar(n)['vɑːkə]:可变长度,最多65535个字符(存什么就是什么,会根据保存字符去调整长度)

例:varchar(10),但是写值得时候只写了abc,在存储的时候就只保存 3个字符

时间和日期

data:日期,格式(yyyy-mm-dd,例如:2016-08-22)

支持2位或者4位(默认4位),默认1970年到2069年之间的一个日期

time:时间,格式(hh:mm:ss,例如:18:40:37)

datatime:日期时间,格式(yyyy-mm-dd hh:mm:ss,例如:2016-08-12 18:31:23,可用来保存注册日期)

浮点型

float(m,d):单精度浮点型,32bit(4字节),m代表总位数,d小数位,如99.99声明类型为:float(4,2)

double(m,d):双精度浮点小,64bit(4字节),m代表总位数,d小数位。

区别:双精度类型能表示的小数的精确度更高。

decimal(m,d)[ˈdesɪml]:数字型,128bit,m代表总位数,d小数位(一般公司不用,金融类公司用的较多)

decimal数据类型用于精度要求非常高的计算中,比如语句DECIMAL(7,3)规定了存储的值不会超过7位数字,并且小数点后不超过3位。(用前两个可能会丢失精度)

补充:

1字=2字节(1 word = 2 byte) 

1字节=8位(1 byte = 8bit) ,8bit就是8位,最大存储范围就是8个1,8个1的存储范围就是255,就是2的8次方

unsigned表示无符号,也就是非负数,只能用于整型数据。

上一篇 下一篇

猜你喜欢

热点阅读