mysql基础知识整理(一)

主要是为了时常拿出来看看,复习用

数据库操作主要包括

1.创建数据库 (CREATE DATABASE)

2.查看数据库 (SHOW DATABASES)

3.修改数据库 (ALTER DATABASE)

4.删除数据库 (DROP DATABASE)

一 创建数据库 

1. CREATE DATABASE IF NOT EXISTS 数据库名称 DEFAULT CHARSET 默认编码集 COLLATE 校对规则;

2、语法解释:

IF NOT EXISTS:如果该数据库不存在则创建,防止创建错误;

DEFAULT CHARSET:默认编码集通常选择utf8,其它编码集不推荐,ThinkPHP也推荐默认为utf8编码集;

COLLATE:校对规则就是默认的排序方式,这与默认编码集相对应,如果设置了默认编码集为utf8,这个选项可以省略,直接用默认值:utf8_general_ci。

3、实例:

任务:创建员工数据库

CREATE DATABASE IF NOT EXISTS user  DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

因为设置了默认编码集,可以省略校对规则:COLLATE,语句可简写为:

CREATE DATABASE IF NOT EXISTS  user DEFAULT CHARSET utf8;


二、查看数据库


1、语法:

SHOW DATABASES;

2、语法解释:

服务器上通常会有很多数据库,因此,这里使用复数。

3、实例:

SHOW DATABASES;


三、修改数据库

ALTER  DATABASE  数据库名称   修改的项目

2、语法解释:

数据库创建成功后,可修改项主要是默认编码集和校对规则,其它不必修改

如果原数据库编码集不是utf8,可用该语句修改成为utf8;

如果校对规则不是utf8-general-ci,也可用该语句进行修改。

3、实例:

任务: 将当前数据库的默认字符编码集改为utf8,校对规则修改为utf8-general-ci

3.1、修改编码和核对规则:

ALTER DATABASE staff CHARACTER SET utf8 COLLATE utf8_general_ci;

3.2、查看字符编码集

SHOW CHARACTER SET;

3.3、查看校对规则

SHOW COLLATION;

四、删除数据库

1. DROP DATABASE IF NOT EXISTS 数据库名;

2、语法解释:

删除数据库是一项非常危险的操作,一旦删除无法恢复;

IF EXISTS:可以防止出现删除不存在数据库的错误提示;

数据库删除后,该库中所有表,一并删除不可恢复。

3、实例:

任务:删除刚才创建的员工数据库 user 

语句:DROP DATABASE IF NOT EXISTS  user ;

数据库表的操作:

 

创建数据表

1、基本语法:

CREATE TABLE IF NOT EXISTS 数据表名称 (

字段名称1  [AS 别名]  字段类型  [约束条件] [DEFAULT 默认值] [COMMENT 字段注释],

字段名称2  [AS 别名]  字段类型  [约束条件] [DEFAULT 默认值] [COMMENT 字段注释],

字段名称3  [AS 别名]  字段类型  [约束条件] [DEFAULT 默认值] [COMMENT 字段注释],

......

)ENGINE = 表存储引擎  DEFAULT CHARSET = 默认编码集  AUTO_INCREMENT = 自增主键起始值;

2.语法解释:

字段名称:不与MySQL关键字重名的任何有效标识符即可;

IF NOT EXISTS:意思是“如果不存在”再创建数据表,防止重复建表引起错误;

AS 别名:表中字段名均为英文单词或缩写,创建一个有意义的别名,使数据表查询结果更加直观、人性化;

字段类型:非常重要,本文后面有详细介绍;

约束条件:主要是NULL(允许为空),NOT NULL(禁止为空)等,具体还要与字段类型相匹配;

DEFAULT 默认值:如某字段设置了默认值,则新增时未赋值则取默认值;

COMMENT 字段注释:非必须,但可以使字段信息看上去再完整、直观;

ENGINE = 表存储引擎:

>* MyISAM:读取快速、成熟稳定、支持全文检索、最常用,但不支持事务处理;

>* InnoDB:具备提交、回滚的事务处理,支持外键,战用空间大,不支持全文检索;

DEFAULT CHARSET 默认编码集: 通常与数据库采用的编码集相同(utf8)即可;

AUTO_INCREMENT = 自增主键起始值:如果设置,将从该值开始自增,如设置为1001,则第一条记录是1001,第二条是1002。如果不设置,主键将默认从1开始自增;

3.字段类型:

字段类型也叫列类型,主要有:数值、字符串、日期/时间三大类。

数值型:有无符号和有符号之分,直接书写,不要加引号,长度仅影响显示,不影响精度。

整型:又分为五类

INT : 标准整型,4字节,取值范围大约正负21亿,足以应付正常开发需要;

SMALLINT:小整数,2字节,取值范围大约正负3.2万之间,无符号翻倍。

TINYINT:极小整数,1字节,取值-128~127,无符号:0~255。

其它:MEDIUMINT(3字节),BIGINT(8字节),不太常用。

浮点型:

FLOAT:最常用,用4字节或8字节表示,具体依平台而定;

DOUBLE:双精度8字节;

DECIMAL:以字符串形式存储的浮点数,大小自定义,用于会计领域等。

字符串类型:

CHAR(长度): 固定宽度存储字符串,忽略原始字符串长度;

VARCHAR(长度):可变长度字符串,根据原始字符串长度存储;

TEXT:小型文本,不能设默认值和长度;

LONGTEXT:超大文本,同样不可设默认值和长度;

ENUM(枚举):在括号中集合数据中,只可以单选,无默认值;

SET(集合):集合最大64个成员,可以多选,无默认值。

日期/时间类型(不要设置长度):

DATE:3字节,格式 YYYY-MM-DD,如 2016-10-20;

TIME:3字节,格式 hh:mm:ss,如 12:25:35;

DATETIME:8字节,格式 YYYY-MM-DD hh:mm:ss,如 2016-10-20 12:25:35;

TIMESTAMP:3字节时间戳,格式YYYYMMDDhhmmss共14位,可设置显示长度进行截取操作,必须是偶数长度,常见6位,8位,12位;

YEAR:单字节,格式 YYYY,显示年份,如2016。


4、约束条件:

任务:创建员工信息表 user

user数据表结构如下:

| 序号 | 字段名 | 类型 | 宽度 | 约束 | 默认值|备注 |

| — | — | — | — | — | — |

| 1 | id | 整型 | 4位 | 无符号、不为空、自增、主键|无 | 编号 |

| 2 | name | 变长字符串 | 30位 | 不为空 | 无 |姓名 |

| 3 | sex | 整型 | 1位 | 不为空 | 1 |性别1男0女|

| 4 | salary |浮点型 | 共10位小数2位 |无符号、不为空 |2000 |工资|

| 5 | dept |变长字符串 | 20位 |不为空 | 开发部 |部门|

| 6 | hiredate |日期 | 默认 | 不为空 | 0000-00-00 |入职日期|

要求数据表存储引擎为InnoDB,默认编码:utf8,自增主键起始:1001。

创建数据表SQL语句:(实例)

CREATE TABLE IF NOT EXISTS  user (

id INT(4) unsigned NOT NULL AUTO_INCREMENT COMMENT '编号',

name VARCHAR(30) NOT NULL    COMMENT '姓名',

sex TINYINT(2)  unsigned  NOT NULL  DEFAULT 1  COMMENT '性别1男0女',

salary FLOAT(10,2) NOT NULL DEFAULT 2000.00 COMMENT '工资',

dept VARCHAR(20)  NOT NULL  DEFAULT '开发部' COMMENT '部门' ,

hiredate DATE  NOT NULL  DEFAULT '0000-00-00' COMMENT '入职日期',

PRIMARY KEY (id)

)ENGINE =InnoDB  DEFAULT CHARSET = utf8  AUTO_INCREMENT = 1001;

查看表结构:

语法:DESC 表名

总结:
数据表,是php开发中,数据库操作的重要载体。而创建数据表,则是最重要的一环。一个结构良好、健壮的表结构是我们所有模型操作的基础。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,948评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,371评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,490评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,521评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,627评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,842评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,997评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,741评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,203评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,534评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,673评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,339评论 4 330
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,955评论 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,770评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,000评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,394评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,562评论 2 349

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,633评论 18 139
  • .数据库 数据库的发展: 文件系统(使用磁盘文件来存储数据)=>第一代数据库(出现了网状模型,层次模型的数据库)=...
    小Q逛逛阅读 960评论 0 2
  • MySQL5.6从零开始学 第一章 初始mysql 1.1数据库基础 数据库是由一批数据构成的有序的集合,这些数据...
    星期四晚八点阅读 1,137评论 0 4
  • Unicode Unicode 是一种编码,它将世界上所有的符号都纳入其中。每一个符号都给予一个独一无二的编码。这...
    大富帅阅读 1,744评论 0 2
  • 各位简友,大家好,“你是多久没有用文字表达自己了”,我文章写的不好,没有出色的文采和华丽的词藻,但是我认为不应该因...
    简书_蜗牛的梦想阅读 197评论 0 1