mysql基础教程,欢迎改进

MySQL安装完结今后,基本操作有:1.创办数据库   二.去除数据库   
3.修改数据库

1.一基本概念:

一.创立数据库

Mysql是一种关系型数据库,将数据存放在差异的表格中,表格中的要素有:

在MySQL中,创制数据库的通令为   create database  数据库名;   
个中可在数据库名前增加  if not exists,表示不重复创设同名数据库。

?列:表中的3个字段,1个列包涵了平等数据类型的数码。

二.刨除数据库

?行:表中的数量是按行存款和储蓄的,行是表中的一个笔录。如若将表想象为网格,网格中垂直的列为表列,水平表现表行。

在已部分数据库中可选拔3个空头的数据库删除,命令为   drop database
数据库名;   也可在数据库名前增多 if exists,表示删除已存在的数据库。

?主键:数据库中的标记列,主键具备唯一性且不可能为NULL。

三.查询数据库

一.2mysql语句规范:

查询数据库的编码形式可用   show create database 数据库名;   
若要查询数据库中的表,则可用    show tables in 数据库名。

壹)Sql语句必须以;结束;

创办数据库后可对数据库举办操作,创设数据表:首先输入指令   use
数据库名;   然后输入指令    create table 数据声明(数据名一数据格式,数据名二 数据格式……);

贰)保留主要字不区分轻重缓急写;

数码格式大约分成叁连串型:一.数字类型 二.时刻档次 三.文本类型

三)可随意参与空白和换行符;

壹.数字类型:TINYINT                     
默许带符号,若不带符号则在其后增进 UNSIGNED 代表  不分包负数   (下同)

肆)注释的行使:单行注释格式为:【–注释】,多行注释格式为【/*注释*/】。

                     SMALLINT            

一.叁 mysql的命令行操作命令:

                     MEDIUMINT            

一)登六mysql:【mysql  -h 主机名 -u 用户名 -p】-h表示要三番五次到哪一台主机的

                     INT或INGEEGER      

mysql数据库,当登入当前主机时可总结;-u内定用户名,默许为root;-p为设置时设定的密码,假若为空能够简轻易单。

                     BIGINT

示例:

                     FLOAT                        
使用时应有在其后加(a,b)表示整数和小数的位数

登陆本机mysql数据库:【mysql -u root -p】

                     DOUBLE                      同上

报到远程主机mysql数据库:【mysql -h 1九二.168.拾.111 -u root -p】

2.时刻项目:DATE                           年-月-日

报到本机mysql数据库直接加密码:【mysql -u root -p1111一】

                     TIME                            时:分:秒

2)创制/删除数据库:创制:【create database 数据库名;】删除:【drop
database 数据库名】

                     YEAR                           年份

示例:

                     DATETIME                   年-月-日 时-分-秒

创办二个名称叫test的数据库:【create database test;】

                     TIMESTAMP                两年华之间距离的秒

去除一个名称叫test的数据库:【drop database test;】

三.文本类型:CHARAV四                           定长字符

三)查询数据库/数据表:

                     VAOdysseyCHAPRADO                    变长字符

?查询数据库:【show
databases;】在经过该命令查询时发现在除本身创造的数据库之外,还有四个暗许的库,查找有关资料后对其开始展览了认识,分别是:information_schema库,该库保存着有关MySQL服务器所保险的有所别的数据库的音信,如数据库名,数据库的表等;mysql库,mysql的大旨数据库,存储了数据库的用户、权限设置、关键字等mysql本人索要采纳的决定和治本音讯;performance_schema库,该库首要用以搜罗数据库服务器品质参数。

                     TINYBLOB                   
不超过251个字符的二进制字符

?查询数据表:【show
tables】,注意查询数据表应该在选拔好了数据库之后打开,假使是在进入mysql后未采用特定数据库使用此命令,则不算。

                     TINYTEXT                     短文本字符串

?查询表结构:【desc 表名】。

                     BLOB                             二进制长文本数据

4)选用数据库:有二种格局,分别为:一.登入时直接钦命:【mysql -D
所选用的数据库名 -h 主机名 -u 用户名 -p】2.登入后选用操作的数据库:【use
数据库名】

                     TEXT                             长文本数据

示例:

                     MEDIUMBLOB              二进制中等文本数据

登录时:【mysql -D testdb -u root -p】,或者【mysql -D testdb -u root
-p11111】

                     MEDIUMTEXT              中等文本数据

登录后:【use testdb】

                     LONGBLOB                  2进制非常的大文本数据

补给,另一种登6时的选项,更简便易行:【mysql -u root -p1111一 testdb】

                     LONGTEXT                  不小文本数据

5)成立/删除数据表:

装有数据中都能够安装空与非空 即 null 与 not
null,若数据足认为空则能够在数据类型后拉长null,也可不加;若不可能为空,则必须加not
null;

?创立数据表:【create table 表名
(列评释)】列的注明钦定了各列的性质,日常包括以下几点要素:

数据表创立落成后能够向数据表中增加新的列,命令格式为               alter
table 表名 add column 新列名 数据格式;   

1.表名;

假使需求向数据表中插入一条新的数目时,可用命令                         
insert 表名(列名1,列名2……) values(数据1,数据贰……);          
  (必须逐项对应)

二.表中的各列名;

或者                                                                    
                                 insert 列名 set 列名一 = 数据一,列名二
= 数据二,……

三.数据类型:mysql中定义了多少个大类的数据类型,具体分类见下方:

当发现数据表中剩下的数据时,能够去除多余的数据,命令格式为    delete
from 表名 where 条件;

4.是或不是为主键;

当发现表中数据须要更新时,能够用立异数据的一声令下,命令格式为    update
表名 set 列名 = 新数据 where 条件;

伍.是还是不是足感到NULL;

若有多条数据供给更新时,可以利用when then 达到,命令格式为     update
表名 set 列名 = case when 条件 then 新数据 when 条件 then 新数据 ……
end;

整型:(无符号通过unsigned关键字标记)

发现数目不合乎数据类型时,能够转移数据类型,命令格式为            alter
table 表名 modify column 列名 新数据格式;

类型 字节 范围(有符号) 范围(无符号)


tinyint 1 -128~127 0~255

SELECT的应用

smallint 2 -32768~32767 0~65535

一.函数用到

mediumint 3 -8388608~8388607 0~16777215

一.求平均数:select avg(列名 from 表名;                      也可在avg(
  )后加as
你愿意见到的平平均数量列名,使表格显示出来的是as前面包车型地铁字符而不是avg(  
),下同

int 4 -2147483648~2147483647 0~4294967295

2.求和:       select sum(列名) from 表名;

bigint 8 +-9.22*10的18次方 0~1.84*10的19次方

三.求最大值    select max(列名) from 表名;

浮点型:

四.求微细值    select min(列名) from 表名;

类型 字节 含义 用途

二.查找

float 四 float(m,d)最大位数m位,小数点后d位 单精度浮点数

1.select 要物色的列名 from 表名 where 条件;             
要寻觅的列名处可输入*意味着享有列

double 8 double(m,d)最大位数m位,小数点后d位 双精度浮点数

二.select 要物色的列名 from 表名 where 列名<值一 or 列名 >值二;    
     查找列中型小型于值一也许当先值二的持有数据

decimal decimal(m,d),若m>d,则为m+二;不然为d+贰 适用于高精度 小数

③.select 要物色的列名 from 表名 where 列名>值一 and 列名 <值二;    
 
查找值壹与值二之间的数量,若是要求探索等于值一,值2的数目就在<,>后加= 

日期和时间项目:

   select 要研究的列名 from 表名 where 列名between 值一 and 值2;    
查找值1与值二之间的数目

类型 字节 格式 示例

四.select 要物色的列名 from 表名 where 列名 like a_;        
查找情势为a_ 的数据,_表示叁个未内定字符

DATE 3 YYYY-MM-DD 2017-07-22

   select 要寻觅的列名 from 表名 where 列名 like a%;    
查找方式为a%的多少,%代表多少个未钦定字符,不计个数

TIME 3 HH:MM:SS 15:47:30

 

YEAR 1 YYYY 2017

DATETIME 8 YYYY-MM-DD HH:MM:SS 2017-07-22 15:47:30

TIMESTAMP 4 YYYYMMDD HHMMSS 20170722 154730

字符串类型:

类型 字节 含义

CHA普拉多 0-25伍;char(m)代表存款和储蓄字符长度为m,不够则补空格,超越则截取m个
定长字符串

VA景逸SUVCHA讴歌ZDX 0-6553伍 变长字符串

TINYBLOB 0-255 短2进制字符串

BLOB 0-6553伍 贰进制方式的公文数据

MEDIUMBLOB 0-16777贰1伍 贰进制格局的中档文本数据

LONGBLOM 0-42949672玖伍 二进制格局的长文本数据

TINYTEXT 0-255 短文本字符串

TEXT 0-6553伍 文本字符串

MEDIUMTEXT 0-16777二壹5 中等本文字符串

LONGTEXT 0-42949672玖五 长文本字符串

示例:

【create table testworkers

(

id int unsigned not null auto_increment primary key,

name char(8) not null,

sex char(6) not null,

age tinyint unsigned not null

);】

?删除数据表:【drop table 表名;】

示例:

删除testworkers表:【drop table testworkers;】

6)数据的增加和删除改查等操作:

?插入数据:【insert into 表名 [(列名1,列名2……列名n)] values
[(值1,值2……值n)]】。有以下几点必要留意:

1.into方可轻易;

贰.字符串须求利用’ ’可能” ”;

三.列名能够轻易,可是此时必须依据各列的概念顺序来插入数据;

四.方可只插入部分列的数目,其他未有现身的列将被授予暗中认可值;

5.方可因而一条语句二次性插入多行数据,格式为【insert into 表名values
(值1,值

贰,值三),(另贰个列一的值,另三个列2的值,另叁个列三的值); 】;

5.能够使用set子句来插入数据,格式为【insert into set
列名1=’值一’,列名二=’值2’】;

6.auto_increment标志的字段能够毫不赋具体值,系统为自行依据前一条目标值实行自增。

示例:

回顾列名的插入:【insert into testworkers values
(一千1,”axx”,”male”,3五);】

壹部分列的插入:【insert testworkers (name,sex,age) values
(bxx,”female”,二7);】

3次性插入多列:

【insert into testworkers values
(10003,’cxx’,’male’,28),(10004,’dxx’,’male’,40);】

二次性插入多列,同时只对一些列赋值:

【insert into testworkers (id,name,sex) values
(10005,’cxx’,’male’),(10006,’dxx’,’male’);】

运用set子句插入,同时只对有的列赋值:【insert into testworkers set
name=’exx’,age=’50’;】

?查询数据:

一.查询表的全体内容:【select * from 表名;】

二.询问单个列:【select 列名 from 表名;】

三.查询多少个列:【select 列名一,列名二……列名n from 表名;】

四.查询列并限制前n行:【select 列名from 表名 limit
n;】,查询列并限量从m+一行起始的n行:【select 列名from 表名 limit m
offset n;】

伍.只询问差异的值:【select distinct 列名 from
表名;】注意distinct效能于其后具有的列,不是单列,当成效于如下多列时【select
distinct 列名一,列名二 from
表名】,列壹和列贰同时比较,只有当两行的列1和列2都一样时才不会列出,有贰个一样则会列出。

六.询问单个并排序:使用order by 子句:【select 列名 from 表名 order by
列名;】注意那里的五个列名并不一定须求平等,且order子句一定在命令的最末尾。

柒.查询七个列并排序:【select 列名一,列名二……列名n from 表名 order by
列名x
列名y;】要专注的是:排序按语句的相继实行,当列x的持有数据差别时,列名y排序无效;当列x的数额有再一次时,则依据列y的壹壹实行排序。

发表评论

电子邮件地址不会被公开。 必填项已用*标注