mysql初识(一)基础属性篇

这是我刚开始学习mysql时总结的笔记 可能比较潦草但还好比较容易理解,乱点就乱点吧

以后有什么新的东西都随时添加

mysql 的基础属性篇

SQL语言包含4个部分
数据定义语言(DDL)用于定义和管理对象,例如数据库、数据表
例如:CREATE、DROP、ALTER等语句
数据操作语言(DML)操作数据库对象所包含的数据。
例如:INSERT(插入)、UPDATE(修改)、DELETE(删除)
数据查询语言(DQL)
例如:SELECT语句
数据控制语言(DCL)用于控制对数据库对象操作的权限
例如:GRANT、COMMIT、ROLLBACK等语句

在dos操作中 ;是结束命令 执行多个命令时用,

展示数据库 show databases;
切换数据库 ues dataone; (dataone是数据库名)

创建表和使用表的时候要进入数据库;
创建一个数据库并且在其中创建一个表的流程是:
create database newdata charset utf8;
use newdata;
create table newtable(
id int primary key not null auto_increment,
name char(20) not null default ‘‘,
sex enum(‘男‘,‘女‘),
hobby set(‘唱歌‘,‘游泳‘,‘作死‘)
    );

其中创建数据库的时候要设置字体编码 防止出现乱码 而且命名数据库名字的时候不能用纯数字 纯符号 和系统关键字 而且因为linux系统下区分大小写 因此数据库名最好小写  而且不能超过64位

desc newtable;
是查询表的结构,看他的每一个字头都是怎么设置的 就像刚才newtable表中的id name sex hobby 各自的储存数据的要求是什么

类型                 大小    范围(有符号)     范围(无符号) 用途
tinyint             1字节     (-128,127) (0,255) 小整数值  
smallint             2 字节     (-32 768,32 767) (0,65 535) 大整数值
MEDIUMINT             3 字节     (-8 388 608,8 388 607) (0,16 777 215) 大整数值
INT或INTEGER         4 字节     (-2 147 483 648,2 147 483 647) (0,4 294 967 295) 大整数值    
BIGINT                 8 字节     (-9 233 372 036 854 775 808,9 223 372 036 854 775 807) (0,18 446 744 073 709 551 615) 极大整数值

常用的是 int tinyint smallint
设置合理的整形类型可以提高数据库的搜索效率,节省内存

decimal 这是浮点型的一个特点 举例:
create newtable(
money decimal(5,2)
    );
创建一个表 里面的money最大是999.99  decimal里的参数是1 总共几位数,2 有几位小数 这个在计算钱的时候很常用

字符串类型的数据
CHAR             0-255字节 定长字符串
VARCHAR         0-<65535字节(1-2字节记录长度) 变长字符串
TINYBLOB         0-255字节 不超过 255 个字符的二进制字符串
TINYTEXT         0-255字节 短文本字符串
BLOB             0-65 535字节 二进制形式的长文本数据
TEXT             0-65 535字节 长文本数据
MEDIUMBLOB         0-16 777 215字节 二进制形式的中等长度文本数据
MEDIUMTEXT         0-16 777 215字节 中等长度文本数据
LOGNGBLOB        0-4 294 967 295字节 二进制形式的极大文本数据
LONGTEXT         0-4 294 967 295字节 极大文本数据

重点是char varchar text

char(20) 固定占用20个字节 超出部分就截断 优点是搜索效率较高 缺点是占内存
varchar(20) 占用空间随着内容多少改变 但最多20字节 超出就截断 优缺点和char相反
通常用char而不用varchar是因为硬件水平提高可以牺牲一点内存在保持程序执行效率
text就是大文本数据的情况下使用了

char和int类型的区别
char(20) 就真的是指所输入内容不能超过20个字
int(3) 这个括号内的是配合前导零zerofill 使用的 当有了zerofill这个属性时 输入1 显示001 输入20显示020  但是输入的数超过999一样能显示 但就没有前导零这个影响了 输入1000就显示1000 他的上限还是根据本页48行的整数型来限制

zerofill 是前导零
unsigned 是取消负号
not null 禁止输入空数据
default 默认为0
举例:
create newtable(
id int(4) zerofill unsigned not null default 0,
name char(20) not null default ‘‘
    );

由于搜索对于null这个数据类型很不友好 想上面那样先设置不准为空再默认是空字符串就是规避null数据类型 这样搜寻显示就不是null而是真的什么都不显示了

enum 只能在其中选一个
set 在其中可以选多个  相当于多选题和单选题的区别
举例:
create newtable(
sex enum(‘男‘,‘女‘),
hobby set(‘唱歌‘,‘篮球‘,‘作死‘)
    )
性别只能单选而爱好可以多选 当然如果输入不在选项中的数据将整个hobby录入失败

unique 唯一属性 其他同列数据不能与之相同
primary key 主键 表中只能有一个主键 通常就是设置给id 主键不能包含null
auto_increment 自增 不输入他他就按照上条数据的数值自行增长 还有设置自增了最好别设默认,试想都自增了还每次都又从0开始就太矛盾了
举例:
create newtable(
id int unique primary key not null auto_increment,
age int not null
    )

创建一个表othertable 和newtable的表结构一样
create table othertable like newtable;
将newtable内的数据复制到othertable中
insert into othertable select * from newtable;
以上两者结合起来完全复制表信息就是
create table othertalbe select * from newtable;

以上需要注意的就是看清要创建的表的位置和要复制的表的位置

? 回车
调出所有mysql指令
? char 回车
调出关于char的使用方法 当然这些指令都是全英文的 有问题还是百度吧
其中最有用的就是设置字和背景颜色的指令:
COLOR 0A;   
或者
COLOR 0E;
这两个配色比较推荐 不满意就COLOR+回车自己调

搜索表中所有信息
select * from newtable;
模糊搜索
select * from newtable where like ‘%游泳‘

字符集合校对规则

现在我们由于硬件的提升可以稍微降低对内存的限制 因此现在最常用的万国码 utf8   在创建数据库的时候就要设置编码 这样的话这个库的内部文件都默认数据库的设置 创建的时候是这样的
create database charset utf8;

在windows系统下都是gbk编码 ios的是utf8编码
现在操作的dos窗口就相当于一个客户端  mysql所在的是服务端  
在windows系统下 每次向数据库发送信息都是先将本地的gbk编码转成utf8编码然后mysql服务器接收储存 再将utf8编码的信息发送回客户端转成gbk的正常显示 因此先声明本地使用什么样的编码 这样保证本地收到的数据能够正常显示 像这样
set names utf8;
这就是向服务器声明客户端是需要什么样的编码 服务器在发送的时候好转成相应的以正常显示

其他关于字符集的命令
查看创建student表的语句
show create table stu;
查看服务器支持哪些字符集
show character set;
查看字符集排序规则,如果没有指定的则采取默认方式进行排序
show collation;
查看系统字符集变量
show variables like ‘%character%‘;

时间: 2024-10-12 01:34:33

mysql初识(一)基础属性篇的相关文章

安卓布局修改基础常识篇之TextView属性

[天使]安卓布局修改基础常识篇之TextView属性 在修改布局xml文件时需要熟练掌握一些属性,以下是TextView也就是文本的属性:android:autoLink 是否自动链接网址或邮箱地址:android:autoText 自动检测错误:android:bufferType 决定getText()返回的类型android:capitalize 指定使用类型android:cursorVisible 光标是否可见android:digits 数字输入android:drawableBot

MySQL的初次见面礼基础实战篇

[版权申明]未经博主同意,谢绝转载!(请尊重原创,博主保留追究权) http://blog.csdn.net/javazejian/article/details/61614366 出自[zejian的博客] 本篇将以最简单的方式呈现并演绎mysql数据库的必知必会的知识点,通过本篇博文您将会对mysql从起点到终点的较为全面的认识,关于mysql的知识,将分两篇来记录,即MySQL的基础实战篇和MySQL的进阶实战篇,以下是本篇的主要知识点. 基础实战篇 环境准备 数据库与表的创建以及SQL增

SQLAlchemy 教程 —— 基础入门篇

SQLAlchemy 教程 -- 基础入门篇 一.课程简介 1.1 实验内容 本课程带领大家使用 SQLAlchemy 连接 MySQL 数据库,创建一个博客应用所需要的数据表,并介绍了使用 SQLAlchemy 进行简单了 CURD 操作及使用 Faker 生成测试数据. 1.2课程知识点 学会用 SQLALchemy 连接数据库(MySQL, SQLite, PostgreSQL), 创建数据表: 掌握表数据之间一对一,一对多及多对多的关系并能转化为对应 SQLAlchemy 描述: 掌握使

Linux及Arm-Linux程序开发笔记(零基础入门篇)

Linux及Arm-Linux程序开发笔记(零基础入门篇)  作者:一点一滴的Beer http://beer.cnblogs.com/ 本文地址:http://www.cnblogs.com/beer/archive/2011/05/05/2037449.html 目录 一.Arm-Linux程序开发平台简要介绍... 3 1.1程序开发所需系统及开发语言... 3 1.2系统平台搭建方式... 4 二.Linux开发平台搭建... 5 2.1安装虚拟工作站... 5 2.2安装Linux虚拟

C#基础知识篇(五)-----------C#笔记

一.值类型和引用类型 1>值类型和引用类型将我们学过的数据类型划分成了两部分. 划分的依据是不同类型的数据在内存中(堆栈)存储的结构不同. 2>值类型:所有的数值类型:long int short byte ulong uint ushort sbyte decimal duoble float char bool 枚举 结构 3>引用类型:string,arry(数组),类(class) 4>不管是值类型还是引用类型赋值都是将数据copy一份将副本赋给变量,不同的是值类型拷贝的是

C#基础知识篇(二)-----------C#笔记

1.关系运算符(比较运算符) 1.关系运算符有哪些? >,< ==,!= >=,<= 2.关系运算符的作用? 用于比较两个事物之间的关系. 3.什么叫关系表达式? 由关系运算符连接起来的式子叫关系表达式. 注意:所有的关系表达式最终都能计算成一个bool类型的值. 2.逻辑运算符 1.逻辑表达式有哪些? 逻辑与:&& ,逻辑或:||  ,逻辑非:!(又叫取反) 2.逻辑运算 语法:表达式1 逻辑运算符  表达式2 逻辑运算符连接的两个表达式,要最终能求解成一个boo

C#基础知识篇(四)-----------C#笔记

一.类 1. 什么叫做类? 类是具有相同特征的一类事物统称.所以类是一种抽象,即不是一个实体(我们把类看做模板). 2. 什么叫做对象? 对象是根据类的模板创造出来的一个实体,它具有类里所有的特征,一个也多不得,一个也少不得.少了就不叫这个类的成员了,多了也不是!假如张三有变身这个功能,那么张三就不属于人. 记住对象是根据模板创建的,模板有什么它就有什么,不会多也不会少! 3. 什么叫做字段(或者是成员变量)? 我们把定义在方法的外面,类的里面(即:类中)的变量称之为字段或者说是成员变量. 4.

【Linux】鸟哥的Linux私房菜基础学习篇整理(一)

最近,一直在写PPC的模拟器和汇编器,也在做设计.所以重新看了看<鸟哥的Linux私房菜>,还是有好多命令不太熟悉.就打算写几篇blog记下来. 1. nl [-bnw] filename:添加行号打印参数:-b:指定行号指定的方式,主要有两种: -b a:表示不论是否为空行,也同样列出行号(类似cat -n): -b t:如果有空行,空的那一行不要列出行号(默认值).-n:列出行号表示的方法,主要有三种: -n ln:行号在屏幕的最左方显示: -n rn:行号在自己字段的最右方显示,且不加0

数据集成之主数据管理(一)基础概念篇

数据集成是当下比較热门的话题,相关的产品和平台也越来越多.非常多CIO都在各种数据集成平台和产品之间犹豫不决.因此对数据集成平台的框架体系有全面的理解,对各个厂家产品所提供的功能有深入的认识才干为数据平台选型的决策提供可靠的保证. 我有幸參与了国内一个知名企业的集成平台的设计工作,并主导了数据集成平台的需求分析和产品选型工作.这次工作中,研究了非常多新的技术方向和产品,以下我主要讲一下数据集成领域的一种新兴的产品平台主数据管理平台MDM(Master Data Management). 主数据的