MySQL自学笔记1--基础知识

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);

    	* 在最后一列的类型后面是不加逗号的
    	* 举一个例子
    	 ``` MySQL
    	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 class
    	values
    	(3, 'Iverson', 26);
    
    	insert into class
    	values
    	(12, 'AAA', 12),
    	(13, 'TingTing', 13);
    
    	insert into class
    	(id, name)
    	values
    	(24, 'Kobe');
    
  • 更新表里面的信息

    • 示例
    	update class
    	set id = 33, name = Qinghai
    	where 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之间
    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时,取出就会丢失空格!
    • 速度上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对计算机来说计算方便,而且对于勇于 格式化输出也比较方便

转载于:https://my.oschina.net/QinghaiZheng/blog/824576

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值