MySQL----MySQL数据库入门----第二章 数据库和表的基本操作
2.1 数据库和数据库表的创建
①数据库的创建(在数据库系统中划分一块存储数据的空间):
create database 数据库名称 [charset 字符集];
②数据库表的创建
use 数据库名 create table 数据库表名( 字段1 数据类型 [属性], 字段2 数据类型 [属性], 字段3 数据类型 [属性], ... 字段n 数据类型 [属性] );
注意:
数据库
(1)在①中,[ charset 字符集 ] 是可选的,用于设定数据库的默认字符集,即数据库存储使用的字符集。当不声明时,默认继承服务器的字符集 utf-8。
(2)关于字符集,常见的字符集:ascii(英文字母,数字),gbk(国标扩展中文简体字符集,big5,繁体中文),utf8。在开发时候,要注意三码合一,即数据库、php脚本、浏览器三者各自使用的字符集应该统一,建议显示为utf8)。
(3)已经存在的数据库,无法再次创建。
(4)数据库命名以字母、数字、下划线组成,长度不超过32个字符
数据库表
(1)在创建数据库表之前,应该使用“use 数据库名”指定操作在哪个数据库中进行,否则会抛出“no database selected”错误。
2.2 数据库和数据库表的查看
①数据库的查看
查看全部数据库:
show databases;
查看某个创建的数据库:
show create database 数据库名字;
②数据库表的查看
查看当前数据库中全部数据库表:
show tables;
查看某个具体数据库表方法1:
show create table 数据库表名;
查看某个具体数据库表方法2:
desc 数据库表名;
注意:
数据库
(1)系统数据库(information_schema,performance_schema,mysql)不能删除。
(2)查看某个具体的数据库信息时,显示的信息包括数据库的创建语句及数据库选项(字符集)。
数据库表
(1)查看前,需要首先指定要查看的数据表所在的数据库。否则:no database selected。
(2)未选择数据库,可以通过from指定数据库名称。 show tables from 数据库名;
(3)查看某个具体数据库表方法1,可以显示数据表的结构、定义语句及字符集编码,若想显示结果更加美观,可以使用 show create table 数据库表名\g
(4)查看某个具体数据库表方法2,查看表的字段信息,其中包括字段名、字段类型等信息。
2.3 修改数据库和数据库表
①数据库的修改
alter database 数据库名 charset 新字符集;
②数据库表的修改
1、修改数据库表名
alter table 表名 rename [to] 新表名;
2、修改数据库表的字段名
alter table 表名 change 旧字段名 新字段名 新字段的字段类型;
3、修改数据库表的字段数据类型
alter table 表名 modify 字段名字 新的数据类型;
4、添加字段
alter table 表名 add 字段名 字段类型 [约束条件] [first|after 已存在的字段];
5、删除字段
alter table 表名 drop 字段名;
6、调整字段位置
alter table 表名 modify 字段名1 数据类型 first|after 字段名2;
注意:
数据库
(1)数据库的修改指的是修改数据库的字符集,数据库名称不能修改。
数据库表
(1)在修改数据库表的字段名中,新的字段名称后面的数据类型必须添加,哪怕新的名称的数据类型与之前的字段的数据类型相同,也必须添加。
2.4 删除数据库和数据库表
①数据库的删除
drop database 数据库名称;
②数据库表的删除
drop table 数据库表名称;
2.5 字段类型初步介绍
①整型
1、tinyint -128~127
2、smallint -3万~3万
3、int -800万~800万
4、mediumint -21亿~21亿
5、bigint 太大了,不会计算了
②小数
1、float float存储小数类型存在精度的问题
2、double
3、decimal(m,d) 对应精度要求比较高的,使用decimal类型,实现小数的精确存储。其原理为可以存储每位数字。一般用来存储与钱有关的数字。
注意:decimal类型的有效范围由m和d决定,其中m表示的数据的长度,d表示的小数点后的长度。例如将数据类型为decimal(6,2)的数据3.1415插入数据库后,显示的结果是3.14.
③字符串类型
1、char(m) char存储长度比较固定的字符串,如手机号,身份证号,序列号,邮编,速度快。
2、varchar(m) varchar一般用来存储长度变化比较大的字符串,如文章标题,商品名称,速度慢。
注意:
m为该字段可以存储的最多字符数,如varchar(10)。m参数不可以省略,此外不能超出指定的长度。
可以使用text类型,存储较长的字符串,无需指定字符串的具体长度。
④日期类型
1、year yyyy '1999'/1999 (支持数字或者字符串插入)
2、date yyyy-mm-dd 支持‘yyyy-mm-dd’或者‘yyyymmdd’字符串格式插入
3、time hh:mm:ss 支持“hhmmss”字符串/hhmmss数字格式插入
4、datetime yyyy-mm-dd hh:mm:ss 支持“yyyy-mm-dd hh:mm:ss”/“yyyymmddhhmmss”字符串或者yyyymmddhhmmss数字格式插入
2.6 表的属性(约束)
①primary key 主键约束,唯一标识对应记录。主键字段的值不能重复,不能为空。
②foreign key 外键约束。
③null / not null 非空约束。
④default 设置字段的默认值,在没有录入时自动使用默认值填充。
⑤unique 唯一键,设置字段的值为唯一的,可以同时设置多个字段为唯一键。唯一键字段的值可以为空。
⑥auto_increment 设置字段为自动增长,默认从1开始自动分配编号。类型必须为整型。自增长字段必须为一个key。
⑦comment 字段注释