本篇笔记主要分为两部分:
1,安装完毕之后的简单配置
2,数据的类型、简单的数据表操作命令
一、mysql安装完毕之后
windows和linux环境,除mysql的安装、配置有所不同,其他操作一样,本文在linux环境下操作。
启动(停止,重启)mysql服务:
service mysql start(stop,restart)
mysql的登陆/退出:
输入命令:mysql –uroot –p123456(123456为密码)
或者: mysql –uroot -p(回车,然后输入密码)
查看mysql版本
方法一:status;
方法二:select version();
修改mysql提示符:
我们在连接客户端后,看到,默认的提示符是mysql>,怎么修改呢
方法一:
连接客户端的时候就指定参数: shell> mysql -uroot -p*** --promot 提示符
方法二:
连接之后,通过pronpt命令来修改 : mysql> prompt 提示符
我自己修改成如下形式:
(因为还没有打开数据库,所以当前数据库显示为none)
在我打开数据库t1之后:
其他的一些mysql常用的简单命令:
通过以上简单的几个命令,发现,关键字我用的都是大写,其实即使用小写,也是没问题的,但是为了和数据库名、表名、字段名区分,我们默认都写大写。
说下mysql的语句规范:
-
关键字、函数名我们用大写
-
数据库名、表名、字段名我们小写
-
SQL语句末尾必须以分号结尾(如果你忘了输入分号,它会等着你期待你输入一个,你输入一个回车就好了)
简单的基本操作、基本管理之后,就是如何创建数据库:
数据库其实是一个大的概念,它是数据库以及其他子对象的集合(数据表、索引视图),mysql默认创建了四个数据库(mysql、information_schema、performance_schema、sys)
创建数据库的语法结构很简单:
-
CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name
[DEFAULT] CHARACTER SET [=] charset_name
其中,花括号为必选的,必须得有的,竖线为两个选其一,中括号表示可有可没有,为可选项;CHARACTER SET 表示指定数据库的编码方式,如果不写默认方式;
演示一下:
t2已经存在,但是因为我们加入了 IF NOT EXISTS,所以只是显示了一个警告,我们可以通过 SHOW WARNINGS的命令来查看警告的内容。
如果不加IF NOT EXISTS呢?
下面这条语句,可以查看创建数据库时候的一些指令信息,可以看出默认的编码方式:
现在我想改变一下编码方式:
删除数据库?
-
DROP {DATABASE | SCHEMA} [IF EXISTS] db_name
关于 IF EXISTS ,还是同样的道理,不再演示.
二、下面,介绍数据类型和数据表的操作:
定义:数据类型是指列、存储过程参数、表达式和局部变量的数据特征,它决定了数据的存储格式,代表了不同的信息类型。
注意数据优化的时候,选择最合理最合适的数据类型,而不是越大越好;
我们的年龄可以用整数表示,但是比如我们的工资,可能就有小数位,所以又有浮点数这种类型:
这两种类型除了存储范围的不同,他们小数的位数也是不一样的。
这两种类型除了存储范围的不同,他们小数的位数也是不一样的。
CHAR定长的,比如说,CHAR(5)我们在写值得时候写了个“abc”,存储的时候会补充两个空格;VARCHAR(M)为变长的类型,存的“abc”就是“abc”
操作数据表:
上文创建了数据库,我们需要创建数据表;
[IF NOT EXISTS]和我们之前讲得作用是一样的,经过项目的分析,设计好需要设置的字段,已经字段的类型;字段间用逗号分开,最后一个字段不用加逗号。
好的我们设置一个名字加 SHEET1的用户表,表又用户名,年龄,工资3个字段。好的,姓名,我们设置为VARCHAR(20),年龄的话一般为0-110之间,可以为TINEYINT,而且无负值,设置为UNSIGNED,工资的话,设置为FLOAT,也是无负值得,设置为 UNSIGNED.
我们看一下,数据表的结构是不是我们想要的呢?
字段已经设置好,下一步是往表里边写入记录;
-
INSERT [INTO] SHEET1 [(col_name,...)] VALUES(val,...)
注意,要是省略列名,就要给每个字段赋值;否则就会出错。如下,显示为字段和值不匹配
但是,我们可以直接不给某个字段赋值,如下:
也就是说,我们可以给全部字段赋值,也可以给某部分字段赋值,但是给某些字段赋值是有先决条件的,一会谈到。这个大家记着点。
刚才看到了,我们通过SELECT 语句,即记录的查找命令,来查看插入的数据;当然,这个SELECT其实本身也挺复杂的,以后笔记再记录;
SELECT * FROM SHEET1;
这块,很多同学看到有个*,以为是全部的记录,其实不然,这里是全部的字段的意思,以后会谈到。
刚才,我们看到了,我们没给第二条记录的 salary字段赋值,显示为NULL;
好,久聊到了NULL和NOT NULL;
比如,我们在注册一个网站填写一些信息的时候,会显示哪些可以为空,哪些必须填写。我们如何在设计数据表的时候设置呢?需要给字段指定的更加完善。
初次之外,我们要求记录的唯一性;
我们可以通过为某个字段添加AUTO_INCREMENT属性,即自动编号,并且必须和主键组合使用;
默认情况下,起始值为1,每次增量为1,这样就能保持唯一性;
好,我们演示下:
好的,错误出来了,就是自动编号的字段必须定义为主键才可以;
那么,现在,我们就迫切了解什么是主键?
注意刚才一个逻辑,刚才的错误显示,自动编号必须和主键一块使用,但是主键并不是必须和AUTO_INCREMENT一块使用;
好,我们把刚才设计错误的表,重新来一遍:
ok,我们通过查看数据表结构的命令,看到建立成功,并且字段id 因为是主键,自动的为 NOT NULL;
现在,往数据表中插入记录,注意:字段id就不用赋值了,同时因为是为部分字段赋值,插入数据的时候也就不能省略到字段名字。
我们插入了三条数据,而且是自动编号,如下:
现在,演示不定义自动编号,直接设置主键;
我们创建SHEET4表,讲id 设置为主键,创建成功后我们查看下数据表结构:
好的,没问题,主键字段是允许赋值的;
但是主键是不允许有相同的值得,我们测试下:
除了主键能够保证唯一约束,我们也可以设置唯一约束,都能保证记录的唯一性;
但是一张数据表主键只能有一个,唯一约束性可以有多个,而且可以为空;
下面我们来创建一个 既有主键约束又有唯一约束的数据表:
好,可以看到,唯一约束的限制,插入第二条数据的时候出错了;
除了唯一约束、主键约束,还有默认约束;
默认约束:当我们插入记录时,没有为字段赋值,可以为字段设置为默认值。
我们创建一个数据表,并且查看它的表结构,最后插入数据,如下:
我们看到,性别被赋予了默认值“3”。
公众号中回复:mysql,就可获得mysql使用的ppt.
-------------------------------------------------------------------------
欢迎关注~