数据库操作

狂神说学习笔记,笔记内容全部来源狂神说。

命令行操作数据库
创建数据库:create database [if not exists] 数据库名;
删除数据库:drop database [if exists] 数据库名;
查看数据库:show database;
使用数据库:use 数据库名;
对比工具操作数据库
学习方法:

  • 对比SQLyog工具自动生成的语句学习
  • 固定语法中的单词需要记忆
  • 数据库排序规则.png

创建数据库

属于DDL的一种,语法:

create table [if not exists] `表名`(
  `字段名1` 列类型 [属性] [索引] [注释],
  `字段名2` 列类型 [属性] [索引] [注释],
  ...
  `字段名n` 列类型 [属性] [索引] [注释]
)[表类型] [表字符集] [注释];

说明:反引号用于区别MySQL保留字与普通字符而引入的(键盘esc下面的键)。

数据列和列类型

列类型:规定数据库中该列存放的数据类型。
数值类型

数值类型.png

字符串类型
字符串类型.png

日期和时间型数值类型
日期和时间型数值类型.png

NULL值

  • 理解为“没有值”或“未知值”
  • 不要用NULL进行算术运算,结果仍未NULL

数据字段属性

Unsigned

  • 无符号的
  • 声明该数据列不允许负数
    ZEROFILL
  • 0填充的
  • 不足位数的用0来填充,如int(3),5则为005
    Auto_InCrement
  • 自动增长的,没添加一条数据,自动在上一个记录数上加1(默认)
  • 通常用于设置主键,且为整数类型
  • 可定义起始值和步长
    • 当前表设置步长(AUTO_INSCREMENT=100):只影响当前表
    • SET @@auto_increment_increment=5;影响所有使用自增的表(全局)
      NULL和NOT NULL
  • 默认为NULL,即没有插入该列的数值
  • 如果设置为NOT NULL,则该列必须有值
    DEFAULT
  • 默认的
  • 用于设置默认值
  • 例如,性别字段,默认为“男”,否则为“女”;若无指定该列的值,则默认值为“男”的值
-- 目标:创建一个school数据库
-- 创建学生表(列,字段)
-- 学号int,登陆密码varchar(20),姓名,性别varchar(2),出生年月(datatime),家庭住址,email
-- 创建表之前,一定要先选择数据库
CREATE TABLE IF NOT EXISTS `student`(
  `id` int(4) NOT NULL AUTO)_INCREAMENT COMMENT '学号',
  `name` varchar(30) NOT NULL DEFAULT '匿名' COMMENT '姓名',
  'pwd' varchar(20) NOT NULL DEFAULT '123456' COMMENT '密码',
  'sex' varchar(2) NOT NULL DEFAULT '男' COMMENT '性别',
  'birthday' datatime DEFAULT NULL COMMENT '生日',
  'address' varchar(100) DEFAULT NULL COMMETN '地址',
  'email' varchar(50) DEFAULT NULL COMMENT '邮箱',
  PRIMARY KEY('id')
)ENGINE=InnoDB DEFAULT CHARSET=uft8

-- 查看数据库的定义
SHOW CREATE DATABSE school;
-- 查看数据表的定义
SHOW CREATE TABLE student;
-- 显示表结构
DESC student; 
-- 设置严格检查模式(不能容错了)
SET sql_mode='STRICT_TRANS_TABLES';

数据表的类型

设置数据表的类型

CREATE TABLE 表名(
  -- 省略一些代码
  -- MySQL注释
  -- 1. # 单行注释
  -- 2. /**/ 多行注释
)ENGINE=MyISAM(or InnoDB)

-- 查看mysql所支持的引擎类型(表类型)
SHOW ENGINES;

MySQL的数据表的类型:MyISAM,InnoDB,HEAP,BOB,CSV等...
常见的MyISAM与InnoDB类型:


区别.png

经验(适用场合):

  • 适用MyISAM:节约空间及响应速度
  • 适用InnoDB:安全性,事务处理及多用户操作数据表
    数据表存储位置
  • MySQL数据库以及文件方式存放在磁盘中
    • 包括表文件,数据文件,以及数据库的选项文件
    • 位置:MySQL安装目录\data\下存放数据表,目录名对应相应数据库名,该目录下文件名对应数据表
  • 注意:
    • *.frm -- 表结构定义文件
    • *.MYD -- 数据文件(data)
    • *MYI -- 索引文件(index)
    • InnoDB类型数据表只有一个*.frm文件,以及上一级目录的ibdata文件
    • MyISAM类型数据表对应三个文件:
      MyISAM.png

      设置数据表字符集
      我们可为数据库,数据表,数据列设定不同的字符集,设定方法:
  • 创建是通过命令设置,如:CREATE TABLE 表名()CHARSET=uft8;
  • 如无设定,则根据MySQL数据库配置文件my.ini中的参数设定

修改数据库

修改表(ALTER TABLE)
修改表名:ALTER TABLE 旧表名 RENAME AS 新表名
添加字段:ALTER TABLE 表名 ADD 字段名 列属性[属性]
修改字段:

  • ALTER TABLE 表名 MODIFY 字段名 列类型[属性]
  • ALTER TABLE 表名 CHANGE 就字段名 新字段名 列属性[属性]

删除字段:ALTER TABLE 表名 DROP 字段名]
删除数据表
语法:DROP TABLE [IF EXISTS] 表名

  • IF EXISTS为可选,判断是否存在该数据表
  • 如删除不存在的数据表会抛出错误

其他

  1. 可用反引号(`)为标识符(库名、表名、字段名、索引、别名)包裹,以避免与关键字重名!中文也可以为标识符!
  2. 每个库目录存在于给保存当前数据库的选项文件db.opt。
  3. 注释:
    单行注释 # 注释内容
    多行注释 /注释内容/
    单行注释 -- 注释内容(标准SQL注释风格,要求双破折号加一个空格符(空格、TAB、换行等))。
  4. 模式通配符
    _ 任意单个字符
    % 任意多个字符,甚至包括零字符
    单引号需要进行转义 \'
  5. CMD命令行内的语句结束可以为";","\G","、g",仅影响显示结果,其他地方还有用分号结束。delimiter可修改当前对话的语句结束符。
  6. SQL对大小写不敏感(关键字)。
  7. 清除已有语句:\c。
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,951评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,606评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,601评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,478评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,565评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,587评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,590评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,337评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,785评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,096评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,273评论 1 344
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,935评论 5 339
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,578评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,199评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,440评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,163评论 2 366
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,133评论 2 352

推荐阅读更多精彩内容