MySQL自学笔记1

2017-01-14 08:43:56来源:CSDN作者:qhxjtu人点击

MySQL自学笔记

使用MySQL 5.5以及MySQL自带命令客户端

MySQL基础知识

层次结构:数据库服务器–> N多数据库–>N多表–>行与列
大概步骤:
1. 建立、连接数据库服务器
1. 建立库
1. 建立表
1. 数据库操作,比如增删改查等

连接数据库服务器

  • mysql -h localhost -u Username -p Password
  • -h localhost 可以省略
  • Password可以在-p回车后再输入,这样在命令客户端中就是以*显示

一些基础操作命令

  • 显示数据库服务器下的具体数据库–show databases。这里面:information_schema、mysql、performance_schema这三个数据库暂时最好不要去碰
  • 创建数据库–create database DBName[字符集声明,整理声明]
  • 删除数据库–drop database DBName
  • 修改数据库–在MySQL中是不能修改已经创建的数据库名字的!只能修改字符集和整理集
  • 选择数据库–use DBName 选择数据库是在进行表相关操作前
  • 查看库下面所有表–show tables
  • 添加表在数据中

    • create table TableName( Column_1_Name Column_1_Type, Column_2_Name Column_2_Type, Column_3_Name Column_3_Type);
    • 在最后一列的类型后面是不加逗号的

    • 举一个例子

      create table class(id int,name varchar(10),age int);
  • 删除表–drop table TableName

  • 修改表名–rename table oldName to newName
  • 查看表结构–desc tableName
  • 在表里面添加行

    • 示例
    insert into class(id, name, age)values(1, 'James', 23);
    insert into classvalues(3, 'Iverson', 26);
    insert into classvalues(12, 'AAA', 12),(13, 'TingTing', 13);
    insert into class(id, name)values(24, 'Kobe');
  • 更新表里面的信息

    • 示例
      update classset id = 33, name = Qinghaiwhere age = 23;
  • 删除表里面的一行

    • 示例
      delete from class where id = 24;
  • 查询表里面的信息

    • 示例
    select * from class; // 查询整张表内容
    select id, name from class; //查询id、name这两列
    select id, name from class where id > 13; //查询 id > 13 的内容
  • 插入新的一列

    • 示例
      alter table class add score tinyint unsigned not null default 0;//在表class中插入score这一列,是无符号小的整型数,默认值为0
  • 自己的一些总结

    • 在选择中,select后面、from前面选择的是列的内容,where后面选择的是行的内容
    • 语句是用’;’结束
    • 在打错后可以使用/c推出当前的为结束的语句
    • 可以在txt文档中打完代码在复制粘贴到命令行客户端,不过得注意声明如下代码,防止乱码
    set names gbk;
    • 在创建表是,在右括号后、分号前添加代码’charset utf8’表示客户端字符集为’UTF-8’

MySQL中有三大数据类型

  1. 数值型:整型、浮点型
  2. 字符串型
  3. 日期/时间型:年、日期、时间、日期时间

数值型

  1. 整型:

    • tinyint 1个字节
    • smallint 2个字节
    • mediumint 3个字节
    • int 4个字节
    • bigint 8个字节
    • 具体的形式以及选择参数如下所示:
      XXint(M) unsigned zerofill //unsigned表示为无符号类型,不加的话默认为有符号类型(0开始),负的取值按照补码来实现//M单独没有意义,得和zerofill一起,表示如果数据不足M位的话,自动补0,补够M位
  2. 小数型

    • float(M, D)–浮点小数,M表示总共可以存储M位(不包含小数点),D表示小数点后面的位数为D
    • decimal(M, D)–定点小数,M、D意义同上
    • 两者都可以表示小数,但是定点小数精度比浮点的高,即decimal精度比float高,适合用于存储货币等要求精度的数字

字符型

  1. 定长类型–char(M),M代表可以容纳的字符数,范围在0~255之间
    MySQL
    char(10) //能够输人10个字符,不管是英文字符还是汉字字符,都是最多可以输人10个的
  2. 变长类型–varchar(M),M含义和上面一样,姿势范围在ascii码中0~65535,utf8码中0~22000
    • char和varchar区别是定义char(M)的话,在空间上就会给分配M个字符占用的空间,不过字符够不够,都实占这些空间;定义varchar(M)的话,占的空间就是实际要用的字符加上1~2个用来计数的字节空间
    • 对比上面两个区别可以知道,char的利用率<=100%,varchar的利用率是i/(i+1~2) < 100%。即varchar的利用率永远都到不了100%
    • 两者之间还有一个区别就是char型如果不够M个字符,内部在后面用空格补齐。
    • 速度上char比varchar快,即定长的快
    • 选择char和varchar的原则:
      • 空间利用率,比如:四字成语表–char(4)、微博以及个人简介–vrchar(140)
      • 速度,比如:用户名–char
  3. 文本类型–text,可以存储较大的文本段,不过搜索速度稍微慢一些。所以,如果不是特别大的内容的话,建议使用char和varchar进行替代。同时要注意的一点就是text类型不用加默认值(加了也没用)

日期时间类型

  1. 年–year,1个字节表示,表示1901-2155,还有一个0000表示错误时选择。
    • 如果输人两位,00-69表示2000-2069,70-99表示1970-1999(反正就是要在1970年上面!)
    • 最好还是输人4位
  2. 日期类型–date,典型格式 1998-03-13,日期范围:1000-01-01 ~ 9999-12-31
  3. 时间类型–time,电信格式 hh:mm:ss,时间范围:-838:59:59 ~ 838:59:59,这里的意思是不一定就是在一天24小时,有的情况是时间间隔,所以时间范围可以这么大
  4. 日期时间类型–datetime,典型格式 1993-03-23 13:13:13,范围 1000-01-01 00:00:00 ~ 9999-12-31 23:59:59
  5. 时间戳–timestamp,用int来存储,是在1970-01-01 00:00:00到当前的秒数。一般存储注册时间、商品发布时间等,不是用datetime来存储,而是用timestamp
    • datetime直观,但是对计算机来说计算不便
    • timestamp对计算机来说计算方便,而且对于勇于 格式化输出也比较方便

最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台