第16章 MySQL数据库基础ppt,第十六章、浅识数据库

目录

第十六章、浅识数据库

数据库配置

# 通过配置文件统一配置的目的:统一管理 服务端(mysqld) 、客户端(client)

# 配置了 mysqld(服务端) 的编码为utf8,那么再创建的数据库,默认编码都采用utf8

# 配置流程

# 1)在mysql安装根目录下,创建配置文件:my.ini

# mac下配置文件名叫 my.cnf

# 2)设置配置文件内容并保存

[mysqld] # 服务器配置

port=3306 # 可以修改数据库默认端口(如果数据库端口被其他软件占用)

character-set-server=utf8 # 编码格式

collation-server=utf8_general_ci # 排序方式(默认跟编码格式走)

[client] # mysql自己的客户端叫[mysql],配置[client]即配置了[mysql],也配置了其他存在方式的客户端,比如Navicat可视化客户端

default-character-set=utf8 # 编码格式

# 3)重启数据库服务

数据库修改信息

# 修改字符编码

mysql>: alter database 数据库名 charset=编码格式;

用户操作

# 为特定的数据库分配有该数据库 操作权限 的用户

mysql>: grant 权限们 on 数据库.表 to 用户名@'ip地址' identified by '密码';

# 1)all:所有权限

# 2)oldboy.*:oldboy数据库下所有表

# 3)oldboy@'localhost':本机可以通过oldboy用户登入

# 4)identified by 'Oldboy123':密码为Oldboy123

eg>: grant all on oldboy.* to oldboy@'localhost' identified by 'Oldboy123';

# 1)select,delete,update,insert,drop,alter:指定的权限

# 2)oldboy.*:oldboy数据库下所有表

# 3)oldboy@'localhost':本机可以通过oldboy用户登入

# 4)identified by 'Oldboy123':密码为Oldboy123

eg>: grant select,delete,update,insert,drop,alter on oldboy.* to oldboy@'localhost' identified by 'Oldboy123';

表的修改

修改表名

mysql>: alter table 旧表 rename 新表;

修改字段名

mysql>: alter table 表名 change 旧字段 新字段 类型(长度);

修改字段属性

mysql>: alter table 表名 modify 字段 新类型(长度);

创建表的完整语法

mysql>: create table 表名 (

属性名1 类型(长度) 约束,

...

属性名n 类型(长度) 约束

) engine=引擎 default charset=utf8;

数据库表的引擎:驱动数据的方式 - 数据库优化

mysql>: create table t11(id int)engine=innodb;

mysql>: create table t12(id int)engine=myisam;

mysql>: create table t13(id int)engine=blackhole;

mysql>: create table t14(id int)engine=memory;

数据库的模式

mysql 5.7 以后默认都是安全模式

mysql支持的数据类型

整型

'''类型

tinyint:1字节 -128~127 *

smallint:2字节 -32768 ~ 32767

mediumint:3字节

int:4字节 -2147483648~2147483647 *

bigint:8字节

'''

'''约束 *

unsigned:无符号

zerofill:0填充

'''

# 建表

mysql>: create table tb1(x tinyint, y smallint, z int(6));

# 插入数据

mysql>: insert into tb1 values(128, 32768, 32768);

# 结果:127,32767,32768

# 结论:整型的长度由所占字节(取值范围)决定,可以自定义长度,但是不影响所占字节(取值范围)

# 所有整型变量的长度一般都省略不写

# 整型约束

mysql>: create table tb2(x tinyint unsigned); # 0~255

mysql>: insert into tb2 values(256), (-1); # 255, 0

# 0填充约束

mysql>: create table tb3(x tinyint unsigned zerofill);

mysql>: insert into tb3 values(10); # 010

浮点型

'''类型

float:4字节,3.4E–38~3.4E+38 *

double:8字节,1.7E–308~1.7E+308

decimal:M,D大值基础上+2

'''

'''宽度:

限制存储宽度

(M, D) => M为位数,D为小数位

float(255, 30):精度最低,最常用

double(255, 30):精度高,占位多

decimal(65, 30):字符串存,全精度

'''

# 建表:

mysql>: create table tb4 (age float(256, 30)); # Display width out of range for column 'age' (max = 255)

mysql>: create table tb5 (age float(255, 31)); # Too big scale 31 specified for column 'age'. Maximum is 30.

mysql>: create table tb5 (age float(65, 30)); # 在合理取值范围

create table t12 (x float(255, 30));

create table t13 (x double(255, 30));

create table t14 (x decimal(65, 30));

字符串:数据库优化 - char效率要高于varchar

'''类型

char:定长

varchar:不定长

'''

'''宽度

限制存储宽度

char(4):以4个字符存储定长存储数据

varchar(4):数据长度决定字符长度,为可变长度存储数据

'''

# 建表:

mysql>: create table ts1 (s1 char(4), s2 varchar(4));

mysql>: insert into ts1 values('adcde', 'xyzabc');

时间

'''类型

year:yyyy(1901/2155)

date:yyyy-MM-dd(1000-01-01/9999-12-31)

time:HH:mm:ss

datetime:yyyy-MM-dd HH:mm:ss(1000-01-01 00:00:00/9999-12-31 23:59:59)

timestamp:yyyy-MM-dd HH:mm:ss(1970-01-01 00:00:00/2038-01-19 ??)

'''

# 建表:

mysql>: create table td1 (my_year year, my_date date, my_time time);

mysql>: insert into td1 values(1666, '8888-8-8', '8:8:8'); # 时间需要在取值访问内

mysql>: create table td2 (my_datetime datetime, my_timestamp timestamp);

mysql>: insert into td2 values('2040-1-1 1:1:1', '2040-1-1 1:1:1'); # 时间需要在取值访问内

mysql>: insert into td2(my_datetime) values('2040-1-1 1:1:1'); # 时间需要在取值访问内

枚举与集合

# 枚举与集合:为某一个字段提供选项的 - 枚举只能单选(1个),集合可以多选(0-n个)

# 建表

# enum、set默认值为NULL

mysql>: create table tc1 (name varchar(20), sex enum('男', '女', '哇塞'), hobbies set('男', '女', '哇塞'));

mysql>: insert into tc1 values('ruakei', '哇塞哇塞', '未知');

# enum、set手动设置默认值 '男' 与 '哇塞'

mysql>: create table tc2 (name varchar(20), sex enum('男', '女', '哇塞') default '男', hobbies set('男', '女', '哇塞') default '哇塞');

mysql>: insert into tc2 values('ruakei', '哇塞哇塞', '未知');

mysql>: insert into tc2(name) values('ruakei');

# 对sex、hobbies两个字段赋值错误,系统默认用空字符串填充(非安全模式),安全模式抛异常

# 如果对出sex、hobbies两个字段外的其他字段进行赋值,这两个字段会才有默认值

# 注:对set类型的字段进行赋值,用一个字符串,字符串内部用,将多个选项隔开,且不能添加空格等其他额外字符

mysql>: insert into tc2 values('ruakei_1', '女', '男,女,哇塞');

约束

"""

primary key:主键,唯一标识,表都会拥有,不设置为默认找第一个 不空,唯一 字段,未标识则创建隐藏字段

foreign key:外键

unique:唯一性数据, 该条字段的值需要保证唯一,不能重复

auto_increment:自增,只能加给key的int类型字段辅助修饰

not null:不为空 - 针对一些字段,如注册时的用户名,出生人的性别等,这些需求下的字段,只不能设置为Null,必须要对其赋值

default:默认值 - 对有默认值意外的字段进行赋值时,有默认值的字段会被赋默认值

unsigned:无符号 - 存储的数字从0开始

zerofill:0填充 - 存整数时数据长度小于取值范围长度,会在数字左方用0填充

"""

mysql>: create table td1 (x int, y int default 0, z int default 100);

标签:insert,第十六章,哇塞,create,浅识,mysql,table,数据库

来源: https://www.cnblogs.com/demiao/p/11573205.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
【完整课件如下】 MySQL从入门到精通 第01 初始MySQL(共19页).ppt MySQL从入门到精通 第02 MySQL的安装与配置(共14页).ppt MySQL从入门到精通 第03 数据库的基本操作(共11页).ppt MySQL从入门到精通 第04 数据表的基本操作(共26页).ppt MySQL从入门到精通 第05 数据类型和运算符(共17页).ppt MySQL从入门到精通 第06 MySQL函数(共76页).ppt MySQL从入门到精通 第07 查询数据(共48页).ppt MySQL从入门到精通 第08 插入、更新与删除数据(共10页).ppt MySQL从入门到精通 第09 索引(共11页).ppt MySQL从入门到精通 第10 存储过程和函数(共19页).ppt MySQL从入门到精通 第11 视图(共20页).ppt MySQL从入门到精通 第12 触发器(共11页).ppt MySQL从入门到精通 第13 用户管理(共25页).ppt MySQL从入门到精通 第14 数据备份与还原(共21页).ppt MySQL从入门到精通 第15 MySQL日志(共22页).ppt MySQL从入门到精通 第16 性能优化(共18页).ppt MySQL从入门到精通 第17 MySQL Workbench5.2 的使用(共15页).ppt MySQL从入门到精通 第18 MySQL Replication(共27页).ppt MySQL从入门到精通 第19 MySQL Cluster(共49页).ppt MySQL从入门到精通 第20 PHP操作MySQL数据库(共7页).ppt MySQL从入门到精通 第21 MySQL实战-新闻发布系统数据库设计(共6页).ppt MySQL从入门到精通 第22 MySQL实战-论坛管理系统数据库设计(共6页).ppt

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值